前言:
而今大家对“智能小车pid算法程序图”可能比较关怀,兄弟们都想要剖析一些“智能小车pid算法程序图”的相关资讯。那么小编也在网摘上网罗了一些有关“智能小车pid算法程序图””的相关知识,希望你们能喜欢,各位老铁们快快来学习一下吧!增量式数字PID算法
在单片机系统中数字增量式PID算法比较容易实现,采用周期为T,
每隔T时间采样一次电机的转速得到一个测量值序列:
v(1),v(2),v(3)……v(k)
而k个采样周期设定的目标值形成的序列为:
s(1),s(2),s(3)……s(k)
目标值与时间测量值之间的误差的序列为:
e(1),e(2),e(3)……e(k)
(1)比例环节
kp*e(k),kp为比例系数,比例环节表示当前采样周期的误差
(2)积分环节
ki*(e(1)+e(2)+……e(k)),ki为积分系数,积分环节表示前k个采样周期的历史误差
(3)微分环节
kd(e(k)-e(k-1))/T,kd为微分系数,微分环节反应的是未来误差的变化趋势
所以三个环节组合在一起就是当前的控制量:
u(k)=kp*e(k)+ki*(e(1)+e(2)+……e(k))+kd(e(k)-e(k-1))/T
那么前一个周期的输出量为
u(k-1)==kp*e(k-1)+ki*(e(1)+e(2)+……e(k-1))+kd(e(k-1)-e(k-2))/T
则第k个采样周期相对于k-1个采样周期输出量的变化量:
du(k)=u(k)-u(k-1)
=kp(e(k)-e(k-1))+ki(e(k)-e(k-1))+kd*(e(k-2*e(k-1)+e(k-1)))
所以我们只需要关心du(k),也就是第k个采样周期的控制量在第k-1个采样周期的基础上变化多少即可。可见采用增量式PID,占用单片机的内存小,易于实现。
PID程序设计
/*Bias为e(k)Bias_1为e(k-1)Bias_2为e(k-1)v:测量转速s:目标转速*/ Bias=s-v; PwmA+=(int)(Velocity_Kp*(Bias-Bias_1)+Velocity_Ki*Bias+Velocity_Kd*(Bias-2*Bias_1+Bias_2)); Bias_2 = Bias_1; Bias_1 = Bias;参数整定
将电机的转速反馈到上位机,根据经验或者采用寻优算法进行整定。我制作了一个上位机软件,如图:
图中是让电机正转3秒后,反转3秒的情况。
标签: #智能小车pid算法程序图 #增量式pid控制算式具有哪些优点和缺点 #单片机增量式pid算法 #单片机增量式pid算法实验报告