Chinaunix首页 | 论坛 | 博客

Lzy

  • 博客访问: 216057
  • 博文数量: 56
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 675
  • 用 户 组: 普通用户
  • 注册时间: 2014-02-27 15:50
文章分类

全部博文(56)

文章存档

2014年(56)

我的朋友

分类: C/C++

2014-07-21 14:58:46

1. 积分分离的PID算法:


控制系统中当偏差较大(如大幅度升降给定值时),其偏差不能很快得到消除,积分项取值很大会导致较大的超调和长时间震荡。这时可采用积分分离的PID算法,其算法表达式如下:

e390e72c-b3d5-4610-9a55-8e2d5ef738af.gif

d33b69f7-c0ce-4071-b1b5-74cb40aa50fb.gif——逻辑系数

fa6f857b-d1db-41ab-9eb4-e1df217eb4ca.gif

 

A为预先设定的门限值。


积分分离的PID算法思想就是偏差较大时(绝对值大于A)积分环节不起作用,偏差较小时(绝对值小于等于A)才引入积分环节。


其算法流程:

56bf7050-e02d-4299-8568-2571f3f27b64.jpg

 

 

2. 带死区的PID控制算法


在控制过程要求平衡的场合,可以采用带死区的PID控制。其实质是人为地引入一个非线性环节。

c5e07b16-4982-4ca9-b6c7-48f638883131.jpg

控制思想:在偏差信号小于或者等于某个规定值B的时候,不进行调节,只有当偏差大于B的时候才进行PID调节,即:

366b7968-6be6-46e9-aff5-8348ed1f826c.gif

 

流程:


ca0ae377-176b-4990-b875-70a113281257.jpg

 

3. 遇限削弱积分PID控制算法


基本思想:当控制进入饱和区以后,便不再进行积分项的累加,只执行削弱积分项的运算。在计算u(k)时,先判断u(k-1)是否超出限制值,若u(k-1)>umax,则只累加负偏差;若u(k-1)min,则只累加正偏差。可避免控制量长时间停留在饱和区。


算法流程:
988990ef-7b46-45a7-b070-a2b9bea1929c.jpg


4. 不完全微分PID算法


分析微分项:a1fa80bb-ed88-4a57-a639-6b0570002386.gif
e(k)为阶跃函数时,uDk)输出为:31fbf2b8-b756-4945-a1f6-9310fd5c41dc.gif
 

仅第一个周期有输出。

 

可见,微分项的特点:

 

1)微分项只在第一个周期起激励作用,对时间常数较大的系统,其调节作用很小,不能达到超前控制误差的目的。

2) uD的幅值KD一般比较大,容易造成计算机数据溢出,且uD过大、过快,对执行机构也会造成不利影响。


克服上述不利影响的方法之一是在PID算法中加一个惯性环节(低通滤波器):b82d8c4a-312a-4cd2-a0d7-7bddee37c275.gif
不完全微分PID算法的结构框图如下:
f07ac407-7c5d-4a21-aabe-6145c3b1f0f0.jpg
以A图为例:
c8aeb82a-6fdc-4736-b783-39ac0f582f93.gif
离散化:
f934b7b4-0c21-4c50-949e-a7ae1924ae7c.gif
其中的比例和积分项的输出与普通PID算法一样,但uD的输出不同。
6ebb6d5d-9808-4b02-8b08-58892226a9ed.gif
离散化整理:
8bb3d13f-fdd8-45b3-9def-470ee3a7b6bf.gif
506e94c2-c55b-4ea7-ac9b-968fd8481860.gif
则:
5e0fde39-6dc7-4743-aca2-7e23749cd233.gif
其中:4e8ea189-2d75-4473-adcf-5fd40523ba17.gif

 

算法流程:


5fca2546-91d2-4b35-ac14-acf33e5a2f5a.jpg

参考文献:

 

1. http://blog.ednchina.com/tengjingshu/228278/message.aspx


阅读(893) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~