| 
 | 
	
    
 
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册  
 
x
 
为为实现PID控制所需要的等间隔采样,我们使用了一个定时中断,每2ms进行一 次数据采样和PID计算。与此并行,系统中还设计了一个转速 脉冲检测中断,从而实现了转速检测。为了调试的需要,程序中还在main{} 函数中加入了相关的调试代码,这部分代码有最低的优先级,可以在保证不影响控制策略的情况下实现发送调试数据等功能。检测环节对整个控制系统的质量起到至关重要的作用 
+ ~& l& _" D( N- j+ j 
5 c/ R8 X, Z0 i4 S3 d* c4.3.2 PID控制调 整速度 
3 [) @# {) @4 P( p' H8 R# s0 e# ]本系统采用的是增量式数字PID 控制,通过每一控制周期( 10ms)读入脉冲数间接测得小车当前转速vi_ FeedBack,将vi_ FeedBack与模糊推理得到的小车期望速度vi_ Ref比较,由以下公式求得速度偏差error1与速度偏差率d_error 。  Y) W' i8 b1 N- V* ` 
error1 = vi_ Ref - vi_ FeedBack;      (公式3) 
5 `5 [( r" x* y. h6 ud_ error = error1 - vi_ PreError;      (公式4) 
; q% r- P: c# [5 z公式4中, vi_ _PreError为 上次的速度偏差。考虑到控制周期较长,假设按2.5m/s的平均速度计算,则一个控制周期小车大概可以跑过2.5cm, 如果按这种周期用上述PID 调节速度,则会导致加速减速均过长的后果,严 重的影响小车的快速性和稳定性。为 了解决这个问题,可以在PID调速控制中加入BANG-BAN控制思想: 根据error1的大小, 如果正大,则正转给全额占空比;如果负大,则自由停车或给一个反转占空比;否则就采用PID计算的占空比。 
, B% r* }7 I( b' h+ Y, R) R 
- L9 e& X1 T) Z( r1 l+ t- `8 x+ r 
 
7 m4 M0 {+ \4 C% l3 ?, m+ C  r; t! Q7 h* [) o2 m4 m3 g; x 
3 |9 z6 p$ E8 ]- u# \' j3 c/ r 
 |   
 
 
 
 |