软件设计报告
自控1106
2011014159
方旭
题目1
某冶金工业过程焙烧炉的数学模型为:
G
( )
s
s
K e
p
1
T s
p
比例系数 Kp=126—160,惯性时间常数 Tp=250-320s,炉口温度变化的时滞时
,输出炉口温度要求尽可能稳定在 855°C。数字仿真时取采样周
间为 10 ~ 20s
期 Ts=10s,Kp=148,Tp=286, 10s
,即仿真模型为:
( )
G s
10
148
e
1 286
s
s
控制要求:
1. 采用位置式 PID 实现炉温控制
2. 采用继电法整定 PID 参数
3. 整定效果验证:当被控过程参数时变时,如工作时间为 100s 时,过程参
数 Kp 由 148→160,Tp 由 286→320;工作时间为 200s 时,过程参数 Kp
由 148→130,Tp 由 286→250 时,考察当系统参数发生改变时,PID 参
数是否选取合适,讨论 PID 其响应速度及鲁棒性问题。
知识准备
对于被控广义对象为带延迟的一阶惯性环节的系统,即传递函数的表达式为 ( )
G s
sKe
1
Ts
的系统,其 PID 控制的参数值可以用一组经验公式来计算,这种 PID 调节器参数值的确定
的方法是 1942 年由 Ziegler 与 Nichols 首先提出的,当已知 K、T、 三个参数时,整定 PID
调节器的计算公式如下图所示:
P
PI
PID
Kp
T/(K* )
0.9T/(K* )
1.2T/(K* )
Ti
3.3
2.2
Td
0.5
系统性能指标:
PID控制:对偏差信号 (t)进行比例、积分和微分运算变换后形成的一种控制规律。PID算法
的数字实现
Proportional(比例)、Integral(积分)、Differential(微分)
根据输入的偏差,按比例、积分和微分的函数关系运算得到控制输出
可以灵活地改变其结构。
P( 比例)控制
PI( 比例积分)控制
PID( 比例积分微分)控制
1
Ti
模拟表达式为:
( )
de t
dt
( )
d
Kp
[1
( )
u t
Td
e
]
t
0
对应的传递函数为:
( )
U s
( )
E s
K
P
1
1
T s
I
T s
D
将积分项和微分项离散化:
t
( )
e t dt
0
( )
de t
dt
( )
E i
k
i
( )
E k
0
(
E k
t
(
E i
2
1)
1)
Ts
( )
E k
1)
(
E k
Ts
将上面两式带入模拟表达式即可得离散 PID 表达式:
( )
U k
( )
K E k
P
Ts
T
I
k
j
0
( )
E j
1)
(
E j
2
T
D
Ts
( )
E k
(
E k
1)
上式的输出与阀门开度位置一一对应,也称为位置型 PID 算式。
程序设计部分
1.用 matlab 编程完成采用继电器法整定 PID 参数;
继电法 PID 整定的基本原理
继电 PID 整定的基本原理是在系统中设置两种模态:
振荡模态和调节模态,两个模态之间的切换靠开关来实现.
图 1 继电整定原理启动自整定程序,即在闭环中接入二位继电特性,系统将产生极限周
期振荡,由此测试出系统的临界振荡周期和增益,系统及继电特性输出波形如图 2 所示.
而在调节模态下,根据以上参数并应用幅值相位裕度法确定 PID 控制参数,然后由此 PID
控制器对系统动态性能进行调节.图 2 中 R 为设定值,τ为纯滞后时间,ε为继电环节的滞环
宽度,h 为滞环幅度,A 为系统输出的极限图 2 系统及继电特性输出波形环振荡幅度,TC 为振
荡周期.由上述测试得到的波形可提取出 A 和 TC,但实际应用中会有如下问题:1)各种干扰影
响(如负载扰动和量测噪声)致使波形失真,使得提取出的特征参数有很大偏差甚至无法提取.
为此,必须提高振荡幅值,即加大滞环宽度ε,实际中ε一般取大于 2 倍系统噪声带幅值,但
过大的振荡幅度又会对系统稳定运行产生危害.2)继电特性对噪声反应极其敏感,过强的噪
声会导致继电环节不停地上下切换,无法形成稳定的极限周期振荡,使整定失败.因此,根本
的解决办法是滤除噪声干扰.传统的基于傅立叶变换原理的滤波器设计繁琐算法复杂,而基
于小波变换原理的数字滤波器具有傅立叶变换不可比拟的优越性[5]:小波(尺度)分解与重
构算法简单,且满足正交性,使得滤波器实现起来简单可靠.因此首先选定某种小波函数和尺
度函数。
具体算法步骤如下:
1)启动自整定程序,引入继电特性环节,并根据式(4)以尺度函数滤波器对系统输出反馈进行
在线低通滤波,消除噪声对继电特性的影响;
2)获得系统振荡波形后,对受噪声污染的波形进行多层小波分解,得到各层小波系数;
3)根据 SURE 法在各层确定阈值;
4)以折衷法对各层小波系数进行阈值处理,得到处理后的小波系数;
5)将处理后的各层小波系数与同层尺度系数相加,得到重构后的振荡波形;
6)从处理后的波形中提取出振荡周期与振幅等特征参数,然后根据幅值相位裕度法整定出
PID 参数.
三、程序设计
由于采用继电法进行整定,则继电器非线性环节。其描述函数为
N
jA
1
B
1
X
4
M
X
1
(
h
X
2
)
j
4
Mh
2
X
则
1
N
π
4
X
M
1
(
h
X
2
)
j
h
4
M
设 h=1,M=1;
所以
虚部为
( 4)式
h
4
M
.0
784
利用 matlab 编写程序得 nyquist 图,程序如下:
G=tf(148,[286,1]);
G.ioDelay=10;
nyquist(G)
ts=1;
sys=tf(148,[286 1],'inputdelay',10);
dsys=c2d(sys,ts,'zoh');
[num,den]=tfdata(dsys,'v');
得到 nyquist 图如下:
Nyquist Diagram
System: G
Real: -4.47
Imag: -5.72
Frequency (rad/s): 0.0712
80
60
40
20
0
-20
-40
-60
s
x
A
y
r
a
n
g
a
m
i
i
I
-80
-20
0
20
40
80
60
Real Axis
100
120
140
160
由上图得
(1)式的 nyquist 图与继电器非线性环节的描述函数的交点及(-0.784,-0.776)交点的频
率为
.0
0712
rad /
s
所以:
ku
1
N
T u
47.4
2
2
1
72.5
2
.0
018975
88
.
2469
s
则
k
c
T
i
k
i
6.0
k
5.0
T
k
c
/
u
T
i
u
.0
011385
44
.
123
.0
00025
T
d
1
12.0
T
u
10
.
589
k
d
Tk
dc
.0
120555
1. 用 matlab 编程完成采用位置式 PID 实现炉温控制;
将延迟部分做差分方程,得到所有差分方程的系数:
clear
K=148;T=286;tau=10;
n1=K;d1=[T 1];G1=tf(n1,d1);
[np,dp]=pade(tau,2);Gp=tf(np,dp);
G3=G1*Gp;
dsys=c2d(G3,1,'zoh');
[num,den]=tfdata(dsys,'v');
源程序如下:
y(3)=0;
sp=855;
e(1)=0;
e(2)=0;
e(3)=0;
u(1)=0;
u(2)=0;
u(3)=0;
Kp=0.011385;
Ti=270.123;
Td=10.589;
Ts=10;
ivalue(1)=0;
ivalue(2)=0;
ivalue(3)=0;
for k=4:1:3000
y(k)=0.2626*u(k-1)-0.7076*u(k-2)+0.4911*u(k-3)+2.456*y(k-1)-2.0032*y(
k-2)+0.5469*y(k-3);
e(k)=sp-y(k);
pvalue(k)=Kp*e(k);
ivalue(k)=ivalue(k-1)+Kp/Ti*Ts*(e(k)+e(k-1))/2;
dvalue(k)=Kp*Td/Ts*(e(k)-e(k-1));
u(k)=pvalue(k)+ivalue(k)+dvalue(k);
e(k-1)=e(k);
end
tt=1:1:3000;
plot(tt,y);
得到整定效果图如下
3整定效果验证
当被控过程参数时变时,如工作时间为100s时,过程参数Kp由148→160,Tp由
286→320;工作时间为200s时,过程参数Kp由148→130,Tp由286→250时,考察
当系统参数发生改变时,PID参数是否选取合适,讨论PID其响应速度及鲁棒性
问题。
即改变程序中的Kp、Tp,再把得到的参数化方程系数代入PID整定代码段中
程序如下
clear
K=160;T=320;tau=10;
n1=K;d1=[T 1];G1=tf(n1,d1);
[np,dp]=pade(tau,2);Gp=tf(np,dp);
G3=G1*Gp;
dsys=c2d(G3,1,'zoh');
[num,den]=tfdata(dsys,'v');
得到整定效果图如下