有没有人贡献一个可以用的PID程序,,,,我写的跑起来老出问题

2020-02-08 09:32发布

有没有人贡献一个可以用的PID程序,,,,我写的跑起来老出问题

PWM老在动,,而且,,PID系数方面也没搞过
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
26条回答
xkdwangcs
2020-02-10 17:26
用我的经验告诉大家:

上面的PI调整,思路没有问题
实现有问题


1.就是符号:我相信你要的那些PI设计到的变量最好都弄成有符号的变量。
除非你非常肯定他是个正的。
2.你调节时候,居然知道进行舍弃,为什么不进行门限的判断了。溢出了怎么办呢。
或是调节占空比的占空比寄存器如果出现负数怎么办呢?
3.就是比较常见的问题了。也是我如果用C语言一定会加上的。
积分的误差累计。累计的不是积分。而是每次积分贡献给PI调节的只能是整数部分。那么小数部分。咱们需要累计
比如;A是通过误差*积分常数算出来的。B呢,为A的整数部分。C呢为A的小数部分。类似A=B+C;
这样你可以进入PI调节的只有B部分加到占空比上(在电机控制上。)如果呢,你下次算出来的积分是A1那么
积分小数累计的话,就可以把C+A1得到的一个数再分为整数部分B1和小数部分C1。然后B1作为调节。C1继续保留

这样一直下去,我相信,你的一个简单系统的会调节的比较好了。
我在无刷电机控制当中,基本是这样做的。还算可以了。

当然设计小数计算了。只能靠个人能力去发挥了。
我也帮不了了。
定标一种。
如果对于响应能力很要求,然后单片机的运算速度还可以了。存储器也够用
直接用FLOAT
实在不行就用定标了。

一周热门 更多>