PID控制器
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
基于MATLAB的PID 控制器设计
PID控制是最早发展起来的经典控制策略, 是用于过程控制最有效的策略之一。由于其原理简单、技术成,在实际应用中较易于整定, 在工业控制中得到了广泛的应用。它最大的优点是不需了解被控对象精确的数学模型,只需在线根据系统误差及误差的变化率等简单参数, 经过经验进行调节器参数在线整定, 即可取得满意的结果, 具有很大的适应性和灵活性。
1. PID控制简介
PID控制中的积分作用可以减少稳态误差, 但另一方面也容易导致积分饱和, 使系统的超调量增大。
微分作用可提高系统的响应速度, 但其对高频干扰特别敏感, 甚至会导致系统失稳。
所以, 正确计算控制器的参数, 有效合理地实现 PID控制器的设计,对于PID 控制器在过程控制中的广泛应用具有重要的理论和现实意义。
在PID控制系统中, PID控制器分别对误差信号e(t)进行比例、积分与微分运算, 其结果的加权和构成系统的控制信号u(t),送给对象模型加以控制。 PID控制器的数学描述为
其传递函数可表示为:
从根本上讲, 设计PID控制器也就是确定其比例系数Kp、积分系数T i 和微分系数T d , 这三个系数取值的不同, 决定了比例、积分和微分作用的强弱。控制系统的整定就是在控制系统的结构已经确定、控制仪表和控制对象等处在正常状态的情况下, 适当选择控制器的参数使控制仪表的特性和控制对象的特性相配合, 从而使控制系统的运行达到最佳状态, 取得最好的控制效果。下面介绍基于MATLAB的 Ziegler-Nichols算法PID控制器设计。
2. PID控制器的Ziegler-Nichols参数整定
在实际的过程控制系统中, 有大量的对象模型可以近似地由一阶模型来表示。这个对
K-sLG(s),e象模型可以表示为 1,sT
如果不能建立起系统的物理模型, 可通过试验测取对象模型的阶跃响应, 从而得到模型参数。当然, 我们也可在已知对象模型的情况下, 利用MATLAB,通过使用step ( ) 函数得到对象模型的开环阶跃响应曲线。在被控对象的阶跃响应中, 可获取K 、L 和 T参数, 也可在MATLAB中由 dcgain ( ) 函数求取 K值。
1
KL,,令。在求得L 和α参数的情况下, 我们可通过表1中给出的Ziegler — T
Nichols经验公式确定 P、PI 和PID控制器的参数。
2
3. 在 MATLAB下实现PID 控制器的设计与仿真
已知被控对象的K、L 和T 值后, 我们可以根据Ziegler — Nichols整定公式编写一
个MATLAB函数ziegler_std ( )用以设计PID控制器。该函数程序如下:
function [num,den,Kp,Ti,Td,H]=Ziegler_std (key,vars)
Ti=[ ];Td=[ ];H=[ ];
K=vars(1) ;
L=vars(2) ;
T=vars (3);
a=K*L/T;
if key==1
num=1/a; %判断设计P 控制器
elseif key==2
Kp=0.9/a;Ti=3.33*L; %判断设计PI 控制器
elseif key==3,
Kp=1.2/a;Ti=2*L;Td=L/2; %判断设计PID控制器 end
switch key
case 1
num=Kp;den=1; % P控制器
case 2
num=Kp*[Ti,1];den=[Ti,0]; % PI控制器
3
case 3 % PID控制器
p0=[Ti*Td,0,0];
p1=[0,Ti,1];p2=[0,0,1];
p3=p0+p1+p2;
p4=Kp*p3;
num=p4/Ti;
den=[1,0];
end
20G(s),假设对象模型为一个三阶的传递函数 ,则在MATLAB(s,1()s,2)(s,3)中输入下列语句
>>num=20;den=conv( [1,1],conv( [1,2],[1,3] ));
Step(num,den);K=dcgain (num,den)
Step(num,den)绘制的阶跃响应曲线如图 所示。从该图中, 我们可以近似地提取出带有延迟的一阶环节模型L=0.67, T=2.70, 而K由dcgain ( ) 函数得到K=3.3333。
(说明:因为绘制斜线并没有准确的准则,所以其坡度的选择有一定的随意性,不容易得出很好的客观模型。因此,设计过程中,有可能需要多次的选择参数。)
4
图2 G(s) 的阶跃响应曲线 故PID控制器的参数,可以由函数Ziegler_std ( ) 得到 在Matlab命令窗口输入
>> K=3.3333;L=0.67;T=2.70;[num,den,Kp,Ti,Td]=Ziegler_std (3,[K,L,T])
运行结果如下:
num =
0.4860 1.4508 2.1653 den =
1 0
Kp =
1.4508
Ti =
1.3400
Td =
0.3350
至此, 为完成对系统的PID控制,我们可在动态仿真集成环境 Simulink下构造系统
5
模型( 如图3所示) 。
在Simulink窗口下点击开始仿真按钮, 双击SCOPE图标, 即得到阶跃响应曲线( 如图4所示) 。其中, 上面曲线为未接入PID 的阶跃响应曲线, 下面曲线为接入PID 的闭环响应曲线。
图4 未接入PID 的闭环响应曲线。
6
图5 接入PID 的闭环响应曲线。
4. 结论
从系统接入PID控制器前后的阶跃响应曲线中, 我们可以明显地看到系统性能的改善。
利用MATLAB可以实现PID控制器的离线设计和整定, 并可实现实验室仿真。但是这种常规的PID 控制不具有自适应性, 在长期工作时对象参数会产生偏移, 系统具有时变不确定性, 也存在非线性, 工况点附近小范围的线, 就难以达到理想性化假设在整个工作范围中不能成立时, 我们常常考虑自适应的PID控制算法。
设计题目:
1. 应用Ziegler — Nichols算法设计PID控制器,实现系统的闭环稳定,并比较对
各个系统的控制效果。
11-1.5s,1G(s),G(s),G(s), 353(s,1)(s,1)(s,1)
7