当前位置:文档之家› 数字PID的仿真实验例子

数字PID的仿真实验例子


K)p ,
T由i 大到小,直
(使3)调稍KT微p:d若提系升统一动点态,特由性小不到好大,,则直加到入动,T态d同满时 意。
工程实际中,以上几步反复操作,直到满意 为止。常见被调量的PID调节器参数选择范围 如下表:
被调量 流量
特点 对象时间常数并有噪声
Kp
T(i m)
(m)
Td
1~2.5
0.1~1
(1)先调 :让系统闭环,使积分和微分不起作 用( ,K p ),观察系统的响应,若反映 快、超调Ti 小 ,静Td 差 0满足要求,则就用纯比例 控制器。
(2)调 T:i 若静差太大,则加入 ,Ti 且同时使 略K p 下降(如降至原来的80%,因加入积分会使
系统稳定性下降,故减小 到满足静差要求。
仿真中对象输出端加幅值为0.01的随机信号.输 入信号为阶跃信号.对象在不完全微分PID和 标 准 PID 作 用 下 的 输 出 响 应 分 别 见 仿 真 程 序 D_partial.m和partialD.mdl
二、微分先行 e80s
仿真举例:设被控对象为 G0 (s) 6s 1
输入信号为带有高频干扰的方波信号:
仿真实例3:设被控对象为G0 (s)
s2
54 18s
1
输入信号是脉宽20s、周期50s的脉冲信号。假
设常规PID控制器为:
D(s) 0.51 1 2s 3.5s
采用微分先行PID控制器,并设其中的r 0.5
系统采用两种控制器的原理图如下:
仿真实例4:设被控对象为
400 G0 (s) s2 50s
(1
z 1)
400 s2 (s 50)
G0 ( z)
(1
z 1 )
Z
8 s 2
0.16 s
0.16 s 50
z
1 z
8Tz ( z 1)2
0.16 z z 1
0.16 z z e 50T
G(z)
z
z
1
(
8Tz z 1)
2
0.16z z 1
0.16z z e50T
设常规PID控制器为:
D(s) 0.51 1 2s 3.5s
采用微分先行PID控制器,并设其中的r 0.5
系统采用两种控制器的原理图如下:
系统采用两种控制器的输出响应波形如下:
四、 试凑法
试凑法试一种凭借经验整定参数的方法, 让系统闭环,改变给定值以给系统施加干扰 信号,一边按 K p Ti 顺序T调d 节,一边观察 过渡过程,直到满意为止。其过程如下:
0.0001968z 1 0.0001936z2 11.9512z 1 0.9512z 2
G(z)
Y (z) U (z)
0.0001968z1 0.0001936z2 11.9512z1 0.9512z2
U (z)(0.0001968z1 0.0001936z2 ) Y (z)(11.9512z1 0.9512z2 )
if u(k)>=110 u(k)=110; end
if u(k)<=-110 u(k)=-110; end
u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout(k); error_2=error_1; error_1=error(k); end
rin(t) 1.0sign(sin(0.0005t)) 0.05sin(0.03t)
对象在微分先行PID作用和标准PID控制器作用下输 入输出见仿真程序D_advance.m
通过结构图的仿真见advanceD.mal
举例2:设被控对象为
G0 (s)
s2
54 18s
1
输入信号是脉宽20s、周期50s的脉冲信号。假
0.0001968z1U (z) 0.0001936z2U (z) Y (z) 1.9512z1Y (z) 0.9512z2Y (z)
0.0001968u(k 1) 0.0001936u(k 2) y(k) 1.9512 y(k 1) 0.9512 y(k 2)
y(k) 1.9512 y(k 1) 0.9512 y(k 2) 0.0001968u(k 1) 0.0001936u(k 2)
y(k) den(2) y(k 1) den(3) y(k 2) num(2)u(k 1) num(3)u(k 2)
脚本:
clear all; close all;
ts=20; sys=tf([1],[60,1],'inputdelay',80);
dsys=c2d(sys,ts,'zoh'); [num,den]=tfdata(dsys,'v'); u_1=0;u_2=0;u_3=0;u_4=0;u_5=0;
温度
多容系统,有较大滞后
1.6~5
3~10 0.5~3
压力
多容系统,滞后不大
1.4~3.5 0.4~3
液位
允许有静差,
1.25~5
对F(s)部分分式展开:F (s)
2s3 9s 1 s3 s2 4s
4
b=[2 0 9 1];
a=[1 1 4 4];
[r,p,k]=residue(b,a)
展开后得:
F (s) 2 2 0.25 j 0.25 j s 1 s 2 j s 2 j
求f(t)=1-e-at的Z变换:
x=sym(‘1-exp(-a*t)');
X=ztrans(x)
求F(z)的反变换:
F(z)
z3
z2 4z2
5z
2
X=sym('z^2/(z^3-4*z^2+5*z-2)'); x=iztrans(X)

G0 (s)
1用0 零阶保持器,在采样周
s(s 1)
期Ts=1s下离散化求G(z)
sys=tf(10,[1 1 0]); dsys=c2d(sys,1,‘zoh’) [z,p,k]=tf2zp(num,den)
y_1=0;y_2=0;y_3=0; error_1=0;error_2=0;
ei=0; for k=1:1:200 time(k)=k*ts; yout(k)=-den(2)*y_1+num(2)*u_5;
%I separation
rin(k)=40;
error(k)=rin(k)-yout(k);
利用增量式PID,采用脚本编程实现对上面对象
的控制,并整定PID参数
被控对象为
400 G0 (s) s2 50s
采用零阶保持器离散化,采样时间取0.001s,离 散化得:
G0 (z)
ZOH
400 s2 50s
1 eTs s
400 s2 50s
G0 (z)
(1
z 1)
400 s(s2 50s)
elseif abs(error(k))>=10&abs(error(k))<=20
beta=0.9;
else
beta=1.0;
end
elseif M==2
beta=1.0;
kp=0.80; ki=0.005;
kd=3.0; u(k)=kp*error(k)+kd*(error(k)-
error_1)/ts+beta*ki*ei;
figure(1); plot(time,rin,'b',time,yout,'r'); xlabel('time(s)');ylabel('rin,yout');
figure(2); plot(time,u,'r'); xlabel('time(s)');ylabel('u');
2、抗积分饱和法
ei=ei+error(k)*ts;
M=1;
if M==1
%Using integration
separation
if abs(error(k))>=30&abs(error(k))<=40
beta=0.3;
elseif abs(error(k))>=20&abs(error(k))<=30
beta=0.6;
结果如P123:G(z):
仿真实例1:G(s)
s2
10 2s
1
利用simulink中的比例、积分、微分,自 己搭建连续PID控制器,实现对上述对象的 控制,修改PID参数观察其阶跃响应曲线变 化,掌握PID各个部分对系统性能的影响。
仿真实例2:G(s) e80s
60s 1
利用simulink中的PID控制器实现对上述 对象的控制,修改PID参数观察其阶跃响应 曲线变化。
算法:
当u(k) 00H时, 取u(k )=00H
当u(k ) FFH时, 取u(k )=FFH
仿真实例:
G(s)
s3
523500 87.35s2 10470s
二、不完全微分 仿真实验,采用图(b)结构的不完全微分,对象为
G(s)
பைடு நூலகம்
e 80 s 60s+1
Df
(s)
1 180s
1 ,Ts
20ms
背景:PID控制器的输出由于积分作用不断累 加而加大,从而导致执行机构达到极限位置(如 阀门全开),若控制器输出继续增大,阀门开度不 可能再增大,此时就称计算机输出超出了正常 运行范围而进入了饱和区.系统进入饱和后, 饱和越深,退饱和时间越长,系统超调就越大。
措施:对输出进行限幅,同时切除积分作用。
相关主题