吴绪辉 黎镜林 郭锐坤 钟元谦 唐小煜
(华南师范大学物理与电信工程学院 广东 广州 510006)
随着汽车电子和智能机器人技术的发展,智能车已经成为自动控制领域内的一个研究热点.智能汽车是一种集环境感知、规划决策、自动行驶等功能于一体的综合系统,集中地运用了自动控制、模式识别、传感器技术、汽车电子、电气、计算机、机械等众多学科,是典型的高新技术综合体,具有重要的军用及民用价值[1].因此,智能车领域的研究也越来越受到重视,由中国高等教育学会发布的《中国高校创新人才培养暨学科竞赛评估结果》中,全国大学生智能汽车竞赛被纳入评估名单[2].在智能车竞赛中,传统的电机转速开环控制法难以满足高精度和快响应的控制需求.为此,本文提出基于转速编码器的电机转速PID闭环控制系统,以实现对电机转速的高精度控制.
传统的电机转速开环控制法是指被控对象的结果输出对控制器的目标输入没有影响的控制方式,这种控制系统不会将系统输出结果反馈回来形成闭环回路.因此,该系统很难判定实际输出结果是否就是预想的目标输出,常会导致实际输出和目标输出存在较大误差且无法修正.由于缺少相应的反馈回路,在调节电机转速时只能输出某个固定的PWM值来模糊地控制电机转速,无法闭环地控制电机转速;在智能车的调试过程中还发现当电池电量不同时,控制器输出相同的PWM参数但电机的转速不一致.显然,电机转速开环控制法存在较多的缺陷与不足.
为解决上述开环控制系统在智能小车速度控制中的缺陷与不足,可将自动化控制领域中常见的PID闭环控制系统引入到智能小车当中.其中,为了有效地采集速度信息,可使用微型角速度编码器对小车电机转速进行测量采样,并选用实时性能良好的嵌入式控制系统,以达到对小车转速及运行姿态的精确控制.
PID闭环控制系统流程图如图1所示,按照比例、积分和微分进行控制的调节器简称为PID调节器[3].它是一种线性控制器,根据期望输入值r(t)与实际输出值c(t)构成的控制偏差,将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制[4].它构造简单,参数整定简便,控制算法易于实现,控制精度高,鲁棒性强,是控制系统中技术成熟、应用较为广泛的一种调节器[4].PID控制表达式如式(1)所示
(1)
其中Kp为比例系数,Ti为积分时间常量,Td为微分时间常量.
图1 PID闭环控制系统流程图
PID控制器各校正环节的作用[5]如下:
(1)比例环节.该环节的主要作用是在系统出现偏差时,瞬时进行反应.当系统偏差出现时,控制器立即发挥控制作用,使控制量往减少偏差的方向变化.比例系数的大小直接决定系统控制作用的强弱,当比例系数越大则控制量越大,系统趋于稳定的过渡时间越短;如果比例系数过大,系统就会出现振荡,导致系统的不稳定[5].
(2)积分环节.当系统进入相对稳态后,通常会存在稳态误差.积分环节的主要作用是消除静态误差,但同时也降低了系统的响应速度,增大系统的超调量.Ti决定积分控制的强弱,积分常数Ti增大,对输出的控制量减小,超调量降低,系统在过渡时不会产生振荡,到达稳态的时间增大;反之,当积分常数Ti减小,对输出的控制量增大,超调量增加,系统在过渡时间到达稳态的时间减小[5].
(3)微分环节.比例环节和积分环节二者都是在误差出现后再进行控制,因此在调节过程中系统会出现不稳定状态.微分环节的作用是提前感知误差分析趋势.Td的大小决定微分控制作用的大小,当Td变大,微分控制的输出量变大,抑制误差的作用增强,能在偏差值变大之前进行.反之,当Td变小,微分控制的输出量变小,抑制误差的作用减弱[5].
由于微型计算机内处理的是离散的数字信号,而上述PID式(1)中运算的是连续的模拟量,因此需要对其进行如下离散采样处理
(2)
(3)
式中,T为采样周期,k为采样序号,由式(1)、(2)、(3)可得
(4)
由式(4)推广可得
(5)
将式(4)减式(5)得到增量式PID公式
ΔP=Kp[E(k)-E(k-1)]+KiE(k)+
KD[E(k)-2E(k-1)+E(k-2)]
(6)
如图2所示,电机PID闭环调速系统主要由嵌入式控制器、直流电机和转速编码器构成.其中,嵌入式控制器负责对设定的目标速度与实际速度根据增量式PID闭环算法进行处理,并向电机驱动输入对应的PWM信号来控制直流电机的转速.转速编码器负责将电机转速转换并编码为对应的方波脉冲信号,以供嵌入式控制器进行处理.
图2 电机PID闭环调速系统框图
(1)设置编码器的目标脉冲数speed,将编码器检测到的实际脉冲数通过取绝对值后放入变量variable.
(2)目标脉冲数speed减去实际脉冲数variable得到e[k]项的误差放入变量SpeedError[2],e[k-1]项的误差放入变量SpeedError[1],e[k-2]项的误差放入变量SpeedError[0].
(3)将e[k]、e[k-1]、e[k-2]项的误差代入PID公式进行运算,得到所需的PWM占空比MotorPwm,并判断MotorPwm是否大于最大极限值或小于最小极限值.
(4)在上述的运算结束以后将SpeedError[1]赋给SpeedError[0],同时将SpeedError[2]赋给SpeedError[1].
增量式PID算法流程图如图3所示.
图3 增量式PID算法流程图
3.2.1 测试装置的硬件机械结构
如图4所示,智能小车的传动机械结构由电机及其驱动、减速齿轮和角速度编码器等模块构成.智能小车所使用的角速度编码器为欧姆龙500线编码器,即编码器的转轴每转动一圈,编码器信号输出端将产生500个方波脉冲.为对比分析开闭环控制系统之间的性能差异,可将传统的电机转速PID开环控制法与本文提出结合转速编码器的增量式PID闭环控制法分别进行实际测试.二者所使用的硬件设备相同,其区别仅在于开环控制法没有使用编码器返回的速度参数.
图4 智能小车的传动机构与转速编码器
3.2.2 测试过程
为了实时采集并记录智能小车电机的转速数据,可使用无线串口蓝牙进行速度数据的发送,并在上位机软件中读取和保存数据.对于PID闭环调速系统的测试,需要给嵌入式控制器烧写已经调试完善的闭环调速程序,设定合适的目标速度,然后开启无线蓝牙等待接收实时速度数据,随后启动小车电机并记录数据.对于开环调速系统的测试,无需更改小车模型的机械结构,只需烧写对应的程序,然后重复上述闭环系统的步骤,记录数据.
3.2.3 测试数据与分析
测试数据如图5所示,实线为本文提出结合转速编码器的增量式PID闭环控制法测得的数据,点虚线为传统开环控制系统测得的数据,虚线为控制系统理想数据.通过对比不同调速系统的速度响应曲线可知,增量式PID闭环调速算法可使电机转速迅速地达到预设目标速度,速度响应快,上升时间短,超调量小,调整时间短,稳态速度与预设目标速度的差值不大;而传统的开环调速方式则无法使速度达到目标预设速度,且上升时间较长,速度响应慢.由于缺少反馈环节,开环控制系统的速度调节方式为盲调,即控制器无法得知执行机构的状态,使得这种调速方式只能用于对速度精度不敏感的系统当中.而增量式PID闭环控制法具有速度追踪的功能,能够实时地获得执行机构的状态,以保证在误差出现时控制器能够迅速作出反应,使控制信号往误差减小的方向变化.
图5 不同调速方式下的速度响应曲线
本文分析了传统的电机转速PID开环控制法在实际应用中的不足,并提出基于转速编码器与PID算法相结合的闭环控制系统,此调速算法实现原理简单、效果理想、鲁棒性强,能够很好地对智能小车的速度进行精确控制调节,在实际调试中操作简单、易于编程实现,有助于在智能车竞赛中提高智能小车的比赛成绩.