[互联网]系统识别 matlab 第6章

上传人:zhan****gclb 文档编号:74573237 上传时间:2022-04-14 格式:DOC 页数:38 大小:1.63MB
收藏 版权申诉 举报 下载
[互联网]系统识别 matlab 第6章_第1页
第1页 / 共38页
[互联网]系统识别 matlab 第6章_第2页
第2页 / 共38页
[互联网]系统识别 matlab 第6章_第3页
第3页 / 共38页
资源描述:

《[互联网]系统识别 matlab 第6章》由会员分享,可在线阅读,更多相关《[互联网]系统识别 matlab 第6章(38页珍藏版)》请在装配图网上搜索。

1、第6章 控制工程类工具箱介绍MATLAB的工具箱为使用该软件的不同领域内的研究人员提供了捷径。迄今为止,大约有30多种工具箱面世,内容涉及自动控制、信号处理、图象处理等多种领域。这些工具箱可以用来扩充MATLAB的符号计算功能、图形建模仿真功能、文字处理功能以及与硬件实时交互功能,也可以应用于多种学科、多种领域。与这些工具箱函数相关的使用格式可以通过Help命令得到,用户也可以针对具体系统设计自己的工具箱。6.1 控制系统的符号运算6.1.1 单输入、单输出连续和离散控制系统符号运算应用符号运算的加、减、乘、除可以进行单输入单输出连续和离散控制系统符号运算,求出系统的闭环传递函数和脉冲传递函数

2、,系统的零极点等。例6.1 已知单位闭环控制系统前向通道传递函数为;求系统的开环传递函数和闭环传递函数,系统的特征方程和零极点,。解 syms s a n G1=1/(s+10);G2=(s+a)/(s+1); %、的符号表达式 Go=G1*G2;Gb=Go/(1+Go); %:开环传递函数,:闭环传递函数Go=simplify(Go),Gb=simplify(Gb) %化简num,den=numden(Gb), %读出的分子和分母的符号表达式p=solve(den) %求出系统闭环的极点z=solve(num) %求出系统闭环的零点n=length(p);for i=1:na(i)=solv

3、e(p(i) %求出系统闭环临界稳定极点的a值endGo =1/(s+10)*(s+a)/(s+1)Gb =(s+a)/(s2+12*s+10+a)num =s+a %系统零点的表达式den =s2+12*s+10+a %系统特征方程p = %系统极点 -6+(26-a)(1/2) -6-(26-a)(1/2)z = %系统零点-aa = %使系统闭环临界稳定的a值为-10-10例6.2 设闭环控制系统前向通道传递函数和反馈环节的传递函数为;求系统d的闭环传递函数,系统的特征方程和零极点,绘出系统的单位阶跃响应图解 syms s G=1/(s*(s+2);H=1/(s+1); %、的符号表达式

4、 Gb=G/(1+G*H);Gb=simplify(Gb) %闭环传递函数的符号表达式 num,den=numden(Gb) %读出的分子和分母的符号表达式z=solve(num);p=solve(den); %z:零点;p:极点z=numeric(z),p=numeric(p) %将零点和极点数字化num=sym2poly(num);den=sym2poly(den); %将符号多项式转化为多项式的系数向量step(num,den) %绘出系统的单位阶跃响应图Gb =(s+1)/(s3+3*s2+2*s+1)num =s+1den = %系统的特征方程s3+3*s2+2*s+1z =-1 p

5、 = -2.3247 -0.3376 - 0.5623i-0.3376 + 0.5623i系统的单位阶跃响应图略。如果需要对系统进行进一步的时域和频域分析,利用命令sym2poly()分别将num和den的符号多项式转化为多项式的系数向量后,即可进行系统分析。对于带有零阶保持器的离散控制系统,设被控对象的传递函数为,则: (6.1)利用式6.1,即可对带有零阶保持器的离散控制系统进行符号运算。例6.3 设有零阶保持器的离散系统的离散系统如图6.1所示,试求系统开环脉冲传递函数和闭环脉冲传递函数。图 6.1 例6.1的采样离散系统方框图解 由于系统开环脉冲传递函数,编制程序如下: syms s

6、T K z t kGs=(K/s/(s+1)* (1/s); %ft=ilaplace(Gs);ftt=subs(ft,t,k*T); %Gz=(1-z-1)*ztrans(ftt);Gz=simplify(Gz) %Cz=Gz/(1+Gz);Cz=simplify(Cz);Cz=collect(Cz) %求出闭环脉冲传递函数并化简Gz =(T*z*exp(T)-T+z-z*exp(T)-1+exp(T)*K/(z-1)/(z*exp(T)-1)Cz =(T*exp(T)+1-exp(T)*z-T-1+exp(T)*K/(z2*exp(T)+(-exp(T)+K*T*exp(T)+K-K*ex

7、p(T)-1)*z-K-K*T+1+K*exp(T)*z-K-K*T+1+K*exp(T)对和进行化简得到:注意在MATLAB中,化简时将自然对数用exp(T)表示,而一般控制参考书中用exp(-T)。6.1.2 有限拍调节器的设计+_图6.2 采样离散系统控制框图解析设计法是一种直接在Z域中设计计算机控制系统的方法,其基本思想是根据系统的指标要求,确定闭环脉冲传递函数,然后用代数法解出控制器的脉冲传递函数。最少拍系统是解析设计法应用比较成熟的例子,但由于它对输入信号的适应性较差,实际应用并不多。然而该方法的设计思想很有指导意义。离散控制系统如图6.2所示,其中为采样周期,广义被控对象的脉冲传

8、递函数为: (6.2)根据有限拍控制系统设计理论,有限拍随动系统的闭环传递函数: (6.3)有限拍随动系统的误差传递函数: (6.4)有限拍随动系统的调节器由式(6.2)和(6.3)可得: (6.5) 最少拍系统的设计原则是:若系统广义被控对象无延迟且在平面单位圆上及单位圆外无零极点,要求选择闭环脉冲传递函数,使系统在典型输入作用下,经最少拍采样周期后能使输出序列在各采样时刻的稳态误差为零,达到完全跟踪的目的,从而确定所需要的数字控制器的脉冲传递函数。最少拍系统在不同典型输入作用下,误差脉冲传递函数的确定:单位阶跃输入信号作用下:;单位速度输入信号作用下:; 单位加速度输入信号作用下:;对于无

9、纹波最少拍系统设计比最少拍系统设计相比,需要增加附加条件,由图6.1.1,数字控制器输出:。要求为的有限多项式。单位阶跃输入信号作用下:;单位速度输入信号作用下:;最少拍系统的设计可以分为以下五个步骤:1) 求广义被控对象的变换函数:;编程时,先求的拉普拉氏的反变换,再求其变换并化简。2) 根据设计要求,确定的形式;3) 按照6.5式求出最小拍数字控制器脉冲传递函数并化简;4) 求出最少拍系统闭环脉冲传递函数;例6.4 设有限拍随动系统如图6.2所示,对象特性,采用零阶保持器,采样周期,试设计单位速度输入时的有限拍控制器。解 广义对象的传递函数:单位速度输入时,选择,编制程序如下:syms s

10、 T K z t kGs=(1/s)*K/s/(0.1*s+1); %ft=ilaplace(Gs);ftt=subs(ft,t,k*T); %求Gs的反变换,GoGpZ=(1-z-1)*ztrans(ftt);GoGpZ=simplify(GoGpZ); %求,并化简Ez=(1-z-1)2; %Dcz=(1-Ez)/(Ez*GoGpZ);Dcz=simplify(Dcz); %(6.5)式,并化简Dcz=subs(Dcz,T,0.1);Dcz=subs(Dcz,K,10); %,dnum,dden=numden(Dcz); %取得的分子和分母的多项式dnum=sym2poly(dnum);d

11、den=sym2poly(dden); %转化为多项式系数向量disp(单位速度输入时的有限拍控制器Dc(z)=);z p k=tf2zp(dnum,dden);Dcz=zpk(z,p,k)disp(系统脉冲传递函数D(z)=C(z)/R(z);Dz=1-Ez;Dz=simplify(Dz)单位速度输入时的有限拍控制器Dc(z)=Zero/pole/gain:5.4366 (z-0.5) (z-0.3679)- (z-1) (z+0.7183)Sampling time: 0.1系统脉冲传递函数D(z)=C(z)/R(z)Dz =(2*z-1)/z2 例6.5 对例6.4的系统,试设计单位速度

12、输入时的有限(三)拍无纹波控制器解 首先求出广义对象的Z传递函数。syms s T K z tGs=(1/s)*K/s/(0.1*s+1);ft=ilaplace(Gs);ftt=subs(ft,t,t*T);GoGpZ=(1-z-1)*ztrans(ftt);GoGpZ=simplify(GoGpZ);GoGpZ=subs(GoGpZ,T,0.1);GoGpZ=subs(GoGpZ,K,10);dnum,dden=numden(GoGpZ);dnum=sym2poly(dnum);dden=sym2poly(dden);disp(广义对象的Z传递函数GoGp(z)=);z p k=tf2zp

13、(dnum,dden);GoGpZ=zpk(z,p,k,0.1)广义对象的Z传递函数GoGp(z)=Zero/pole/gain:0.36788 (z+0.7183)- (z-1) (z-0.3679)Sampling time: 0.1由程序执行的结果知,广义对象的Z传递函数:根据有限拍无纹波控制器设计理论,选择 (6.6) (6.7)利用,解方程得到、的值,为了便于编程,令syms a0 a1 b0 b1 u Dz=u*(1+0.717*u)*(a0+a1*u); %(6.1.6)式Ez=(1-u)2*(b0+b1*u); %(6.1.7)式ling=Dz-1+Ez;ling=collec

14、t(ling) %令:ling = (717/1000*a1+b1)*u3+(-2*b1+b0+a1+717/1000*a0)*u2+(b1-2*b0+a0)*u+b0-1令ling=0,得到4个方程,解方程程序如下:eq1=b0-1=0;eq2=b1-2*b0+a0=0;eq3=-2*b1+b0+a1+717/1000*a0=0;eq4=717/1000*a1+b1=0;a0 a1 b0 b1=solve(eq1,eq2,eq3,eq4,a0,a1,b0,b1);A=numeric(a0 a1 b0 b1)A = 1.4080 -0.8256 1.0000 0.5920即:、得到:;根据,继

15、续编程syms uDz=u*(1+0.7183*u)*(1.4080-0.8256*u);Ez=(1-u)2*(1+0.592*u);GoGpZ=0.36788*u*(1+0.7183*u)/(1-u)/(1-0.3679*u);Dcz=Dz/(Ez*GoGpZ);Dcz=simplify(Dcz);Dcz=collect(Dcz)执行程序得到结果:Dcz = -2/9197*(-220+129*u)*(-10000+3679*u)/(-1+u)/(125+74*u)令,经化简得:6.1.3 状态空间模型控制系统符号运算(1) 符号的矩阵运算在符号运算中,符号矩阵的定义与符号变量的定义的方法基

16、本相同,也和数字矩阵一样需要注意参与运算的矩阵的维数应当符合矩阵运算的法则。例6.6 设矩阵:;试求矩阵,的逆矩阵,的行列展开式,的特征方程式和特征向量。解 符号工具箱中有丰富的矩阵运算的函数,注意程序中各种函数的运用。Syms a sA=1 a;4 5+a;A2=A2AA=inv(A),Adet=det(A),Aeigdet=eye(2)*s-A,Aeig=eig(A)Ajord=jordan(A) A2 = 1+4*a, a+a*(5+a)24+4*a, 4*a+(5+a)2 AA = -(5+a)/(3*a-5), a/(3*a-5) 4/(3*a-5), -1/(3*a-5)Adet

17、= 5-3*a Aeigdet = s-1, -a -4, s-5-a Aeig = 3+1/2*a+1/2*(16+24*a+a2)(1/2) 3+1/2*a-1/2*(16+24*a+a2)(1/2)例6.7 设, 计算系统的矩阵指数函数。解 拉氏反变换法计算的计算公式为:,程序如下Syms a sA=7 1;-4 3;AA=inv(eye(2)*s-A);Eat=ilaplace(AA)Eat =2*t*exp(5*t)+exp(5*t), t*exp(5*t) -4*t*exp(5*t), -2*t*exp(5*t)+exp(5*t)对于两个矩阵之间的运算,其运算与数字矩阵运算式子类拟

18、,运算符为:+、-、*、点乘、左除 、右除 等。(2) 状态空间模型控制系统符号运算 应用符号运算,可以求解连续和离散状态空间模型控制系统微分和差分方程的解,求出输出方程和的解。也可实现将连续状态方程的离散化。例6.8 设状态方程为: 初始状态:;。给定输入激励信号,用符号运算求方程的解。解 首先求出状态方程的符号表达式syms s x1 x2 x3A=0 1 0;0 0 1;-25 -15 -7;B=0;0;25;C=1 0.2 0;x=x1;x2;x3;X=A*x+BX = x2 x3 -25*x1-15*x2-7*x3+25根据X(一阶微分方程组)的结果,利用dsolve( )函数,先求

19、出、的解,利用矩阵乘法求出。x1,x2,x3=dsolve(Dx1=x2,Dx2=x3,Dx3=-25*x1-15*x2-7*x3+25,x1(0)=0,x2(0)=0,x3(0)=0);y=C*x1;x2;x3y =-exp(-t)*cos(2*t)-1/2*exp(-t)*sin(2*t)+1例6.9 设离散系统的状态方程为: 试求系统的输出。解 用变换法求解线性离散状态方程,其求解得公式为:求解输出: 依题意: ;为单位阶跃函数,其变换为:。程序如下:syms z n k x1 x2A=0 -1;-0.4 0.3;B=0;1;C=0 1; %离散状态方程的系数矩阵x=x1;x2;X=A*

20、x+B; %离散状态方程的状态方程zIf=eye(2)*z-A; %izIF=inv(zIf) %zxGU=z*1;-1+B*(z/(z-1); %Z=izIF*zxGU;Z=factor(Z) %,并化简xn=iztrans(Z);xkT=subs(xn,n,k) %求反变换,并用取代求得ykT=C*xkT %应用输出方程求出izIF = % (10*z-3)/(10*z2-3*z-4), -10/(10*z2-3*z-4) -4/(10*z2-3*z-4), 10*z/(10*z2-3*z-4)Z = % z*(10*z2-3*z-17)/(2*z+1)/(5*z-4)/(z-1)-2*z

21、*(-8*z-2+5*z2)/(2*z+1)/(5*z-4)/(z-1)xkT = % -2/3*(-1/2)k+5*(4/5)k-10/3 -1/3*(-1/2)k-4*(4/5)k+10/3ykT = %-1/3*(-1/2)k-4*(4/5)k+10/3例6.10 设某一连续状态方程为试求其离散状态方程,设采样周期为。解 其状态转移方程为:。syms T w s ta=0,1;-w2,0;I=eye(length(a);Asi=s*I-a;Ainv=inv(Asi); %A=ilaplace(Ainv); %B=int(A*0;1,t,0,T) %A=subs(A,t,T) %用符号变量

22、取代符号变量B = -(cos(T*(w2)(1/2)-1)/w2 sin(T*(w2)(1/2)/(w2)(1/2)A = cos(T*(w2)(1/2), sin(T*(w2)(1/2)/(w2)(1/2) -w2/(w2)(1/2)*sin(T*(w2)(1/2), cos(T*(w2)(1/2)由于,则,离散状态方程为6.2 系统辨识工具箱系统辨识工具箱的主要功能包括: 参数模型辨识。主要模型有ARX、ARMAX、BJ模型,以及状态空间和输入误差等模型类的辨识。 非参数模型辨识。 模型的验证。对辨识模型的仿真,将真实输出数据与模型预测数据比较,计算相应的残差。 基于递推算法的ARX、A

23、RMAX模型的辨识。 各种模型类的建立和转换函数。 集成多种功能的图形用户界面。该界面以图形的交互方式提供模型类的选择和建立、输入输出数据的加载和预处理,以及模型的估计等。6.2.1 系统辨识原理及辨识模型简介系统辨识的主要内容包括:实验设计,模型结构辨识,模型参数辨识,模型检验。常用的模型类有:(1) 参数模型类利用有限的参数来表示对象的模型,在系统辨识工具箱中的参数模型类有:ARX模型、ARMAX模型、BJ(Box-Jenkins)模型、状态空间模型和输入误差模型。通常都限定为以下特殊的情形: ARX模型: (6.8) ARMAX模型: (6.9) BJ模型: (6.10) (6.11)

24、输入误差模型: (6.12) 状态空间模型: (6.13)其中A,B,C,D为状态空间模型的系数矩阵,v(t)为外界噪声信号。(2) 非参数模型类非参数模型主要包括脉冲响应模型和频域描述模型。如图6.3所示,假设待辨识的系统为线性系统,u为输入,y为输出,v为噪声,则可以得出输入输出的关系如下: (6.14)其中: q为时间平移算子,序列g(k)称为对象的脉冲响应模型,v(t)是不可测量的附加干扰噪声。图6.4 系统辨识工具箱的图形界面图6.5 导入数据的窗口6.2.2 系统辨识工具箱图形界面在MATLAB的命令窗口中键入ident进入系统辨识工具箱的图形界面,如图6.4所示。除此之外,MAT

25、LAB还提供了以命令和函数的方法提供系统辨识工具。(1) 数据视图数据视图主要完成输入输出数据的导入及绘图,位于图6.4的左边(Data Views)。选择import data列表框中的“Time domain data”可以进入数据的导入界面,如图6.5所示。在图6.5所示的对话框中,可以指定输入输出的变量名称即可导入输入输出数据,还可指定采样周期,并为数据命名。导入数据后,可以通过图形界面对这些数据进行处理。表6.1 图形界面之模型视图的复选框功能一览表Model output模型输出曲线Model resids模型预测残差曲线Transient resp暂态响应曲线Frequency

26、resp频率响应曲线Zeros and poles模型零极点图Noise spectrum噪声频谱(2) 操作选择在图形界面的中间部分为数据操作(Operation)部分,包括两个下拉式列表框。图形界面的上方的是预处理(Preprocess)操作,可以对数据进行相关操作,如:消除趋势、滤波、选择输入输出通道等。图形界面的下方是进行估计(Estimate)操作,可以选择模型的类型,并通过相应的对话框输入模型阶次等信息。此外,还可以将视图区的图表拖动至两个下拉列表之间的区域,使该图表所表示的数据成为当前工作的数据,不用的数据可以拖入下方的垃圾桶“Trash”内。(3) 模型视图在图6.4界面右边的

27、区域为Model views区即模型视图区。在此区域可以选择和切换不同的模型,进行模型的验证和特征曲线的绘制等。模型视图的下方有许多复选框,供用户查看辨识输出曲线及其它的特征曲线,功能见表6.1。下面通过MATLAB提供的实例来说明系统辨识工具箱的功能和使用方法。例6.8 以MATLAB的demo系统提供的干发器(dryer)模型为例,输入为电源电压信号,输出为气流的温度。 在MATLAB的命令窗口键入:load dryer2系统自动将u2和y2两个变量装载到MATLAB的“workspace”中,u2为输入,y2为输出。 在图6.5所示对话框中,分别将u2、y2填入“input”、“outp

28、ut”旁的文本框中,如果MATLAB的“workspace”中已有待辨识模型的输入输出数据向量,也可填入此处用于辨识;在“Sampling interval”中输入采样周期:0.08,并可在“Data name”旁的文本框为数据命名;点击“Import”按钮后数据以图标的形式显示在视图中,如图6.6所示。点击工具箱界面(图6.4)数据视图下方的“Time plot”复选框可以打开随时间变化的曲线,如图6.7所示。 如果要消除数据序列中的平均值(constant level)可返回工具箱界面(图6.4)窗口在“Preprocess”下拉列表中选择“Remove means”,此时在数据视图区出现

29、新的数据dyrd,同时新数据随时间变化的曲线也会自动地加入图6.7中,如图6.8所示;双击数据视图中任一图表可以查看其相应的信息。 在工具箱界面(图6.4)窗口“Preprocess”下拉列表中选择“Select range”后打开一个新的图形窗口。在此新窗口中可以选择数据的一部分用于模型估计,可以用鼠标拖动选择或者直接键入时间范围,如0-50,选好后点击“Insert”按钮返回,此时在数据视图中生成一个新的数据dryde;将数据dryde拖入工具箱界面(图6.4)中间的“Working data”(工作数据)中,可以对其进行参数估计与分析。 在工具箱界面(图6.4)窗口“Estimate”下

30、拉列表中选择“Correlation model”估计模型的暂态响应,在弹出的对话框中可以设置时间范围等参数,默认系统设置不变则点击“Estimate”按钮,则在模型视图中生成一个模型图标lmp,点击“Transient resp”复选框,可以得到其暂态曲线,如图6.9所示;在“Estimate”下拉列表中选择“Spectral model”估计模型的频率响应,默认弹出对话框中的参数设置进行估计,可以在模型视图中生成一个模型spd,点击“Frequency resp”复选框,可以得到其频率响应曲线,如图6.10所示。 接下来进行参数估计,在工具箱界面(图6.4)窗口“Estimate”下拉列表

31、中选择“Parametric models”,弹出对话框如图6.11,输入模型结构信息可以生成新的模型。系统默认的选择为4阶差分方程模型,用此模型估计点击“Estimate”按钮生成新的模型arx441,并将曲线自动添加到各视图中。图6.7 信号随时间的变化曲线图6.6 导入数据后的图形界面图6.9 进行参数估计及其暂态响应曲线图6.8 消除平均值后的图形界面及相应的曲线图6.10 模型频率响应曲线图6.11 生成新参数模型的窗口Parametric models 图6.12 不同模型仿真输出与实际输出的比较曲线图图6.13 ARX模型结构阶次选择 在图6.11所示对话框中,可以进入“Orde

32、r editor”改变模型的阶次,选择na=2,nb=2,nk=3即为具有0.24s(3个采样周期)延时的二阶模型,点击“Estimate”生成模型arx223;此时频率响应曲线窗口和暂态响应曲线窗口都有三条曲线分别对应于前面的三个模型,在主窗口点击某一模型图标可以添加或去除在已打开视图中对应的曲线;在工具箱界面(图6.4)窗口选择“Model output”复选框,可以查看模型仿真输出与实际输出之间的比较结果,如图6.12所示,右侧给出了对应不同颜色表示的模型仿真输出与实际输出的相似度。 在进行参数估计时,还可以选择其它模型,如状态空间模型(ss、BJ、ARMAX、oe等),阶次同样可选,操

33、作同ARX模型的做法;如果不清楚选择阶次为多少比较合适,可以在图6.11对话框中选择“Order selection”并输入阶次的范围,系统默认为1:10,然后点击“Estimate”按钮后弹出如图6.13的对话框,根据图中提示选择合适的模型并按“Insert”插入所选模型。6.2.3 系统辨识工具箱命令由于系统辨识工具箱可以处理许多不同种类的模型结构,因此这些模型结构可以灵活定义。要创建一个模型进行仿真时,有必要定义模型结构不是黑箱类型而是具有更多细节能反映系统工作原理的内部结构。在系统辨识工具箱中是通过各种类型的模型对象来实现的。此模型对象包含许多特征,对任意模型使用命令get(m)可以得

34、到模型的特征列表;使用set(m)可以看到各特征所分配的值。而且,可以通过类似m.A这样的命令很容易地得到或者赋予某一特征值。(1) 多项式黑箱模型:idpoly模型通用的输入输出形式(如式(6.11)是由五个多项式定义的。这些都可表示为标准的MATLAB多项式格式。多项式的系数按降幂排列储存在一个行向量中。例如,可表示为:A = 1 a1 a2 . an系统中的延时可在多项式B(q)前加零,例如对于如下的ARX模型: (6.15)可以用多项式表示为:A = 1 -1.5 0.7B = 0 0 2.5 0.9式(6.11)的多项式模型可由如下命令生成:m = idpoly(A,B,C,D,F,

35、lam,T)lam是白噪声序列的方差,T为采样周期。后面的参数变量可以缺省为默认值。例如式(6.15)可以表示为:m = idpoly(1 -1.5 0.7,0 0 2.5 0.9)对于式(6.13)多输入的情况,B和F都为矩阵,行号k对应于第k个输入。对于时间序列,B和F都为空矩阵B = ,F = 。(2) 数据表示和非参数模型估计观测到的输入输出信号u(t)、y(t)分别用列向量u、y表示,序数k对应于采样数字k,对于多变量系统,每一个输入(输出)都可以表示为一个列向量,所以向量u就是一个N*nu的矩阵(N为采样观测的序列数,nu为输入通道数)。输入输出数据全部表示在iddata对象的格式

36、中。这是辨识工具箱处理信号的基本对象,在很多的函数中都会使用。构造对象的使用格式:Data = iddata(y,u,Ts)其中,y是一个列向量或N*ny的矩阵,y的列对应于不同的输出通道。类似地,u也是一个列向量或N*nu的矩阵,u的列对应不同的输入通道。Ts为采样间隔。这样的构造对于大部分的应用来说已经足够。可以使用Data.OutputData或Data.y得到输出通道的信号,类似地,要得到输入信号可以使用Data.InputData 或 Data.u。对于时间序列(无输入信号)可以使用Data = iddata(y)或令u = 。同样也可用于单输入系统,只需令y = 。若需要修改采样间

37、隔,可以令Data.Ts = 0.3或使用语句:set(Data,Ts,0.3)(3) 参数模型估计在系统辨识工具箱中包括多种参数模型估计的函数,它们都具有共同的命令结构。m = function(Data,modstruc)m = .function(Data,modstruc,Property1,Value1,PropertyN,ValueN)变量Data是包括输入输出序列的iddata对象,而modstruc说明了被估计模型的特定结构。模型估计的结果返回到变量m中,它是存放了多种信息的模型对象。在大多数情况使用时可以不必考虑对象的细节重要输入模型名称m就可以了。若查看m的简要信息输入pr

38、esent(m),通过get(m)则可以得到更为详细的参数信息,参数值仍然可以采用圆点引用的形式得到,例如m.par返回的就是估计参数。函数调用(.,Property1, Value1,.,PropertyN,ValueN)的参数影响着模型结构及估计算法。(4) ARX模型从ARX多项式建立ARX模型可以使用函数idarx,格式如下:m = idarx(A,B,Ts)m = idarx(A,B,Ts, Property1, Value1,.,PropertyN,ValueN)对于多输入输出的ARX模型有如下形式: (6.16)其中系数Ak为ny*ny维矩阵,Bk为ny*nu维矩阵(ny为输出参

39、数个数,nu为输入参数个数);输入参数A为ny*ny*(1+na) 的3维矩阵并使得:A(:,:,k+1)=AkA(:,:,1)=eye(ny)输出参数B为ny*nu*(1+nb) 的3维矩阵并使得:B(:,:,k+1)=BkTs为采样周期。对式(6.8)的ARX模型参数ai和bi进行估计可使用函数arx,格式如下:m = arx(Data,na nb nk)arx函数是基于最小二乘法的模型辨识,使用因式分解求解超定线性方程。其中Data是包含输入输出数据的基础iddata对象;na、nb和nk分别对应准确定义ARX模型的阶次和纯时延大小,如果有ny个输出和nu个输入,阶次依次定义为:na是一

40、个ny*ny的矩阵,nb和nk为ny*nu维的矩阵。例6.9 模拟一个具有1输入2输出的二阶ARX模型并使用模拟数据估计该对象。A=zeros(2,2,3);B=zeros(2,1,3); %生成符合输入输出维数的3维空矩阵A(:,:,1)=eye(2); A(:,:,2)=1.5 0.1;-0.2 1.5;A(:,:,3)=0.7 -0.3;0.1 0.7;B(:,:,2)= 1;-1;B(:,:,3)= 0.5;1.2; %为输入输出数据矩阵赋值m0=idarx(A,B,1);u=iddata(,idinput(300);e=iddata(,randn (300,2);y=sim(m0,u

41、,e);m=arx( y,u, 2 2;2 2,2;2,1;1);(5) AR 模型对于单个输出信号,ARX模型的特例就是AR模型arx命令同样可以应用在此特例上:m = arx(y,na),但是对于标量信号,可以通过如下命令可以有更多的选择:m = ar(y,na)通过对参数的设置可以选择参数估计的最小二乘类方法,包括Burg机遇网格的方法、几何网格的方法、Yule-Walker方法以及修正的协方差法。相关格式内容可通过“help ar”命令得到。(6) 通用多项式黑箱模型基于预测误差方法可以建立任意结构的基本模型,对于式(6.11)的模型,可以使用函数:m = pem(Data,nn)nn

42、给出所有的阶次和延时:nn = na nb nc nd nf nk对于模型的非零阶次也可写为“特征名/特征值”的格式:m = pem(Data,na,na,nb,nb,nc,nc,nk,nk)输入参数由传递函数的多项式表达式定义,命令pem涵盖了所有黑箱线性系统的模型,对于常见的几种都可以使用,例如:m = armax(Data,na nb nc nk) m = oe(Data,nb nf nk) m = bj(Data,nb nc nd nf nk) 它们处理的对应模型结构分别为见式(6.8)(6.9)(6.10)。函数pem可以处理一般的多输入,单输出系统模型: (6.17)这里的nb、n

43、f和nk都是行向量,长度与包含了所有阶次和延时的输入通道的数目相同:nb = nb1 . nbnu;nf = nf1 . nfnu;nk = nk1 . nknu;对于具有初始化条件的模型,可以用idmodel对象mi代替nn参数:m = pem(Data,mi)(7) 过程模型对于过程控制实例,通常采用连续时间采样模型,由静态增益、时间常数和可能存在的停滞时间(时延)。这种模型可以由下列命令进行估计:m = pem(Data,P1D)其中P1D表示一个极点(时间常数)和时延。(8) 状态空间模型 构造状态空间模型:idss模型定义具有如下形式的状态空间模型结构: (6.18)或 (6.19)

44、定义式(6.18)离散模型的语法结构为:m= idss(A,B,C,D,K,X0,Ts,T),若令T=0,则表示连续时间模型(见式6.19)即:m=idss(A,B,C,D,Kt,X0,Ts,0) 黑箱。离散时间参数化的模型:假设对离散时间状态空间模型的内部结构一无所知,如果是线性系统,可以使用下列简单的命名方法,可以对1-10阶的系统进行估计:m = pem(Data)对于某一阶次n的黑箱模型可以使用:m = pem(Data,n)也可以指定一系列不同的阶次nn = n1,n2,.,nN进行辨识并绘图比较来决定所需的阶次:m = pem(Data,nx,nn)所有这些黑箱模型可以由子空间方法

45、进行初始化,可以使用n4sid命令对状态空间模型进行估计:m = n4sid(Data,n) 离散/连续时间系统的参数结构模型:对于给定结构的状态空间模型,主要讨论带自由参数的idss模型。一旦定义了结构为ms,则可以通过如下命令估计它的参数:m = pem(Data,ms)例6.10 估计一个系统的自由参数A=-0.2 0;0 -0.3;B=2;4;C=1 1 ;D=0;m0=idss(A,B,C,D);m0.As=NaN 0;0 NaN;m0.Bs=NaN; NaN;m0.Cs=1 1;m0.Ts=0;u=iddata(,idinput(300,1);e=iddata(,randn(300

46、,1);y=sim(m0,u,e);z=y,u;plot(y)m=pem(z,m0)6.3 模糊逻辑工具箱针对模糊数学的广泛应用,MathWorks公司在其MATLAB中加入了Fuzzy Logic工具箱,该工具箱由长期从事模糊逻辑和模糊控制的专家和技术人员编制,提供了强大的功能。 图形化的系统设计界面。 支持模糊逻辑中的高级技术,如自适应神经-模糊推理系统、用于模式识别的模糊聚类技术和模糊推理方法选择等。 集成的仿真和代码生成功能,实现了MATLAB模糊逻辑控制工具箱和SIMULINK的无缝连接,还可以通过Real-Time Workshop生成ANSIC原代码有利于实际应用。 用户完成模糊

47、逻辑系统的设计后,可以将设计结果以ASC码的形式保存。模糊工具箱提供了三种类型的工具。 命令行函数。通过调用系统的命令函数或者用户自定义的函数,这些函数通常是以MATLAB的M文件形式来完成模糊逻辑算法; 图形界面工具。通过该工具用户可以在基于图形界面的环境下直观方便地设计、分析和实现模糊推理系统; 仿真模块与实例。提供在Simulink环境下实现高速模糊逻辑推理的设计和使用。6.3.1.模糊逻辑工具箱的图形界面用fuzzy命令打开FIS编辑器的图形界面,见图6.14,通过此界面可以定义整个模糊系统。默认的是,界面提供Mamdani法的单输入单输出;OR和AND算子分别由max和min实现,蕴

48、含关系用min,合成规则用max,用重心法(centroid)去模糊化。下面以一个调节一阶过程的模糊控制器来说明模糊工具箱图形界面。考虑传递函数: (6.18)令r(t)为给定信号,y(t)为离散输出。模糊控制器有两个输入:误差e(t)及它的变化e(t),其中: (6.20)这两个输入量分别用变量error和d_error表示,并定义在三个模糊集上,其高斯隶属度函数定义在-10 10区间。(1) 在图6.14所示窗口中,在Edit菜单下选择“Add input”添加一个输入量。用鼠标选中输入输出变量后,可以指定其变量名称或max-min、sum-prod等方法。图6.14 FIS编辑器的图形界

49、面(2) 图6.15是定义在-10 10区间上的误差变量,并使用三个高斯隶属函数,分别命名为Negative、Nil和Positive。(3) 定义了全部的输入输出变量后,在菜单View下选择“Rules”打开规则编辑窗口,如图6.16所示,每个规则末尾有一个括号括起来的权重系数。选中相应的规则可以对其进行修改,或者点击右键选择“Add rule”添加规则。图6.15 定义误差变量的隶属度函数编辑器图6.16 模糊规则编辑器在这个窗口中,还可以选择规则的编写语言种类,并通过菜单View能够打开规则观察窗口和表面视图窗口。在规则视图窗口(见图6.17)中可以用鼠标拖拽或直接输入来调整输入向量并可

50、观察到输出结果的表面图形和它去除离散化后的值。在表面视图窗口可以看到随输入变量变化的输出变量的表面图形。本例的系统可以通过主窗口File菜单下的“Export to Disk”导出至一个FIS模糊调节器扩展文件中,也可以以模糊矩阵的形式导出至工作变量空间(workspace)中。导出的文件能够在集成的调试编辑器中得到模糊控制器的语言描述。使用如下命令进入调试编辑: edit ex_fuzzy.fis图6.17 查看规则视图窗口回车后在编辑器(Editor)显示其对应的fis文本:SystemName=ex_fuzzyType=mamdaniVersion=2.0NumInputs=2NumOu

51、tputs=1NumRules=9AndMethod=minOrMethod=maxImpMethod=minAggMethod=maxDefuzzMethod=centroidInput1Name=errorRange=-10 10NumMFs=3MF1=Negative:gaussmf,4.247 -10MF2=Nil:gaussmf,4.247 -1.11e-016MF3=Positive:gaussmf,4.247 10Input2Name=d_errorRange=-10 10NumMFs=3MF1=Negative:gaussmf,4.247 -10MF2=Nil:gaussmf,

52、4.247 -1.11e-016MF3=Positive:gaussmf,4.247 10Output1Name=shuchuRange=-10 10NumMFs=5MF1=NG:trimf,-15 -10 -5.001MF2=N:trimf,-9.999 -5 -0.000717MF3=Z:trimf,-4.999 -5.551e-017 4.999MF4=P:trimf,0.000717 5 9.999MF5=PG:trimf,5.001 10 15Rules1 1, 5 (1) : 11 2, 4 (1) : 11 3, 3 (1) : 12 1, 4 (1) : 12 2, 3 (1)

53、 : 12 3, 1 (1) : 13 1, 3 (1) : 13 2, 1 (1) : 13 3, 2 (1) : 1图6.18 导出模糊结构到工作变量空间图6.19 SIMULINK中的模糊逻辑控制器模块通过主窗口File菜单下的“Export to Worksapce”导出至工作变量空间中,如图6.18所示,并可以为该矩阵变量命名。可以在SIMULINK模型或M文件中应用这个模糊推理系统。6.3.2 在SIMULINK中应用模糊推理系统MATLAB的模糊逻辑工具箱提供了与SIMULINK的无缝连接,建立了模糊逻辑推理系统后,可以在SIMULINK中对其仿真。SIMULINK中的Fuzzy logic toolbox中有相应的模糊逻辑控制器模块,如图6.19所示。在前例的图形界面中所设计的模糊推理系统已经导出为一个FIS模糊调节器扩展文件,名为ex_fuzzy.fis,并且以模糊矩阵ex_fuzzy的形式导出至工作变量空间。因此双击SIMULINK创建的模糊逻辑控制器的图标,在空白处输入该模糊矩阵的名称:ex_fuzzy,见图6.20。图6.22 输出信号与目标输出信号曲线图6.21 在SIMULINK中应用模糊推理系统图6.20 模糊系统模块参数输入窗口仍然以前述一阶过程为例,过

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!