基于PID算法的智能竞速小车设计与实现*

2023-02-16 09:08陶玉贵
南方农机 2023年5期
关键词:竞速原理图舵机

陶玉贵 ,胡 飞

(芜湖职业技术学院信息与人工智能学院,安徽 芜湖 241006)

全国大学生智能汽车竞赛是教育部倡导的课外学术科技A类竞赛,其被列入国家教学质量与教学改革工程资助项目,是涉及机械、电子、计算机、自动控制等多学科知识的综合性专业竞赛,已成为培养学生工程实践能力的重要平台[1]。课题组以STC8A8K64S4A12作为主控制单元,运用PID控制理论进行智能控制策略研究,设计了一种能够自主识别道路的智能竞速小车,可以完成对车模平衡、速度、方向的控制。测试结果证明,该小车具有控制精确、转向灵敏等优点,提高了车速和车速控制的稳定性。

1 系统总体设计

课题组设计的智能竞速小车主要由传感检测、控制决策和动力驱动三部分组成,自主设计的六路电磁传感器模块负责采集赛道信息,控制决策系统使用搭载STC8A8K64S4A12的最小核心板,控制动力系统驱动舵机转角和直流电机转速[2]。电磁传感器检测赛道信息并发送给单片机,通过计算左右电感的偏差值来计算PID,输出量分别发送给舵机和电机,编码器采集并输出速度信息反馈给主控单片机,主控单片机根据所获得的赛道信息和车体当前速度信息做出决策,通过PWM信号控制直流电机和舵机进行相应调整,从而实现车体的转向控制和速度控制,控制小车平稳行驶。智能竞速小车系统总体结构框架如图1所示。

图1 小车总体结构框架图

2 硬件系统设计

2.1 单片机核心板模块

选用STC8A8K64S4A12为主控的核心板,该核心板结构简单,调试方便,支持串口ISP调试方式,能够应对复杂的控制需求,板载USB-TTL232,可使用USB供电及下载程序。核心板采集赛道电磁信号和编码器检测到的速度信息,通过PID算法处理后输出合适的控制量,再对舵机与直流电机模块进行精准控制,实现小车快速平稳运行。

2.2 电感的排布与安装

电感采集赛道信息,排布位置主要考虑检测范围能否覆盖到整个赛道,同时将赛道的各类元素进行准确划分,考虑到赛道元素的多样性,对于特殊元素的判断要联合使用多个电感。水平电感有助于直道循迹,八字电感有助于过弯,竖直电感在普通赛道上的电感值很小,但在环岛部分会突增。根据右手螺旋定则,因三岔口中间部分有断层,当电感垂直向下时更利于小车判断三岔口。次外侧两个水平电感用于判断直道,最外面两端的竖直电感用于判断入环和出环,在电磁杆的中心位置放置两个垂直向下电感用于三岔路口判断[3]。电感排布检测方案图如图2所示。

图2 电感排布方案图

2.3 电源模块

电源模块所采用的是主供电电压7.2 V的镍铬电池,针对各部分传感器及驱动板分别设计稳压电路。对于单片机和传感器模块,选用AMS1117转5 V后对其供电,其电路原理图如图3所示。

图3 5 V稳压电路原理图

舵机的供电选用LM2596S芯片,在6 V供电的情况下输出1 A以上的电流,使舵机的反应更灵敏。6 V稳压电路原理图如图4所示。

图4 6 V稳压电路原理图

2.4 电机驱动模块

电机驱动电路采用双BTN7971B大电流H桥双路电机驱动[4],电机选用耐久度高、驱动力强劲的RS380直流电机,缓冲器选用三态输出的8通道的SN74HC244。电机驱动电路原理图如图5所示。

图5 BTN7971B驱动电路原理图

2.5 运放模块

运放模块选用集成运放LMV358芯片,其具有失真小、范围大、性价比高等特点。LMV358运放电路对电磁传感器检测的信号进行滤波、放大、检波,得到直流电压信号,经单片机AD采集获得正比于感应电压幅值的数值,输出信号稳定。运放模块电路原理图如图6所示,运放模块实物图如图7所示。

图6 运放模块电路原理图

图7 运放模块实物图

2.6 速度检测模块

小车通过加装编码器来检测速度实现闭环控制,通过对小车电路性能和机械结构的考量,选用龙邱科技512线mini编码器[5]。这是一款512线增量式编码器,具有质量轻、体积小等特点,工作电压为3.3 V~5.0 V,CMOS输出。工作时,单片机读取编码器输出一定周期的脉冲数,实现速度的检测,为闭环反馈控制提供数据。

2.7 舵机驱动电路

舵机驱动模块控制舵机的转向,舵机型号选用Futaba S3010,其具有精度高、寿命长、扭矩大等特点。舵机安装直接关系到转向问题,若调整不到位,将极大地限制转向角度和转向响应速度。智能竞速小车整车图如图8所示。

图8 智能竞速小车整车图

3 系统软件设计

3.1 程序结构流程图

程序设计主要采用顺序结构,减小任务之间的相互影响以提高智能竞速小车的稳定性和执行效率[6]。一方面,完成传感器信号的采集与处理、舵机PWM输出、电机PWM输出,这三项在一个周期定时中断,设置一个标志变量作为执行周期的标志。另一方面,完成赛道各元素识别、小车运行时的方向控制与速度控制、小车运行流程控制(包括程序初始化、启动与结束、状态监控等),在主程序中完成。程序结构流程图如图9所示。

图9 程序结构流程图

3.2 电磁信号采样处理

电感值的处理采用限幅法,减少突变,用左右两个电感进行循迹。滤波算法采用限幅、算术平均值滤波、归一化相结合的方法,对电磁信号进行稳定性处理,以保证采集到的信号的实时性和可靠性。

3.3 增量式PID算法

PID控制是应用最为广泛的一种自动控制器,智能车中常用增量式和位置式两种算法对车身进行控制,此处选择增量式PID算法,输出控制量的相对增量Δuk,其算法公式如下:

在运用增量式PID算法进行控制时,使用前中后3次测量的偏差得出控制量,通过调节Kp、Ki、Kd这3个参数来改善控制效果[7]。PID闭环控制流程图如图10所示。

图10 PID控制流程图

3.4 舵机控制算法

智能车转向具有较高的实时性要求,通常采用舵机控制。舵机是一种由不同脉宽的PWM信号来控制的位置伺服系统[8],在控制策略上采用增量式PID算法。但引入积分环节会使舵机转向系统产生迟滞性,方向控制不需要消除系统静态误差,为了使舵机转向系统不产生迟滞性,需要将PID算法中的积分环节略去,只用PD控制,舵机控制整体流程图如图11所示。若PWM脉宽过大会导致舵盘旋转角度超出其机械限位,因此要对PD控制器的输出进行限幅处理[9]。

图11 舵机控制流程图

3.5 电机控制算法

有效控制智能小车速度的一种方法是利用负反馈产生的偏差信号,通过控制器对被控对象进行实时修正,使系统的输出量与给定量保持一致,实现速度闭环控制[10]。因此,电机控制也采用增量式PID算法作为闭环控制,将其放入定时器中断,在中断中用左右两个编码器分别测出实时速度,使速度控制更加精确。电机速度闭环控制流程图如图12所示。

仅仅靠舵机并不能很好地使小车精确转弯,在调试过程中还需要分别控制两个电机的目标速度,通过左右电机的差速辅助竞速小车转弯。

4 结语

课题组设计了一种基于PID算法的智能竞速小车,并从系统软硬件两方面详细阐述了该设计方案,有效实现了对智能竞速小车运行平稳、精确控制的目的。在软件算法上大胆创新,在保证其稳定的同时,力求突破智能车速度的极限,总体提高了车速和车速控制的稳定性,可以应用于学生日常实验教学和其他研究领域。

猜你喜欢
竞速原理图舵机
氢能“竞速”
浅谈STM32核心板原理图设计
电路原理图自动布图系统的设计与实现
基于Protel DXP 2004层次原理图的设计
含齿隙弹载舵机的全局反步模糊自适应控制
基于dsPIC单片机的飞艇舵机控制实现
基于高速同步485总线通信的多通道舵机控制器设计
竞速大挑战
维修电工线路板的接线技巧分析
基于云模型的舵机同步控制