当前位置:文档之家› 系统辨识实验报告

系统辨识实验报告

南京理工大学电加热炉动态特性辨识实验报告作者: 张志鹏(94)学号:813001010014 实验时间2013年11月24日组员: 刘心刚(63)李昊(88)倪镭(90)任课老师:郭毓教授2013 年 11 月1.熟悉对实际控制系统的辨识与参数估计,并利用所得模型进行控制仿真,进而控制实际系统。

2.掌握实际工程中常用的辨识方法,如LS,RLS,RLES等。

二、实验平台:嵌入式温度控制系统主要由嵌入式温度控制器、立式RGL-9076A 型温箱、NETGEAR 无线路由器和24V 开关电源等组成。

系统电气连接如图1 所示。

系统采用CS(客户端—服务器)模式实现了一对一的服务器、客户端的数据通信。

嵌入式控制系统软软硬件运行平台.硬件:PC 机、嵌入式温度控制器、NETGEAR 无线路由器等。

软件:Windows XP、Microsoft Visual C++ 6.0、Matlab 2007a 等。

图1 实验硬件平台1.设置硬件。

根据实验手册上的连接方式,确认硬件连接是否正确。

根据使用手册进行IP设置、系统参数设置,直至软件可以实时显示温度曲线。

2.达到稳态。

我们首先采用81V的加热电压加热使系统尽快到达某一较稳定温度。

使用3S的采样周期进行采样温度信号。

当温箱实际温度达到135度左右时,温度变化曲线几乎持平,我们认定此时温箱系统处于稳态。

3.加入辨识信号。

这里选选取M序列进行辨识,在试验阶段我们组做了一组数据:选取M序列幅值为+20,-20,,辨识信号的采样周期为40s。

加入辨识信号后继续进行数据采集。

4.数据处理、辨识系统模型。

5.分析辨识结果得出结论。

四、辨识算法及过程经过分析研究,确定使用计算残差平方和的RELS方法验证模型的阶次及延时并辨识系统模型参数。

1、确定系统的延迟d分析:仿真中,对阶次n=1,2,3,4,5分别计算在系统延迟d=1,2,3,4,5时系统的残差平方和J。

由上图可以看出当d=2时系统对各阶次的残差平方和均较小,故可确定系统的延迟为d=2。

2、模型定阶分析:由上图,横坐标代表系统的阶次n=1,2,3,4,5,纵坐标为系统的残差平方和,从图中可以得出从n=3开始,系统残差平方和下降不明显且n=3时残差平方和较小,故可确定系统的阶次为3。

3、参数辨识通过对数据的分析,确定系统的时滞d=2、阶次n=3。

用RELS算法经过系统仿真得到辨识参数为:a1=-0.72, a2=-0.71, a3=-0.54, b2=0.0206, b3=-0.0027, c1=-0.2930, c2=-0.2175,c3=-0.3545.参数变化曲线图如下图所示:4、辨识结果由以上三步得出系统模型为:)3(3545.0)2(2175.0)1(2930.0)()3(0027.0)2(0206.0)3(0.54y-)2(17.0)1(72.0-)(------+---=----kkkkku kukkykykyεεεε五、实验结果分析由于在实验过程中温箱温度上升较慢,待稳定后加入2081±V辨识信号。

之后,温度变化不明显,采样的数据在不同温度下波动不大,这影响了系统辨识的精度,在上述仿真过程中,估计系统的残差平方和达到了1400左右,辨识效果不好。

分析主要是由于采样数据不准确,因此要想较好的辨识出系统的模型,系统的稳定性及数据的准确采集尤为重要。

六、心得体会通过本次实验,深化了对系统辨识这门课的认识。

实验之后,首先根据计算残差确定系统模型的阶数及延迟,然后通过辨识算法离线辨识参数并验证,在实验及辨识过程中与组员进行了一次次的分析讨论,但最终感觉做得效果不是很好,一方面是由于实验数据不准确,另一方面是自己的实验及辨识经验不足未能很好的得出结果。

今后还需进一步学习建模辨识方面的知识,提高辨识技巧。

附:matlab辨识程序%实验基于残差平方和模型定阶RELS算法确定阶次、延时,辨识参数clear all;close all;N=1061; %取数据进行辨识m=xlsread('2013-11-24-17-15-24DataDemo.csv');J1=zeros(5,5);y=m(:,4);u=m(:,2);z=[y,u]; %combine input and output valuefor i=1:5J1(i,:)=rels3(z,i,i,i); %call rels3 functionendfigure;x=1:5;plot(x,J1(1,:),'r');holdon;plot(x,J1(2,:),'r--');plot(x,J1(3,:),'g');plot(x,J1(4,:),'g--');plot(x,J1(5,:),'b');legen d('n=1','n=2','n=3','n=4','n=5');xlabel('d');ylabel('J_d');title('残差平方和定延迟') %绘图显示,确定延迟d=1 figure;x=1:5;plot(x,J1(:,1),'r');holdon;plot(x,J1(:,2),'r--');plot(x,J1(:,3),'g');plot(x,J1(:,4),'g--');plot(x,J1(:,5),'b');legen d('d=1','d=2','d=3','d=4','d=5');xlabel('n');ylabel('J_n');title('残差平方和定阶') %绘图显示,确定模型阶次n=2%延迟、阶次确定后辨识参数thita=rels1(z,3,3,3);figure;x=1:N;plot(x,thita(1,x),'r'); hold on;plot(x,thita(2,x),'r--'); plot(x,thita(3,x),'r-.');plot(x,thita(4,x),'b');plot(x,thita(5,x),'b--');plot(x,thita(6,x),'b-.');plot(x,thita(7,x),'g');plot(x,thita(8,x),'g--'); plot(x,thita(9,x),'g-.'); grid;legend('a1','a2','a3','b1','b2','b3','c1','c2','c3'); xlabel('k'); ylabel('Thita'); title('3阶系统RELS');%绘图显示辨识参数%此函数计算在延时d=1:5时的残差平方和,确定dfunction J=rels3(z,na,nb,nc) %the description of the functionnz=size(z(:,1)); nn=na+nb+nc; %the dimension and order of the input output datathitak=ones(nn,1)*0.001; %initial conditionsthita=zeros(nn,nz);K=zeros(nn,1);I=eye(nn,nn);p1=eye(nn,nn)*(1.0e6);p2=zeros(nn,nn);e=zeros(nz,1);J=zeros(1,5);%rels algorithm,确定模型的延迟dfor d=0:4for i=na+1+d:nzQ=[[-z(i-1:-1:i-na,1)]',[z(i-1-d:-1:i-d-nb,2)]',[e(i-1:-1:i-nc,1)]'];%data vectorK=p1*Q'/(Q*p1*Q'+1);p2=(I-K*Q)*p1;thita(:,i)=thitak+K*(z(i,1)-Q*thitak); %parameter estimatep1=p2; thitak=thita(:,i);e(i)=z(i,1)-Q*thitak;endfor k=na+d+1:nzJ(d+1)=J(d+1)+[z(k,1)-[[-z(k-1:-1:k-na, 1)]',[z(k-d-1:-1:k-d-nb, 2)]',[e(k-1:-1:k-nc)]']*thita(:,490)]^2;end %求残差平方和end%the function of rels1 辨识参数function thita=rels1(z,na,nb,nc) %the description of the functionnz=size(z(:,1)); nn=na+nb+nc; %the dimension and order of the input output datathitak=ones(nn,1)*0.001; %initial conditionsthita=zeros(nn,nz);K=zeros(nn,1);I=eye(nn,nn);p1=eye(nn,nn)*(1.0e6);p2=zeros(nn,nn);e=zeros(nz,1);%rels algorithmfor i=na+2:nzQ=[[-z(i-1:-1:i-na,1)]',[z(i-2:-1:i-nb-1,2)]',[e(i-1:-1:i-nc,1)]'];%data vectorK=p1*Q'/(Q*p1*Q'+1);p2=(I-K*Q)*p1;thita(:,i)=thitak+K*(z(i,1)-Q*thitak); %parameter estimatep1=p2; thitak=thita(:,i);e(i)=z(i,1)-Q*thitak;end。

相关主题