Z-N法整定PID参数带设计题目

更新时间:2023-10-26 21:25:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Z-N法整定PID参数

在实际应用中,我们尽量避免使用高深复杂的数学公式,希望能使经验法更多的发挥能力,这样既可以节省很多时间,也可以通过经验的传授使更多的工程师或工人可以掌握一种简单有效的方法来进行PID控制器的调节。 传统的PID经验调节大体分为以下几步:

1. 关闭控制器的I和D元件,加大P元件,使产生振荡。 2. 减小P,使系统找到临界振荡点。 3. 加大I,使系统达到设定值。

4. 重新上电,观察超调、振荡和稳定时间是否符合系统要求。 5. 针对超调和振荡的情况适当增加微分项。

以上5个步骤可能是大家在调节PID控制器时的普遍步骤,但是在寻找合时的I和D参数时,并非易事。如果能够根据经典的Ziegler-Nichols(ZN法)公式来初步确定I和D元件的参数,会对我们的调试起到很大帮助。

John Ziegler和Nathaniel Nichols发明了著名的回路整定技术使得PID算法在所有应用在工业领域内的反馈控制策略中是最常用的。Ziegler-Nichols整定技术是1942年第一次发表出来,直到现在还被广泛地应用着。

所谓的对PID回路的“整定”就是指调整控制器对实际值与设定值之间的误差产生的反作用的积极程度。如果正巧控制过程是相对缓慢的话,那么PID算法可以设置成只要有一个随机的干扰改变了过程变量或者一个操作改变了设定值时,就能采取快速和显著的动作。 相反地,如果控制过程对执行器是特别地灵敏而控制器是用来操作过程变量的话,那么PID算法必须在比较长的一段时间内应用更为保守的校正力。回路整定的本质就是确定对控制器作用产生的过程反作用的积极程度和PID算法对消除误差可以提供多大的帮助。 经过多年的发展,Ziegler-Nichols方法已经发展成为一种在参数设定中,处于经验和计算法之间的中间方法。这种方法可以为控制器确定非常精确的参数,在此之后也可进行微调。 Ziegler-Nichols方法分为两步:

1. 构建闭环控制回路,确定稳定极限。 2. 根据公式计算控制器参数。

稳定极限是由P元件决定的。当出现稳态振荡时就达到了这个极限。产生了临界系数Kpcrit和临界振荡周期Tcrit。

确定临界系数Kpcrit和临界振荡周期Tcrit后,根据下表的公式,计算其他参数:

根据上述方法,举例说明: 1. 假设Kpcrit=20 2. Tcrit=100ms

确定PID控制器的P、I、D元件的系数以及积分时间内Tn和微分时间Tv。

优化PID控制器的参数:

综上可以看书,在调试PID控制器时,如果应用Ziegler-Nichols方法,可以快速、精确的算出相应的各参数数值,再之后只需进行微调便可得到理想的控制效果。

设计题目:

1. 应用Ziegler — Nichols算法设计PID控制器,实现系统的闭环稳定,并比较对各个系

统的控制效果。

G(s)?1(s?1)3

未连入PID控制器时的系统仿真及其性能指标如下:

可见,未调节时的系统性能有待提高,需设计PID控制器连入。 输入:

>> num=1;

den=conv( [1,1],conv( [1,1],[1,1] )); Step(num,den); K=dcgain (num,den)

得出:

K =1

根据图形,得出:

L=1.86 T=4.4

利用自定义的Ziegler_std函数求出Kp、Ti、Td 输入:

>> K=1; L=1.86;

T=4.4;

[num,den,Kp,Ti,Td]=Ziegler_std (3,[K,L,T])

得出:

num =

2.6400 2.8387 1.5262 den =

1

Kp =2.8387 Ti =3.7200 Td =0.9300

0

根据得出的Kp、Ti、Td值,设计PID控制器,并利用利用Simulink仿真建模。 仿真模型及其响应如下:

可见,加入PID控制器调节后,系统性能明显改善。

G(s)?1(s?1)5

未连入PID控制器时的系统仿真及其性能指标如下:

可见,未调节时的系统性能有待提高,需设计PID控制器连入。 输入:

>> num=1;

den=conv([1,1],conv([1,1],…;

conv( [1,1],conv( [1,1],[1,1] )))); Step(num,den); K=dcgain (num,den)

得出:

K = 1

根据图形,得出:

L=3.4 T=6.8

利用自定义的Ziegler_std函数求出Kp、Ti、Td 输入:

>> K=1; L=3.4; T=6.8;

[num,den,Kp,Ti,Td]=Ziegler_std (3,[K,L,T])

得出:

num =

4.0800 2.4000 0.7059 den = 1 0

本文来源:https://www.bwwdw.com/article/u6k2.html

Top