电加热炉的系统辨识与自适应控制目录一、电加热炉的先验知识............................................................................................11.1电加热炉的工作原理....................................................................................11.2电加热炉温度控制系统的硬件构成............................................................2二、电加热炉系统辨识................................................................................................32.1电加热炉温度系统模型................................................................................32.2最小二乘估计的递推算法............................................................................42.3最小二乘估计的递推算法辨识及仿真........................................................5三、电加热炉系统的自适应控制算法及仿真............................................................83.1电加热炉系统控制问题的提出....................................................................83.2广义最小方差间接自校正控制算法............................................................83.3广义最小方差间接自校正控制仿真............................................................9参考资料......................................................................................................................151电加热炉的系统辨识与自适应控制一、电加热炉的先验知识1.1电加热炉的工作原理我选择电加热炉作为辨识和自适应控制设计与仿真实验的对象。电加热炉的工作原理为:布置在炉内的加热元件将电能转化为热能,通过辐射或对流的方式将热能传递给加热对象,从而改变对象的温度。通常的工业过程都对炉温的控制提出了一定的要求,这就需要对电加热炉的进行控制,调节它的通电时间或通电强度来改变它输出的热能。传统的控制方法有两种:第一种就是手动调压法,即是依靠人的经验直接改变电加热炉的输入电压,其控温效果依赖于人为的调节,控制精度不高,且浪费人力资源。第二种控制方法在主回路中采取可控硅装置,并结合一些简单的仪表,保温阶段自动调节,升温过程仍依赖于试验者的调节,它属于半自动控制。随着微型计算机、可编程逻辑控制器的出现和迅速更新换代,智能温度控制仪表、工业控制计算机在电加热炉温度控制领域日益得到广泛地应用。借助计算机强大的数据处理和运算能力,引入反馈的思想,运用现代控制理论,实现对炉温的全自动化控制[1]。以常用的恒温箱式电加加热炉为例,采用反馈控制。该控制系统的目的是要实现炉内的温度与给定温度值一致,即保持温度恒定,是一个典型的自动控制系统。当然,系统给定的不是具体的期望温度值,而是通过给定电位器给定一个电压sTU。电加热炉内的实际温度由热电偶转换为对应的电压TUf。给定电压信号sTU与实际温度所对应的电压TUf比较得温度偏差信号U经放大器放大后,用以驱动执行电动机,并通过传动机构拖动调压器动触头。当温度偏高时,动触头向减小电压的方向运动,反之加大电压,直到温度达到给定值为止,此时,偏差0U,电机停止转动。上面只是一个比较简单的闭环温度控制系统。21.2电加热炉温度控制系统的硬件构成电加热炉温度控制系统框图如图1.1所示。热电偶电加热炉与控制对象晶闸管控制模块控制装置电炉--+A/D转换模块输入功率炉温信号控制量电源图1.1电加热炉温度控制系统按照信号的流动,其工作原理大致是:首先将热电偶传来的带有温度信号的毫伏级电压滤波、放大,送至A/D转换器,这样通过采样和A/D转换,就将所检测的炉温对应的电压信号转换成数字量送入了控制装置(如微机、智能仪表的处理器等);在控制装置内计算出该电压信号对应的温度值,然后将它与给定的温度值进行比较,并按一定的控制算法进行运算;运算结果通过控制晶闸管在控制周期内的触发角,也就是控制电加热炉的平均功率的大小来达到温度控制的目的。设计温度控制算法时还需要将上述的原理图简化成模型如图1.2所示,以便于系统进行分析。控制对象控制器-+eury图1.2系统简化模型图模型中的控制器就是广义的加载到计算机或微处理器上的控制算法,晶闸管模块、电加热炉、加热对象一起归为控制对象,而A/D转换器、热电偶则构成反馈回路。控制器给定的温度作为系统输入信号r,传感器检测到的温度作为输出信号y,误差e、控制信号u均在控制装置里通过计算得到,最后经过一系列转换实现对热工对象温度的控制,这就形成了一个典型的反馈控制系统[2]。3二、电加热炉系统辨识2.1电加热炉温度系统模型电加热炉的温度控制是典型的过程控制。由于传热问题的复杂性,电加热炉系统具有非线性、时变性、大滞后、不对称等特点。它的滞后主要是容积滞后,炉体的结构、容量、测温元件及其安装的位置都影响着滞后的大小;而在使用过程中,随着温度的升降,加热元件的特性发生变化,保温绝热材料会逐渐老化,环境也在不断变化,因而炉温特性是时变的;又因为绝大多数电加热炉都是在温度上升时强迫加热,而温度下降时则自然冷却,所以其温度特性是不对称的;另外由于炉温取决于加热元件的发热量、散热量和负荷的情况,发热时间总比传热时间短得多,所以炉温动态特性主要由传热过程决定,传导、对流、辐射三种的传热方式都在起作用,只是在不同温区所占比例不同,三者中只有传导是线性的,辐射是绝对温度的四次方,对流则更加复杂,故电加热炉是一个本质非线性的系统。由于电加热炉可认为是一个大容积滞后加纯滞后的对象(容积滞后比纯滞后大得多),故在其整个温度工作区域,对象动态参数是随炉温变化的,而每个炉子都有一个设定的工作温区,在工作点附近的小范围内,炉子的动态特性可看成近似线性。在过程控制中,为了方便,通常把电加热炉温控系统看成是一个线性系统,其模型可以定性描述为:)(20tUKYdtdYT(2-1)式中,Y为加热对象温度,t为加热时间,T为系统时间常数,0K为放大倍数,U为控制电压,为纯滞后时间。如果设定控制器输出为u,而u正比于2U,即KuUK20,对式(2-1)作4拉氏变换,可得:sesKUsYsTsY)()()((2-2)所以1)()(TsKesUsYs(2-3)故系统的传递函数为一阶惯性加纯滞后环节,其中K为静态增益[3]。1)(TsKesGs(2-4)2.2最小二乘估计的递推算法最小二乘法由于原理简明、收敛较快、易于理解、易于编程实现等特点、在系统参数估计中应用相当广泛。而最小二乘法中的递推算法由于能对对象参数在线实时估计,从而改善了估计精度,在系统辨识中倍受青睐。最小二乘估计递推算法的基本思想可以为:新的估计值)(k旧的估计值)1(k+修正项。最小二乘估计递推算法的公式为[4])1()()()()()1()(1)()1()()1()()()()1()(kPkkKIkPkkPkkKPkKkkkykKkkTTT(2-5)最小二乘估计递推算法如下[5]:已知:an、bn和d。1设置初值)0(ˆ和)0(P,输入初始数据;2采样当前输出)(ky和输入)(ku;3利用式(2-5),计算)(kK、)(ˆk和)(kP;41kk,返回2,继续循环。52.3最小二乘估计的递推算法辨识及仿真已知电加热炉的参数模型,其传递函数表示为[6]152044.0)(20sesGs(2-6)可以考虑利用最小二乘估计递推算法对上述系统进行在线辨识。为了得到系统的离散模型,可利用MATLAB对系统的传递函数(2-6)进行离散化。采样时间取T=20s。在MATLAB中输入命令G=tf(0.44,[5201],'inputdelay',20),Gz=c2d(G,20,'z')。得到系统的离散系统的传递函数为zzzG9623.00166.0)(2(2-7)将电加热炉转换为差分方程,有)2(0166.0)1(9623.0)(kukyky(2-8)在实际的电加热炉模型中,一定存在噪声干扰。往差分方程里添加噪声干扰项后,得到电加热炉的动态方程为)()2(0166.0)1(9623.0)(kkukyky(2-9)式中(k)为白噪声。取初值,0)0(,10)0(7IP选择M序列为输入信号u(k)[7]。取1500个采样点。采用最小二乘估计递推算法进行参数估计,具体程序如下(程序参考《系统辨识与自适应控制MATLAB仿真》,并进行了修改):%递推最小二乘参数估计(RLS)clearall;closeall;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);%输出初值fork1=1:Ls=not(s);%产生方波m(k1)=xor(x3,x4);%进行异或运算,产生M序列6x4=x3;x3=x2;x2=x1;x1=m(k1);%寄存器移位endxi=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);fork=1:Lphi=[-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);fori=d+nb:-1:2uk(i)=uk(i-1);enduk(1)=m(k);%M序列!!!fori=na:-1:2yk(i)=yk(i-1);endyk(1)=y(k);endplot([1:L],thetae);%line([1,L],[theta,theta]);xlabel('k');ylabel('参数估计a、b');legend('a_1','b_0');axis([0L-1.51.5]);7分别设置不同方差的白噪声,运行程序,具体辨识结果如图2.1-2.4所示。050010001500-1.5-1-0.500.511.5k参数估计a、ba1b0050010001500-1.5-1-0.500.511.5k参数估计a、ba1b0图2.1白色噪声方差为0时