基于PID算法的电机调速系统设计
2021-11-28徐嘉宝龙慧丁慧玉欧寒芝
徐嘉宝 龙慧 丁慧玉 欧寒芝
[摘 要]使用MK60FX512VLQ15,采用PID算法对电机进行调速控制,采用N-MOS管搭建的“H桥”电路对电机进行驱动,实验结果表明,该设计能满足不同速度要求的电机调速,可广泛应用于微型直流电机控制中。
[关键词]PID算法;N-MOS管驱动;直流电机
[中图分类号]TM341;TP273.4 [文献标志码]A [文章编号]2095–6487(2021)08–0–02
[Abstract] This design uses mk60fx512vlq15, uses PID algorithm to control the speed of the motor, and uses the "H-bridge" circuit built by n-MOS tube to drive the motor. The experimental structure shows that the design can meet the motor speed requirements of different speeds, and can be widely used in the control of micro DC motor.
[Keywords]PID algorithm; N-MOS transistor drive; DC motor
PID算法诞生以来,经久不衰。大到航空火箭的姿态控制,小到家用热水器的温度控制都需要使用PID算法。PID算法具有原理简单、性能稳定、动态性能强等诸多优点,使得其在控制工程中得到了广泛应用。本文运用ARM-CortexM4的内核的微控制器使用PID算法实现直流电机的调速控制。
1 系统硬件部分
1.1 系统总体构成
本系统硬件结构如图1所示。MK60FX512VLQ15单片机构成主控单元,主要处理编码返回的数据与产生控制信号。为避免电机驱动时的灌电流损坏单片机的IO口,需对其进行光耦隔离;单片机的IO口驱动能力不足,因此需要场效应管驱动电路来驱动电机驱动电路。电机的转速由编码器采得并反馈给单片机,从而组成一个闭环系统。
1.2 主控单元
此次设计采用恩智浦公司生产的基于ARM Coretx-M4架构的Kinetis MK60FX512VLQ15微控制器。Flash容量为512 kB,主频为150 MHz。工作频率最高可超频至200 MHz。其最小系统电路如图2所示。
(1)时钟电路:由32.768 kHz的无源晶振Y2和50 MHz的有源晶振Y3与组成。晶振Y3为微控制器的工作提供系统时钟,其经过芯片内部的PLL(锁相环)倍频或者FLL(锁频环)分频后给如定时器、看门狗、中断等芯片中各个片内外提供时钟信号。晶振Y2为微控制器内部的RTC(实时时钟)提供基准时钟信号。
(2)复位电路:由电阻R33、电容C33和按键S2组成,主要为用户提供手动复位的功能。
(3)JTAG调试接口电路:通过JLINK连接微控制器可实时调试程序。
1.3 驱动电路
电机驱动电路如图3所示,HCPL2630光耦隔離芯片隔离两路PWM信号,两片IR2104驱动4个N沟道的场效应管。当Q2、Q3导通时电机M正转,Q1、Q4导通时电机M反转。
2 系统软件部分
2.1PID算法
比例积分微分控制算法用于调电机的转速。其系统框图如图4所示,根据给定值和实际输出值构成控制偏差、将偏差按比例、积分和微分通过线性组合构成控制量,对被控对象进行控制[1]。设输出为y(t),目标值(输入)为x(t),则误差e(t)=x(t)-y(t),则。其中Kp为比例系数,Ki为积分系数,Kd为微分系数。通过调节Kp、Ki和Kd3个参数的设定,使系统同时具有比例控制的消除偏差、积分控制器的消除稳态误差的效果微分控制器的稳定性的功能[1-2]。
2.2 离散化PID
由于该系统使用微控制器,需对比例积分微分控制算法进行离散化。则y(n)=Kpe(n)+KiTi[e(n)+e(n-1)+…+e(0)]+Kd。其中Ti为积分时间,Td为微分时间。令KiTi=Ki,,则y(n)=Kpe(n)+Ki[e(n-1)+e(n-2)+…+e(0)]+Kd[e(n)-e(n-1)]。考虑到微控制器性能有限,对于存储积分项的压力过大,故采用增量控制。根据上述推导有y(n-1)=Kpe(n-1)+Ki[e(n-1)+e(n-2)+…+e(0)]+Kd[e(n-1)-e(n-2)],则?y[n]=y(n)-y(n-1)=Kp[e(n)-e(n-1)]+Kie(n)+Kd[e(n)-2e(n-1)+e(n-2)],对?y[n]进行累加输出,可以得到y[n][3]。
电机控制流程如图5所示,首先输入已经调试好的PID参数,PID间隔时间使用微控制器的PIT定时器中断,间隔为10 ms,若中断时间到,则使用PID算法解结算出输出,若停止运行,则停止,否则将解算出的结果输入到电机。
3 系统调试
电机调速主要使用PID算法。根据PID控制器三者的特性,先调节Kp使电机转速快速接近目标且不能产生过多的震荡,再调节Ki使电机稳定在目标转速,最后调节Kd改善系统的动态性能。根据测得电机最快的速度为19个脉冲/10 ms调参时,为体现累积误差,将测试时间延长至100 ms,将目标值设为0.7倍的最大速度,即133个脉冲/100 ms。最终调节所得参数为:Kp=67,Ki=17.5,Kd=15。其各段速度所需收敛时间如表1所示。由表1可以看出,部分速度区间需要较长时间才能收敛,经过实验发现,将PID计算时间调整为10 ms,性能将大幅改善。
4 结束语
本文在微控制器上使用了PID算法对直流电机进行调速。实验结果表明,该设计通过调节PWM的占空比控制电机的转速,且原理简单、控制稳定、可广泛应用于直流电机的控制中。
参考文献
[1] 吴学舜,韩志强.《专业综合设计实验》课程教学探讨——以西华大学汽车发动机专业为例[J].考试周刊,2016(72):168-169.
[2] 千博,过润秋,屈胜利,等.自动控制原理[M].西安:西安电子科技大学出版社,2018.
[3] 吕彦卿.室内智能小车的轨迹跟踪控制研究[D].大连:大连理工大学,2020.