有些不明白的地方:感觉如果偏差有正负的话,反馈的控制量也应该有正负,这样反馈的值在程序上就应该区别对待。
1. 偏差大于0时,程序上直接用 high_
time=(unsigned char)(rout/800); 这条语句来决定高低电平的时间。偏差小于0时,也是类似的语句。。这我就不能理解这样是怎么调节使被测量达到设定值的。
2.这里rout 的数据类型是 unsigned int ,这样可以吗?反馈控制量不应该有正负之分吗?如果没有正负区别的话,又怎么调节的。
总之,不能理解程序是怎么进行PID调节的。一度怀疑程序有问题!!!
---------------------------------------
下面是一些关键性的代码 附件有源程序
这是PID算法部分
PID处理后的控制量反馈到rout处,在这里执行,分别是电机速度偏差大于0和小于0的情况。
-
-
PID算法控制电机转速.zip
下载积分: 积分 -1 分
113.15 KB, 下载次数: 13, 下载积分: 积分 -1 分
一周热门 更多>