电加热炉的系统辨识与自适应控制
目 录
一、电加热炉的先验知识............................................................................................ 1
1.1 电加热炉的工作原理 .................................................................................... 1
1.2 电加热炉温度控制系统的硬件构成 ............................................................ 2
二、电加热炉系统辨识................................................................................................ 3
2.1 电加热炉温度系统模型 ................................................................................ 3
2.2 最小二乘估计的递推算法 ............................................................................ 4
2.3 最小二乘估计的递推算法辨识及仿真 ........................................................ 5
三、电加热炉系统的自适应控制算法及仿真............................................................ 8
3.1 电加热炉系统控制问题的提出 .................................................................... 8
3.2 广义最小方差间接自校正控制算法 ............................................................ 8
3.3 广义最小方差间接自校正控制仿真 ............................................................ 9
参考资料...................................................................................................................... 15
电加热炉的系统辨识与自适应控制
一、电加热炉的先验知识
1.1 电加热炉的工作原理
我选择电加热炉作为辨识和自适应控制设计与仿真实验的对象。
电加热炉的工作原理为:布置在炉内的加热元件将电能转化为热能,通过辐
射或对流的方式将热能传递给加热对象,从而改变对象的温度。
通常的工业过程都对炉温的控制提出了一定的要求,这就需要对电加热炉的进行控制,调节它的通电时间或通电强度来改变它输出的热能。传统的控制方法 有两种:第一种就是手动调压法,即是依靠人的经验直接改变电加热炉的输入电压,其控温效果依赖于人为的调节,控制精度不高,且浪费人力资源。第二种控制方法在主回路中采取可控硅装置,并结合一些简单的仪表,保温阶段自动调节,升温过程仍依赖于试验者的调节,它属于半自动控制。随着微型计算机、可编程逻辑控制器的出现和迅速更新换代,智能温度控制仪表、工业控制计算机在电加热炉温度控制领域日益得到广泛地应用。借助计算机强大的数据处理和运算能力,引入反馈的思想,运用现代控制理论,实现对炉温的全自动化控制[1]。
以常用的恒温箱式电加加热炉为例,采用反馈控制。该控制系统的目的是要实现炉内的温度与给定温度值一致,即保持温度恒定,是一个典型的自动控制系统。
当然,系统给定的不是具体的期望温度值,而是通过给定电位器给定一个电
压U sT 。电加热炉内的实际温度由热电偶转换为对应的电压U f T 。给定电压信号U sT 与实际温度所对应的电压U f T 比较得温度偏差信号∆U 经放大器放大后, 用以驱动执行电动机,并通过传动机构拖动调压器动触头。当温度偏高时, 动触头向减小电压的方向运动, 反之加大电压, 直到温度达到给定值为止, 此时, 偏差∆U =0, 电机停止转动。
上面只是一个比较简单的闭环温度控制系统。
1.2 电加热炉温度控制系统的硬件构成
电加热炉温度控制系统框图如图1.1所示。
图1.1电加热炉温度控制系统
按照信号的流动,其工作原理大致是:首先将热电偶传来的带有温度信号的毫伏级电压滤波、放大,送至
A/D 转换器,这样通过采样和A/D 转换,就将所检测的炉温对应的电压信号转换成数字量送入了控制装置(如微机、智能仪表的处理器等);在控制装置内计算出该电压信号对应的温度值,然后将它与给定的温度值进行比较,并按一定的控制算法进行运算;运算结果通过控制晶闸管在控制周期内的触发角,也就是控制电加热炉的平均功率的大小来达到温度控制的目的。
设计温度控制算法时还需要将上述的原理图简化成模型如图1.2所示,以便于系统进行分析。
图1.2系统简化模型图
模型中的控制器就是广义的加载到计算机或微处理器上的控制算法,晶闸管模块、电加热炉、加热对象一起归为控制对象,而A/D 转换器、热电偶则构成反馈回路。控制器给定的温度作为系统输入信号r ,传感器检测到的温度作为输出信号y ,误差e 、控制信号u 均在控制装置里通过计算得到,最后经过一系列转换实现对热工对象温度的控制,这就形成了一个典型的反馈控制系统[2]。
二、电加热炉系统辨识
2.1 电加热炉温度系统模型
电加热炉的温度控制是典型的过程控制。由于传热问题的复杂性,电加热炉
系统具有非线性、时变性、大滞后、不对称等特点。它的滞后主要是容积滞后,炉体的结构、容量、测温元件及其安装的位置都影响着滞后的大小;而在使用过程中,随着温度的升降,加热元件的特性发生变化,保温绝热材料会逐渐老化,环境也在不断变化,因而炉温特性是时变的;又因为绝大多数电加热炉都是在温度上升时强迫加热,而温度下降时则自然冷却,所以其温度特性是不对称的;另外由于炉温取决于加热元件的发热量、散热量和负荷的情况,发热时间总比传热时间短得多,所以炉温动态特性主要由传热过程决定,传导、对流、辐射三种的传热方式都在起作用,只是在不同温区所占比例不同,三者中只有传导是线性的,辐射是绝对温度的四次方,对流则更加复杂,故电加热炉是一个本质非线性的系统。
由于电加热炉可认为是一个大容积滞后加纯滞后的对象(容积滞后比纯滞后大得多),故在其整个温度工作区域,对象动态参数是随炉温变化的,而每个炉子都有一个设定的工作温区,在工作点附近的小范围内,炉子的动态特性可看成近似线性。在过程控制中,为了方便,通常把电加热炉温控系统看成是一个线性系统,其模型可以定性描述为:
式中,Y 为加热对象温度,
t 为加热时间,
T 为系统时间常数,
K 0为放大倍数,
U 为控制电压,
τ为纯滞后时间。
如果设定控制器输出为u ,而u 正比于U 2,即 K 0U 2=Ku ,对式(2-1)作T dY +Y =K 0U 2(t -τ) dt (2-1)
拉氏变换,可得:
TsY (s ) +Y (s ) =KU (s ) e -τs (2-2)
所以 Y (s ) Ke -τs
= U (s ) Ts +1(2-3)
故系统的传递函数为一阶惯性加纯滞后环节,其中K 为静态增益[3]。 Ke -τs
G (s ) =Ts +1 (2-4)
2.2 最小二乘估计的递推算法
最小二乘法由于原理简明、收敛较快、易于理解、易于编程实现等特点、在
系统参数估计中应用相当广泛。而最小二乘法中的递推算法由于能对对象参数在线实时估计,从而改善了估计精度,在系统辨识中倍受青睐。最小二乘估计递推算法的基本思想可以为:新的估计值θ(k ) =旧的估计值θ(k -1) +修正项。
最小二乘估计递推算法的公式为[4] ∧⎡T θ(k ) =θ(k -1) +K (k ) ⎢y (k ) -ϕ(k ) θ(k -1) ⎤⎥⎣⎦
P (K -1) ϕ(k ) K (k ) =1+ϕT (k ) P (k -1) ϕ(k ) ∧∧∧∧ (2-5)
P (k ) =I -K (k ) ϕT (k ) P (k -1)
最小二乘估计递推算法如下[5]:
已知:n a 、n b 和d 。 []
ˆ(0) 和P (0) ,输入初始数据; 1 设置初值θ
2 采样当前输出y (k ) 和输入u (k ) ;
ˆ(k ) 和P (k ) ; 3 利用式(2-5),计算K (k ) 、θ
4 k →k +1,返回2,继续循环。
2.3 最小二乘估计的递推算法辨识及仿真
已知电加热炉的参数模型,其传递函数表示为[6] 0. 44e -20s
G (s ) =520s +1
可以考虑利用最小二乘估计递推算法对上述系统进行在线辨识。 (2-6)
为了得到系统的离散模型,可利用MATLAB 对系统的传递函数(2-6)进行离散化。采样时间取T=20s。
在MATLAB 中输入命令G=tf(0.44,[520 1],'inputdelay',20),Gz=c2d(G,20,'z') 。得到系统的离散系统的传递函数为 G (z ) =0. 0166 2z -0. 9623z (2-7)
(2-8) 将电加热炉转换为差分方程,有 y (k ) -0. 9623y (k -1) =0. 0166u (k -2)
在实际的电加热炉模型中,一定存在噪声干扰。往差分方程里添加噪声干扰项后,得到电加热炉的动态方程为
u (k -2) +ξ(k ) y (k ) -0. 9623y (k -1) =0. 0166(2-9) 式中ξ(k)为白噪声。
取初值P (0) =10I , θ(0) =0,选择M 序列为输入信号u(k)[7]。取1500个采样7∧
点。采用最小二乘估计递推算法进行参数估计,具体程序如下(程序参考《系统辨识与自适应控制MATLAB 仿真》,并进行了修改):
%递推最小二乘参数估计(RLS )
clear all; close all;
a=[1 -0.9623]; b=[0.0166]; d=2; %对象参数
na=length(a)-1; nb=length(b)-1; %na、nb 为A 、B 阶次
L=1500; %仿真长度
x1=1;x2=1;x3=1;x4=0;%产生M 序列的移位寄存器初值
s=1;%方波初值
uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)
yk=zeros(na,1); %输出初值
for k1=1:L
s=not(s);%产生方波
m(k1)=xor(x3,x4);%进行异或运算,产生M 序列
x4=x3;x3=x2;x2=x1;x1=m(k1);%寄存器移位
end
xi=sqrt(0)*randn(L,1); %白噪声序列,修改括号中数值可产生不同方差的白
噪声
theta=[a(2:na+1);b]; %对象参数真值
thetae_1=zeros(na+nb+1,1); %thetae初值
P=10^7*eye(na+nb+1);
for k=1:L
phi=[-yk;uk(d:d+nb)]; %此处phi 为列向量
y(k)=phi'*theta+xi(k); %采集输出数据
%递推最小二乘法
K=P*phi/(1+phi'*P*phi);
thetae(:,k)=thetae_1+K*(y(k)-phi'*thetae_1);
P=(eye(na+nb+1)-K*phi')*P;
%更新数据
thetae_1=thetae(:,k);
for i=d+nb:-1:2
uk(i)=uk(i-1);
end
uk(1)=m(k);%M序列!!!
for i=na:-1:2
yk(i)=yk(i-1);
end
yk(1)=y(k);
end
plot([1:L],thetae); %line([1,L],[theta,theta]);
xlabel('k'); ylabel('参数估计a 、b');
legend('a_1','b_0'); axis([0 L -1.5 1.5]);
分别设置不同方差的白噪声,运行程序,具体辨识结果如图2.1-2.4所示。
参数估计a 、b 参数估计a 、b k
k
图2.1白色噪声方差为0时参数辨识结果 图2.2白色噪声方差为0.01时参数辨识结果
参数估计a 、b 参数估计a 、b
k
k
图2.3白色噪声方差为0.1时参数辨识结果 图2.4白色噪声方差为1时参数辨识结果
不同白噪声下的具体数据如表2.1所示:
表2.1
以上参数数据和曲线说明随着扰动强度的增强,辨识的效果会有所下降。当扰动十分剧烈的时候,系统的辨识效果会十分差。
三、电加热炉系统的自适应控制算法及仿真
3.1 电加热炉系统控制问题的提出
第一章中已经介绍了电加热炉的工作原理,电加热炉通常是通过控制系统中传动机构拖动调压器动触头来改变输入电压,保持炉温的稳定平衡,从而保证电加热炉系统稳定正常的工作。在实际工业生产中,一般要求电加热炉炉温的超调量尽可能小。因此,对于电加热炉的控制问题是:给定电加热炉的输入电压大小,通过某种控制方式来调节电加热炉温度,使电加热炉温度的超调量尽可能小并达到目标温度数值。
3.2 广义最小方差间接自校正控制算法
自适应控制算法包括有自校正调节器、自校正控制器、自适应极点配置PID 控制器、自校正PID 控制等。我选用广义最小方差自校正控制器对电加热炉系统的温度进行自适应控制。
最小方差控制具有算法简单、易于理解、易于实现等优点,是其他自校正控制算法的基础。其基本思想是:由于一般工业对象存在纯延时d ,当前的控制作用要滞后d 个采样周期才能影响输出。因此,要使输出方差最小,就必须提前d 步对输出量作出预测,然后根据所得的预测值来设计所需的控制律。这样,通过连续不断的预测和控制,就能保证稳态输出方差最小。由此可见,实现最小方差控制的关键在于输出预测。
由于最小方差控制不适用非最小相位系统,且输入控制量未受到约束,因此,在此基础上,出现了广义最小方差控制算法。其基本思想为:在求解控制律的性能指标中引入对控制量的加权项,从而限制控制作用过于激烈变化;另外,只要适当选择性能指标中的各加权多项式,广义最小方差控制可以可以适用于非最小相位系统。
广义最小方差间接自校正控制算法如下[5]:
已知:n a 、n b 、n c 及纯延时d 。
ˆ(0) 和P (0) ,输入初始数据,并设置加权多项式P (z -1)、R (z -1)1 设置初值θ
和Q (z -1);
2 采样当前实际输出y (k ) 和期望输出y r (k +d ) ;
ˆ、B ˆ,即A ˆ;ˆ和C 3 利用递推增广最小二乘法在线实时估计被控对象参数θ
-1-1-1-d -1
⎧⎪C(z) =A(z)E(z) +z G(z)
4 求解Diophantine 方程⎨-1,得到多项式E 、F -1-1
⎪⎩F(z) =B(z)E(z)
和G 的系数;
C (z-1) R (z-1)y r (k+d) -G(z-1) P (z-1)y(k)
5 利用式u(k)=计算并实施u (k ) ;
C (z-1) Q (z-1) +F (z-1) P (z-1) b 06 返回2(k →k +1) ,继续循环。
3.3 广义最小方差间接自校正控制仿真
在上面系统辨识中已经知道电加热炉转的差分方程,故自校正控制中,被控对象电加热炉的动态方程同为
y (k ) -0. 9623y (k -1) =0. 0166u (k -2) +ξ(k )
(2-9)
式中,ξ(k ) 为白噪声。
取初值P (0) =10I , θ(0) =0. 001设置加权多项式P (z -1)=1、R (z -1)=1和;
7
∧
Q z -1=0. 01。期望输出y r (k ) 为幅值从0.5-10依次递增变化的方波。
()
具体程序如下(程序参考《系统辨识与自适应控制MATLAB 仿真》,并进行了修改):
%广义最小方差自校正控制(间接算法)
clear all; close all;clc;
a=[1 -0.9623]; b=[0.0166]; c=[1]; d=2; %对象参数
na=length(a)-1; nb=length(b)-1; nc=length(c)-1; %na、nb 、nc 为多项式A 、B 、C 阶次
nf=nb+d-1; ng=na-1; %nf、ng 为多项式F 、G 的阶次
Pw=1; R=1; Q=0.01; %加权多项式P 、R 、Q np=length(Pw)-1; nr=length(R)-1; nq=length(Q)-1;
L=1200; %控制步数
uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i); yk=zeros(na,1); %输出初值
yrk=zeros(nc,1); %期望输出初值
yr=10*[0.15*ones(L/8,1);0.05*ones(L/8,1);0.4*ones(L/8,1);0.05*ones(L/8,1);0.7*ones(L/8,1);0.05*ones(L/8,1);1*ones(L/8,1);0.05*ones(L/8+d,1)]; %期望输出
vki=zeros(nc,1); %白噪声初值
vkie=zeros(nc,1); %白噪声估计初值
vk=sqrt(0.01)*randn(L,1); %白噪声序列,修改括号中数值可产生不同方差的白噪声
%RLS初值
thetae_1=0.001*ones(na+nb+1+nc,1);%非常小的正数,此处不能为0 P=10^7*eye(na+nb+1+nc); for k=1:L
time(k)=k;
y(k)=-a(2:na+1)*yk+b*uk(d:d+nb)+c*[vk(k)]; %采集输出数据
%c=[1],故用递推最小二乘法 phie=[-yk(1:na);uk(d:d+nb)]; K=P*phie/(1+phie'*P*phie);
thetae(:,k)=thetae_1+K*(y(k)-phie'*thetae_1); P=(eye(na+nb+1+nc)-K*phie')*P;
%提取辨识参数
ae=[1 thetae(1:na,k)']; be=thetae(na+1:na+nb+1,k)';ce=[1];
[e,f,g]=sindiophantine(ae,be,ce,d); %求解单步Diophantine 方程 CQ=conv(ce,Q); FP=conv(f,Pw); CR=conv(ce,R); GP=conv(g,Pw); %CQ=Ce*Q
u(k)=(-Q(1)*CQ(2:nc+nq+1)*uk(1:nc+nq)/be(1)-FP(2:np+nf+1)*uk(1:np+nf)...
+CR*[yr(k+d:-1:k+d-min(d,nr+nc)); yrk(1:nr+nc-d)]...
-GP*[y(k); yk(1:np+ng)])/(Q(1)*CQ(1)/be(1)+FP(1));%求控制量
%更新数据
thetae_1=thetae(:,k);
for i=d+nb:-1:2 uk(i)=uk(i-1); end
uk(1)=u(k);
for i=na:-1:2
yk(i)=yk(i-1);
end
yk(1)=y(k); end
figure(1);
subplot(2,1,1);
plot(time,yr(1:L),'r:',time,y); xlabel('k'); ylabel('y_r(k)、y(k)');
legend('y_r(k)','y(k)');axis([0 L -2 12]); subplot(2,1,2); plot(time,u);
xlabel('k'); ylabel('u(k)'); axis([0 L -20 30]); figure(2)
plot([1:L],thetae); %line([1,L],[theta,theta]);
xlabel('k');ylabel('参数估计a1、b0'); legend('a1','b0'); axis([0 L -1.5 0.2]);
其中sindiophantine 函数程序为:
function [e,f,g]=sindiophantine(a,b,c,d)
%********************************************************* %功能:单步Diophanine 方程的求解
%调用格式:[e,f,g]=sindiophantine(a,b,c,d)
%输入参数:多项式A 、B 、C 系数(行向量)及纯滞后(共4个) %输出参数:Diophanine 方程的解e,f,g (共3个)
%********************************************************* na=length(a)-1; nb=length(b)-1; nc=length(c)-1; %A、B 、C 的阶次 ne=d-1; ng=na-1; %E、G 的阶次 ad=[a,zeros(1,ng+ne+1-na)]; cd=[c,zeros(1,ng+d-nc)]; %a(na+2)=a(na+3)=...=0
e(1)=1;
for i=2:ne+1 e(i)=0; for j=2:i
e(i)=e(i)+e(i+1-j)*ad(j); end
e(i)=cd(i)-e(i); %计算ei end
for i=1:ng+1 g(i)=0;
for j=1:ne+1
g(i)=g(i)+e(ne+2-j)*ad(i+j); end
令
g(i)=cd(i+d)-g(i); %计算gi end
f=conv(b,e); %计算F
分别设置不同方差的白噪声,运行程序,其仿真结果如图3.1-3.3所示:
y r (k ) 、y (k )
200
400
600k
800
1000
1200
3020
u (k )
100-10-200
200
400
600k
800
1000
1200
0.20-0.2-0.4-0.6-0.8
-1-1.2-1.4
200
400
600k
800
1000
参数估计a 1、b 0
1200
图3.1白噪声方差为0.01时的仿真输出和控制结果图和参数辨识结果图
y r (k ) 、y (k )
200
400
600k
800
1000
1200
50
u (k )
-50
0200400
600k
[1**********]
0.20-0.2-0.4-0.6-0.8
-1-1.2-1.4
200
400
600k
800
1000
参数估计a 1、b 0
1200
图3.2白噪声方差为0.1时的仿真输出和控制结果图和参数辨识结果图
y r (k ) 、y (k )
200
400
600k
800
1000
1200
200100
u (k )
0-100-200
0200400
600k
[1**********]
0.20-0.2-0.4-0.6-0.8-1-1.2-1.4
200
400
600k
800
1000
参数估计a 1、b 0
1200
图3.3白噪声方差为1时的仿真输出和控制结果图和参数辨识结果图
不同白噪声下的具体数据如表3.1所示:
表3.1
由以上仿真结果可以看出随着白噪声方差的增大,其在线辨识结果越来越远离真实值,系统输出波形的品质越来越差,也与期望输出相差越来越大。
参考资料
[1] 刁鹏飞. 电加热炉的单神经元自适应PID 控制. 硕士学位论文,2000. [2] 朱琳. 温控系统仿真实验平台研究与实现. 硕士学位论文,2008. [3] 方康玲. 过程控制与离散系统. 电子工业出版社,2009. [4] 杨承志. 系统辨识与自适应控制. 重庆大学出版社,2003.
[5] 庞中华. 系统辨识与自适应控制MATLAB 仿真. 北京航空航天大学出版 社,2009.
[6] 陈永秀. 伺服转台温控箱控制系统设计与研究. 硕士学位论文,2008. [7] 方崇智、萧德云. 过程辨识. 清华大学出版社,1988.
电加热炉的系统辨识与自适应控制
目 录
一、电加热炉的先验知识............................................................................................ 1
1.1 电加热炉的工作原理 .................................................................................... 1
1.2 电加热炉温度控制系统的硬件构成 ............................................................ 2
二、电加热炉系统辨识................................................................................................ 3
2.1 电加热炉温度系统模型 ................................................................................ 3
2.2 最小二乘估计的递推算法 ............................................................................ 4
2.3 最小二乘估计的递推算法辨识及仿真 ........................................................ 5
三、电加热炉系统的自适应控制算法及仿真............................................................ 8
3.1 电加热炉系统控制问题的提出 .................................................................... 8
3.2 广义最小方差间接自校正控制算法 ............................................................ 8
3.3 广义最小方差间接自校正控制仿真 ............................................................ 9
参考资料...................................................................................................................... 15
电加热炉的系统辨识与自适应控制
一、电加热炉的先验知识
1.1 电加热炉的工作原理
我选择电加热炉作为辨识和自适应控制设计与仿真实验的对象。
电加热炉的工作原理为:布置在炉内的加热元件将电能转化为热能,通过辐
射或对流的方式将热能传递给加热对象,从而改变对象的温度。
通常的工业过程都对炉温的控制提出了一定的要求,这就需要对电加热炉的进行控制,调节它的通电时间或通电强度来改变它输出的热能。传统的控制方法 有两种:第一种就是手动调压法,即是依靠人的经验直接改变电加热炉的输入电压,其控温效果依赖于人为的调节,控制精度不高,且浪费人力资源。第二种控制方法在主回路中采取可控硅装置,并结合一些简单的仪表,保温阶段自动调节,升温过程仍依赖于试验者的调节,它属于半自动控制。随着微型计算机、可编程逻辑控制器的出现和迅速更新换代,智能温度控制仪表、工业控制计算机在电加热炉温度控制领域日益得到广泛地应用。借助计算机强大的数据处理和运算能力,引入反馈的思想,运用现代控制理论,实现对炉温的全自动化控制[1]。
以常用的恒温箱式电加加热炉为例,采用反馈控制。该控制系统的目的是要实现炉内的温度与给定温度值一致,即保持温度恒定,是一个典型的自动控制系统。
当然,系统给定的不是具体的期望温度值,而是通过给定电位器给定一个电
压U sT 。电加热炉内的实际温度由热电偶转换为对应的电压U f T 。给定电压信号U sT 与实际温度所对应的电压U f T 比较得温度偏差信号∆U 经放大器放大后, 用以驱动执行电动机,并通过传动机构拖动调压器动触头。当温度偏高时, 动触头向减小电压的方向运动, 反之加大电压, 直到温度达到给定值为止, 此时, 偏差∆U =0, 电机停止转动。
上面只是一个比较简单的闭环温度控制系统。
1.2 电加热炉温度控制系统的硬件构成
电加热炉温度控制系统框图如图1.1所示。
图1.1电加热炉温度控制系统
按照信号的流动,其工作原理大致是:首先将热电偶传来的带有温度信号的毫伏级电压滤波、放大,送至
A/D 转换器,这样通过采样和A/D 转换,就将所检测的炉温对应的电压信号转换成数字量送入了控制装置(如微机、智能仪表的处理器等);在控制装置内计算出该电压信号对应的温度值,然后将它与给定的温度值进行比较,并按一定的控制算法进行运算;运算结果通过控制晶闸管在控制周期内的触发角,也就是控制电加热炉的平均功率的大小来达到温度控制的目的。
设计温度控制算法时还需要将上述的原理图简化成模型如图1.2所示,以便于系统进行分析。
图1.2系统简化模型图
模型中的控制器就是广义的加载到计算机或微处理器上的控制算法,晶闸管模块、电加热炉、加热对象一起归为控制对象,而A/D 转换器、热电偶则构成反馈回路。控制器给定的温度作为系统输入信号r ,传感器检测到的温度作为输出信号y ,误差e 、控制信号u 均在控制装置里通过计算得到,最后经过一系列转换实现对热工对象温度的控制,这就形成了一个典型的反馈控制系统[2]。
二、电加热炉系统辨识
2.1 电加热炉温度系统模型
电加热炉的温度控制是典型的过程控制。由于传热问题的复杂性,电加热炉
系统具有非线性、时变性、大滞后、不对称等特点。它的滞后主要是容积滞后,炉体的结构、容量、测温元件及其安装的位置都影响着滞后的大小;而在使用过程中,随着温度的升降,加热元件的特性发生变化,保温绝热材料会逐渐老化,环境也在不断变化,因而炉温特性是时变的;又因为绝大多数电加热炉都是在温度上升时强迫加热,而温度下降时则自然冷却,所以其温度特性是不对称的;另外由于炉温取决于加热元件的发热量、散热量和负荷的情况,发热时间总比传热时间短得多,所以炉温动态特性主要由传热过程决定,传导、对流、辐射三种的传热方式都在起作用,只是在不同温区所占比例不同,三者中只有传导是线性的,辐射是绝对温度的四次方,对流则更加复杂,故电加热炉是一个本质非线性的系统。
由于电加热炉可认为是一个大容积滞后加纯滞后的对象(容积滞后比纯滞后大得多),故在其整个温度工作区域,对象动态参数是随炉温变化的,而每个炉子都有一个设定的工作温区,在工作点附近的小范围内,炉子的动态特性可看成近似线性。在过程控制中,为了方便,通常把电加热炉温控系统看成是一个线性系统,其模型可以定性描述为:
式中,Y 为加热对象温度,
t 为加热时间,
T 为系统时间常数,
K 0为放大倍数,
U 为控制电压,
τ为纯滞后时间。
如果设定控制器输出为u ,而u 正比于U 2,即 K 0U 2=Ku ,对式(2-1)作T dY +Y =K 0U 2(t -τ) dt (2-1)
拉氏变换,可得:
TsY (s ) +Y (s ) =KU (s ) e -τs (2-2)
所以 Y (s ) Ke -τs
= U (s ) Ts +1(2-3)
故系统的传递函数为一阶惯性加纯滞后环节,其中K 为静态增益[3]。 Ke -τs
G (s ) =Ts +1 (2-4)
2.2 最小二乘估计的递推算法
最小二乘法由于原理简明、收敛较快、易于理解、易于编程实现等特点、在
系统参数估计中应用相当广泛。而最小二乘法中的递推算法由于能对对象参数在线实时估计,从而改善了估计精度,在系统辨识中倍受青睐。最小二乘估计递推算法的基本思想可以为:新的估计值θ(k ) =旧的估计值θ(k -1) +修正项。
最小二乘估计递推算法的公式为[4] ∧⎡T θ(k ) =θ(k -1) +K (k ) ⎢y (k ) -ϕ(k ) θ(k -1) ⎤⎥⎣⎦
P (K -1) ϕ(k ) K (k ) =1+ϕT (k ) P (k -1) ϕ(k ) ∧∧∧∧ (2-5)
P (k ) =I -K (k ) ϕT (k ) P (k -1)
最小二乘估计递推算法如下[5]:
已知:n a 、n b 和d 。 []
ˆ(0) 和P (0) ,输入初始数据; 1 设置初值θ
2 采样当前输出y (k ) 和输入u (k ) ;
ˆ(k ) 和P (k ) ; 3 利用式(2-5),计算K (k ) 、θ
4 k →k +1,返回2,继续循环。
2.3 最小二乘估计的递推算法辨识及仿真
已知电加热炉的参数模型,其传递函数表示为[6] 0. 44e -20s
G (s ) =520s +1
可以考虑利用最小二乘估计递推算法对上述系统进行在线辨识。 (2-6)
为了得到系统的离散模型,可利用MATLAB 对系统的传递函数(2-6)进行离散化。采样时间取T=20s。
在MATLAB 中输入命令G=tf(0.44,[520 1],'inputdelay',20),Gz=c2d(G,20,'z') 。得到系统的离散系统的传递函数为 G (z ) =0. 0166 2z -0. 9623z (2-7)
(2-8) 将电加热炉转换为差分方程,有 y (k ) -0. 9623y (k -1) =0. 0166u (k -2)
在实际的电加热炉模型中,一定存在噪声干扰。往差分方程里添加噪声干扰项后,得到电加热炉的动态方程为
u (k -2) +ξ(k ) y (k ) -0. 9623y (k -1) =0. 0166(2-9) 式中ξ(k)为白噪声。
取初值P (0) =10I , θ(0) =0,选择M 序列为输入信号u(k)[7]。取1500个采样7∧
点。采用最小二乘估计递推算法进行参数估计,具体程序如下(程序参考《系统辨识与自适应控制MATLAB 仿真》,并进行了修改):
%递推最小二乘参数估计(RLS )
clear all; close all;
a=[1 -0.9623]; b=[0.0166]; d=2; %对象参数
na=length(a)-1; nb=length(b)-1; %na、nb 为A 、B 阶次
L=1500; %仿真长度
x1=1;x2=1;x3=1;x4=0;%产生M 序列的移位寄存器初值
s=1;%方波初值
uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i)
yk=zeros(na,1); %输出初值
for k1=1:L
s=not(s);%产生方波
m(k1)=xor(x3,x4);%进行异或运算,产生M 序列
x4=x3;x3=x2;x2=x1;x1=m(k1);%寄存器移位
end
xi=sqrt(0)*randn(L,1); %白噪声序列,修改括号中数值可产生不同方差的白
噪声
theta=[a(2:na+1);b]; %对象参数真值
thetae_1=zeros(na+nb+1,1); %thetae初值
P=10^7*eye(na+nb+1);
for k=1:L
phi=[-yk;uk(d:d+nb)]; %此处phi 为列向量
y(k)=phi'*theta+xi(k); %采集输出数据
%递推最小二乘法
K=P*phi/(1+phi'*P*phi);
thetae(:,k)=thetae_1+K*(y(k)-phi'*thetae_1);
P=(eye(na+nb+1)-K*phi')*P;
%更新数据
thetae_1=thetae(:,k);
for i=d+nb:-1:2
uk(i)=uk(i-1);
end
uk(1)=m(k);%M序列!!!
for i=na:-1:2
yk(i)=yk(i-1);
end
yk(1)=y(k);
end
plot([1:L],thetae); %line([1,L],[theta,theta]);
xlabel('k'); ylabel('参数估计a 、b');
legend('a_1','b_0'); axis([0 L -1.5 1.5]);
分别设置不同方差的白噪声,运行程序,具体辨识结果如图2.1-2.4所示。
参数估计a 、b 参数估计a 、b k
k
图2.1白色噪声方差为0时参数辨识结果 图2.2白色噪声方差为0.01时参数辨识结果
参数估计a 、b 参数估计a 、b
k
k
图2.3白色噪声方差为0.1时参数辨识结果 图2.4白色噪声方差为1时参数辨识结果
不同白噪声下的具体数据如表2.1所示:
表2.1
以上参数数据和曲线说明随着扰动强度的增强,辨识的效果会有所下降。当扰动十分剧烈的时候,系统的辨识效果会十分差。
三、电加热炉系统的自适应控制算法及仿真
3.1 电加热炉系统控制问题的提出
第一章中已经介绍了电加热炉的工作原理,电加热炉通常是通过控制系统中传动机构拖动调压器动触头来改变输入电压,保持炉温的稳定平衡,从而保证电加热炉系统稳定正常的工作。在实际工业生产中,一般要求电加热炉炉温的超调量尽可能小。因此,对于电加热炉的控制问题是:给定电加热炉的输入电压大小,通过某种控制方式来调节电加热炉温度,使电加热炉温度的超调量尽可能小并达到目标温度数值。
3.2 广义最小方差间接自校正控制算法
自适应控制算法包括有自校正调节器、自校正控制器、自适应极点配置PID 控制器、自校正PID 控制等。我选用广义最小方差自校正控制器对电加热炉系统的温度进行自适应控制。
最小方差控制具有算法简单、易于理解、易于实现等优点,是其他自校正控制算法的基础。其基本思想是:由于一般工业对象存在纯延时d ,当前的控制作用要滞后d 个采样周期才能影响输出。因此,要使输出方差最小,就必须提前d 步对输出量作出预测,然后根据所得的预测值来设计所需的控制律。这样,通过连续不断的预测和控制,就能保证稳态输出方差最小。由此可见,实现最小方差控制的关键在于输出预测。
由于最小方差控制不适用非最小相位系统,且输入控制量未受到约束,因此,在此基础上,出现了广义最小方差控制算法。其基本思想为:在求解控制律的性能指标中引入对控制量的加权项,从而限制控制作用过于激烈变化;另外,只要适当选择性能指标中的各加权多项式,广义最小方差控制可以可以适用于非最小相位系统。
广义最小方差间接自校正控制算法如下[5]:
已知:n a 、n b 、n c 及纯延时d 。
ˆ(0) 和P (0) ,输入初始数据,并设置加权多项式P (z -1)、R (z -1)1 设置初值θ
和Q (z -1);
2 采样当前实际输出y (k ) 和期望输出y r (k +d ) ;
ˆ、B ˆ,即A ˆ;ˆ和C 3 利用递推增广最小二乘法在线实时估计被控对象参数θ
-1-1-1-d -1
⎧⎪C(z) =A(z)E(z) +z G(z)
4 求解Diophantine 方程⎨-1,得到多项式E 、F -1-1
⎪⎩F(z) =B(z)E(z)
和G 的系数;
C (z-1) R (z-1)y r (k+d) -G(z-1) P (z-1)y(k)
5 利用式u(k)=计算并实施u (k ) ;
C (z-1) Q (z-1) +F (z-1) P (z-1) b 06 返回2(k →k +1) ,继续循环。
3.3 广义最小方差间接自校正控制仿真
在上面系统辨识中已经知道电加热炉转的差分方程,故自校正控制中,被控对象电加热炉的动态方程同为
y (k ) -0. 9623y (k -1) =0. 0166u (k -2) +ξ(k )
(2-9)
式中,ξ(k ) 为白噪声。
取初值P (0) =10I , θ(0) =0. 001设置加权多项式P (z -1)=1、R (z -1)=1和;
7
∧
Q z -1=0. 01。期望输出y r (k ) 为幅值从0.5-10依次递增变化的方波。
()
具体程序如下(程序参考《系统辨识与自适应控制MATLAB 仿真》,并进行了修改):
%广义最小方差自校正控制(间接算法)
clear all; close all;clc;
a=[1 -0.9623]; b=[0.0166]; c=[1]; d=2; %对象参数
na=length(a)-1; nb=length(b)-1; nc=length(c)-1; %na、nb 、nc 为多项式A 、B 、C 阶次
nf=nb+d-1; ng=na-1; %nf、ng 为多项式F 、G 的阶次
Pw=1; R=1; Q=0.01; %加权多项式P 、R 、Q np=length(Pw)-1; nr=length(R)-1; nq=length(Q)-1;
L=1200; %控制步数
uk=zeros(d+nb,1); %输入初值:uk(i)表示u(k-i); yk=zeros(na,1); %输出初值
yrk=zeros(nc,1); %期望输出初值
yr=10*[0.15*ones(L/8,1);0.05*ones(L/8,1);0.4*ones(L/8,1);0.05*ones(L/8,1);0.7*ones(L/8,1);0.05*ones(L/8,1);1*ones(L/8,1);0.05*ones(L/8+d,1)]; %期望输出
vki=zeros(nc,1); %白噪声初值
vkie=zeros(nc,1); %白噪声估计初值
vk=sqrt(0.01)*randn(L,1); %白噪声序列,修改括号中数值可产生不同方差的白噪声
%RLS初值
thetae_1=0.001*ones(na+nb+1+nc,1);%非常小的正数,此处不能为0 P=10^7*eye(na+nb+1+nc); for k=1:L
time(k)=k;
y(k)=-a(2:na+1)*yk+b*uk(d:d+nb)+c*[vk(k)]; %采集输出数据
%c=[1],故用递推最小二乘法 phie=[-yk(1:na);uk(d:d+nb)]; K=P*phie/(1+phie'*P*phie);
thetae(:,k)=thetae_1+K*(y(k)-phie'*thetae_1); P=(eye(na+nb+1+nc)-K*phie')*P;
%提取辨识参数
ae=[1 thetae(1:na,k)']; be=thetae(na+1:na+nb+1,k)';ce=[1];
[e,f,g]=sindiophantine(ae,be,ce,d); %求解单步Diophantine 方程 CQ=conv(ce,Q); FP=conv(f,Pw); CR=conv(ce,R); GP=conv(g,Pw); %CQ=Ce*Q
u(k)=(-Q(1)*CQ(2:nc+nq+1)*uk(1:nc+nq)/be(1)-FP(2:np+nf+1)*uk(1:np+nf)...
+CR*[yr(k+d:-1:k+d-min(d,nr+nc)); yrk(1:nr+nc-d)]...
-GP*[y(k); yk(1:np+ng)])/(Q(1)*CQ(1)/be(1)+FP(1));%求控制量
%更新数据
thetae_1=thetae(:,k);
for i=d+nb:-1:2 uk(i)=uk(i-1); end
uk(1)=u(k);
for i=na:-1:2
yk(i)=yk(i-1);
end
yk(1)=y(k); end
figure(1);
subplot(2,1,1);
plot(time,yr(1:L),'r:',time,y); xlabel('k'); ylabel('y_r(k)、y(k)');
legend('y_r(k)','y(k)');axis([0 L -2 12]); subplot(2,1,2); plot(time,u);
xlabel('k'); ylabel('u(k)'); axis([0 L -20 30]); figure(2)
plot([1:L],thetae); %line([1,L],[theta,theta]);
xlabel('k');ylabel('参数估计a1、b0'); legend('a1','b0'); axis([0 L -1.5 0.2]);
其中sindiophantine 函数程序为:
function [e,f,g]=sindiophantine(a,b,c,d)
%********************************************************* %功能:单步Diophanine 方程的求解
%调用格式:[e,f,g]=sindiophantine(a,b,c,d)
%输入参数:多项式A 、B 、C 系数(行向量)及纯滞后(共4个) %输出参数:Diophanine 方程的解e,f,g (共3个)
%********************************************************* na=length(a)-1; nb=length(b)-1; nc=length(c)-1; %A、B 、C 的阶次 ne=d-1; ng=na-1; %E、G 的阶次 ad=[a,zeros(1,ng+ne+1-na)]; cd=[c,zeros(1,ng+d-nc)]; %a(na+2)=a(na+3)=...=0
e(1)=1;
for i=2:ne+1 e(i)=0; for j=2:i
e(i)=e(i)+e(i+1-j)*ad(j); end
e(i)=cd(i)-e(i); %计算ei end
for i=1:ng+1 g(i)=0;
for j=1:ne+1
g(i)=g(i)+e(ne+2-j)*ad(i+j); end
令
g(i)=cd(i+d)-g(i); %计算gi end
f=conv(b,e); %计算F
分别设置不同方差的白噪声,运行程序,其仿真结果如图3.1-3.3所示:
y r (k ) 、y (k )
200
400
600k
800
1000
1200
3020
u (k )
100-10-200
200
400
600k
800
1000
1200
0.20-0.2-0.4-0.6-0.8
-1-1.2-1.4
200
400
600k
800
1000
参数估计a 1、b 0
1200
图3.1白噪声方差为0.01时的仿真输出和控制结果图和参数辨识结果图
y r (k ) 、y (k )
200
400
600k
800
1000
1200
50
u (k )
-50
0200400
600k
[1**********]
0.20-0.2-0.4-0.6-0.8
-1-1.2-1.4
200
400
600k
800
1000
参数估计a 1、b 0
1200
图3.2白噪声方差为0.1时的仿真输出和控制结果图和参数辨识结果图
y r (k ) 、y (k )
200
400
600k
800
1000
1200
200100
u (k )
0-100-200
0200400
600k
[1**********]
0.20-0.2-0.4-0.6-0.8-1-1.2-1.4
200
400
600k
800
1000
参数估计a 1、b 0
1200
图3.3白噪声方差为1时的仿真输出和控制结果图和参数辨识结果图
不同白噪声下的具体数据如表3.1所示:
表3.1
由以上仿真结果可以看出随着白噪声方差的增大,其在线辨识结果越来越远离真实值,系统输出波形的品质越来越差,也与期望输出相差越来越大。
参考资料
[1] 刁鹏飞. 电加热炉的单神经元自适应PID 控制. 硕士学位论文,2000. [2] 朱琳. 温控系统仿真实验平台研究与实现. 硕士学位论文,2008. [3] 方康玲. 过程控制与离散系统. 电子工业出版社,2009. [4] 杨承志. 系统辨识与自适应控制. 重庆大学出版社,2003.
[5] 庞中华. 系统辨识与自适应控制MATLAB 仿真. 北京航空航天大学出版 社,2009.
[6] 陈永秀. 伺服转台温控箱控制系统设计与研究. 硕士学位论文,2008. [7] 方崇智、萧德云. 过程辨识. 清华大学出版社,1988.