|
接触PID控制是在一年前,刚开始没有经验,用程序实现之后,就在那里调参数,调一个月,总算调出自己满意的的响应曲线了,可又不断遇到其他问题。
此后,不断遇到新问题,不断解决,似乎你每解决一个问题就会马上出现另一个新问题,也许这就是没有经验吧。
我是用PID控制舵机,过程中主要遇到以下几个问题:1.如何调出快速无超调的响应曲线:
对于PID控制,调参是难点,也比较烦,尤其是对新手,调的时间长了,就会对自己的算法产生怀疑。我长时间调不好之后,就果断停下来,去看书。
在图书馆找书发现大多千篇一律,都是几个公式,很少有让新手能够快速理解的,但最后还是找到了一本《自抗扰技术》,我只看了第一章,反复看了
好多遍(本人比较笨),才理解一些基本的概念,凭看书的收获,没几天,得到了理想的响应曲线。后面的内容很想学,但是不知道怎么用程序去实现。
2.如何保证其负载不同时,响应速度要始终保持在一个范围,且是无超调的曲线:
由于负载不确定(设计要求负载在一定的范围都可以),带上不同的负载之后,响应速度不能满足要求,由于是不同负载,
参数之间就产生了矛盾,比如大负载时速度慢,增加输出,但小负载时却又会震荡。
3.如何消除静差:
积分用来消除静差,这是没有疑问的,但通常时候,积分却造成震荡,以至系统不稳定,那么,只能改进用条件积分和饱和积分,这其中又会有很多细节让人很头疼。
4.如何对电位器的AD采样信号进行处理:
对于滤波,我觉得使用硬件滤波是最好的,软件滤波遇到很多问题,不一一说了。
5.如何提高扭矩:
扭矩取决于电机的功率和齿轮比,这在控制算法中是无法改变的。
6.PID的动态品质:
这是我现在还不能让自己满意的地方。在控制信号缓慢变化的情况下,舵机的响应完全没有阶越响应的表现好,会出现步进的感觉(自己的语言描述,就像爬楼梯一样,而不是理想中的一条顺滑的线),不是那么的细腻。
从算法上改进,却始终没有办法消除,当控制信号变化的快时,表现会很好,但越是缓慢就会越有哆嗦的感觉。
对比别的(例如FUTABA),不如他的细腻,算法上却又找不到方向,唯一的区别是我用的电机是铁芯电机,转动惯量会大一些,不知PID的动态品质是如何来控制的呢? |
阿莫论坛20周年了!感谢大家的支持与爱护!!
一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。
|