下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 现代控制理论实验报告

现代控制理论实验报告.doc

现代控制理论实验报告

韩松梅
2019-01-13 0人阅读 举报 0 0 暂无简介

简介:本文档为《现代控制理论实验报告doc》,可适用于工程科技领域

现代控制理论实验报告            二〇一六年五月实验一线性定常系统模型一实验目的掌握线性定常系统的状态空间表达式。学会在MATLAB中建立状态空间模型的方法。掌握传递函数与状态空间表达式之间相互转换的方法。学会用MATLAB实现不同模型之间的相互转换。熟悉系统的连接。学会用MATLAB确定整个系统的状态空间表达式和传递函数。掌握状态空间表达式的相似变换。掌握将状态空间表达式转换为对角标准型、约当标准型、能控标准型和能观测标准型的方法。学会用MATLAB进行线性变换。二实验内容已知系统的传递函数()建立系统的TF或ZPK模型。()将给定传递函数用函数ss()转换为状态空间表达式。再将得到的状态空间表达式用函数tf()转换为传递函数并与原传递函数进行比较。()将给定传递函数用函数jordants()转换为对角标准型或约当标准型。再将得到的对角标准型或约当标准型用函数tf()转换为传递函数并与原传递函数进行比较。()将给定传递函数用函数ctrlts()转换为能控标准型和能观测标准型。再将得到的能控标准型和能观测标准型用函数tf()转换为传递函数并与原传递函数进行比较。已知系统的传递函数()建立给定系统的状态空间模型。用函数eig()求出系统特征值。用函数tf()和zpk()将这些状态空间表达式转换为传递函数记录得到的传递函数和它的零极点。比较系统的特征值和极点是否一致为什么()用函数canon()将给定状态空间表达式转换为对角标准型。用函数eig()求出系统特征值。比较这些特征值和()中的特征值是否一致为什么再用函数tf()和zpk()将对角标准型或约当标准型转换为传递函数。比较这些传递函数和()中的传递函数是否一致为什么()用函数ctrlss()将给定的状态空间表达式转换为能控标准型和能观测标准型。用函数eig()求系统的特征值。比较这些特征值和()中的特征值是否一致为什么再用函数tf()将它们转换为传递函数。比较这些传递函数和()中的传递函数是否一致为什么三实验结果已知系统的传递函数>>num=>>den=>>G=tf(num,den)Transferfunction:s^s^s^s>>z=>>p=>>k=>>G=zpk(z,p,k)Zeropolegain:s(s)^(s)>>Gss=ss(G)a=x x x xx    x    x    x    b=ux x x x c=x x x xy    d=uy Gtf=tf(Gss)Transferfunction:s^s^s^s>>Gzpk=zpk(Gtf)Zeropolegain:s(s)(s)^   >>A=B=>> C=D=>>G=ss(A,B,C,D)a=x xx  x  b=ux x c=x xy  d=uy Continuoustimemodel>>a=a=    >>eig(a)ans=>>Gtf=tf(G)Transferfunction:ss^s>>Gzpk=zpk(Gtf)Zeropolegain:(s)(s)(s)结论:由上述结果可看出系统的特征值和极点是一致的。>>A=B=>>C=D=>>G=ss(A,B,C,D)>>G=canon(G,'modal')a=x xx  x  b=ux x c=x   xy    d=uy Continuoustimemodel>>Gtf=tf(G)Transferfunction:s>>Gzpk=zpk(Gtf)Zeropolegain:(s)实验二线性定常系统状态方程的解一实验目的掌握状态转移矩阵的概念。学会用MATLAB求解状态转移矩阵。掌握线性系统状态方程解的结构。学会用MATLAB求解线性定常系统的状态响应和输出响应并绘制相应曲线。二实验内容求下列系统矩阵A对应的状态转移矩阵令初始状态为输入为零。a)用MATLAB求状态方程的解析解。选择时间向量t绘制系统的状态响应曲线。观察并记录这些曲线。b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。观察并记录这些响应曲线然后将这一状态响应曲线与a)中状态响应曲线进行比较。c)根据b)中所得的状态响应的数值解用命令plot(x(:,),x(:,))绘制系统的状态轨迹。记录系统状态转移的过程结合a)和b)中的状态响应曲线分析这一过程。已知系统()令初始状态为输入为零。a)用MATLAB求状态方程的解析解。选择时间向量t绘制系统的状态响应曲线。观察并记录这些曲线。b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。观察并记录这些响应曲线然后将这一状态响应曲线与a)中状态响应曲线进行比较。c)根据b)中所得的状态响应的数值解用命令plot(x(:,),x(:,))绘制系统的状态轨迹。记录系统状态转移的过程结合a)和b)中的状态响应曲线分析这一过程。()令初始状态为零输入为。a)用MATLAB求状态方程的解析解。选择时间向量t绘制系统的状态响应曲线。观察并记录这些曲线。b)用函数initial()计算系统在初始状态作用下状态响应和输出响应的数值解,并用函数plot()绘制系统的状态响应曲线和输出响应曲线。观察并记录这些响应曲线然后将这一状态响应曲线与a)中状态响应曲线进行比较。c)根据b)中所得的状态响应的数值解用命令plot(x(:,),x(:,))绘制系统的状态轨迹。记录系统状态转移的过程结合a)和b)中的状态响应曲线分析这一过程。()令初始状态为输入为。求系统状态响应和输出响应的数值解绘制系统的状态响应曲线、输出响应曲线和状态轨迹。观察和分析这些响应曲线和状态轨迹是否是()和()中的响应曲线和状态轨迹的叠加。()令初始状态为零输入为。用函数lsim()计算状态响应和输出响应的数值解并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。已知系统且初始状态为。()当输入为时用函数initial()和impulse()求解系统的状态响应和输出响应的数值解并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。()当输入为时用函数initial()和step()求解系统的状态响应和输出响应的数值解并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。()当输入为时用函数initial()和lsim()求解系统的状态响应和输出响应的数值解并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。()当输入为时用函数initial()和lsim()求解系统的状态响应和输出响应的数值解并绘制系统的状态响应曲线、输出响应曲线和状态轨迹。三实验结果>>A=symstphet=expm(A*t) phet= exp(*t)*exp(t),   exp(t)exp(*t)*exp(t)*exp(*t),  *exp(*t)exp(t)A=symssG=inv(s*eye(size(A))A)phet=ilaplace(G)X='Xt=phet*X>>B='Xt=ilaplace(G*B*(s))>>ex xt= exp(t)exp(t)xt=exp(t)*exp(*t)    exp(t)exp(*t)已知系统为>>A=B=C=D=G=ss(A,B,C,D)a=x xx  x  b=ux x c=x xy  d=uy Continuoustimemodel>>t=::x=>>yo,t,xo=initial(G,x,t)plot(t,xo,':',t,yo,'')>>figure('pos',,'color','w')u=ones(size(t))yu,t,xu=lsim(G,u,t)plot(t,xu,':',t,yu,'')实验三线性定常系统的能控性和能观性一实验目的掌握能控性和能观测性的概念。学会用MATLAB判断能控性和能观测性。掌握系统的结构分解。学会用MATLAB进行结构分解。掌握最小实现的概念。学会用MATLAB求最小实现二实验内容已知系统()判断系统状态的能控性和能观测性以及系统输出的能控性。说明状态能       控性和输出能控性之间有无联系。()令系统的初始状态为零系统的输入分别为单位阶跃函数和单位脉冲函数。用MATLAB函数计算系统的状态响应和输出响应并绘制相应的响应曲线。观察和记录这些曲线。当输入改变时,每个状态变量的响应曲线是否随着改变?能否根据这些曲线判断系统状态的能控性?()将给定的状态空间表达式变换为对角标准型判断系统的能控性和能观测性与()的结果是否一致?为何?()令()中系统的初始状态为零输入分别为单位阶跃函数和单位脉冲函数。用MATLAB函数计算系统的状态响应和输出响应并绘制响应的曲线。观察和记录这些曲线。当输入改变时,每个状态变量曲线是否随着改变?能否根据这些曲线判断系统以及各状态变量的能控性?不能控和能控状态变量的响应曲线有何不同?()根据()和()所得曲线能否判断系统状态以及各状态变量的能观测性?已知系统()将给定的状态空间模型转换为传递函数模型。令初始状态为零用MATLAB计算系统的单位阶跃输出响应绘制和记录相应的曲线。()按能控性分解给定的状态空间模型并记录所得的结果然后再将其转换为传递函数模型。它与()中所得的传递函数模型是否一致?为何?令初始状态为零用MATLAB计算系统的单位阶跃输出响应并绘制和记录相应曲线。这一曲线与()中的输出曲线是否一致?为何?()按能观测性分解给定的状态空间模型并记录分解所得的结果然后再将其转换为传递函数模型。它与()中的传递函数模型是否一致?为何?令初始状态为零用MATLAB计算系统的单位阶跃输出响应并绘制和记录相应曲线。这一曲线与()中的输出曲线是否一致?()按能控性能观测性分解给定的状态空间模型并记录分解所得的结果然后再将其转换为传递函数模型。它与()中的传递函数模型是否一致?为何?令初始状态为零用MATLAB计算系统的单位阶跃输出响应并绘制和记录相应的曲线。这一曲线与()中的输出曲线是否一致?为何?三实验结果()>>A=B=Uc=ctrb(A,B)Uc=   >>rank(Uc)ans=因为rank(Uc)=n=所以系统的状态不完全能控。>>A=B=C=D=Uc=ctrb(A,B)Uy=C*UcDUy=    >>rank(Uy)ans=由于rank(Uy)==m,故系统是输出能控的。A=C=D=V=obsv(A,C)V=    >>rank(V)ans=由于rank(V)=不等于n,故不能观。按能控性分解>>A=B=C=AcBcCcTcKc=ctrbf(A,B,C)Ac=         Bc=Cc=   Tc=          Kc=    unctionAk,Bk,Ck,Tk=kalmdec(A,B,C) 按能控能观测性分解Ac,Bc,Cc,Tc,Kc=ctrbf(A,B,C)nc=rank(ctrb(A,B))n=length(A)ic=nnc:nAo,Bo,Co,To,Ko=obsvf(Ac(ic,ic),Bc(ic),Cc(ic))ifnc<n,inc=:nncAo,Bo,Co,To,Ko=obsvf(Ac(inc,inc),Bc(inc),Cc(inc))endm,n=size(To)m,n=size(To)To=To,zeros(m,n)zeros(m,n),ToT=To*Tcn=rank(obsv(Ac(ic,ic),Cc(ic)))n=rank(obsv(Ac(inc,inc),Cc(inc)))K=zeros(,nncn),ones(,n),*ones(,ncn),*ones(,n)Ak=T*A*inv(T)Bk=T*BCk=C*inv(T)Ak=rot(Ak,)Bk=rot(Bk,)Ck=rot(Ck,)Tk=rot(T,)>>A=B=C=AkBkCkTk=kalmdec(A,B,C)Ac=           Bc=Cc=   Tc=       实验四 稳定性一实验目的掌握系统稳定性的概念。学会使用MATLAB确定线性定常系统和非线性定常系统的稳定性。二实验内容已知线性系统()用函数eig()pole()和zpkdata()求出系统的特征值和极点。用函数pzmap()绘制系统的零点和极点。确定系统的稳定性。()任意给定对称正定矩阵Q用函数lyap()求解Lyaponov方程确定系统的稳定性。与()的结果进行比较。()令任意给定初始状态。用函数initial()求出系统的零输入响应并绘制相应的状态响应曲线。说明稳定系统的状态响应曲线与不稳定系统的状态响应曲线的区别。()令初始状态为零。用函数step()求出系统在单位阶跃信号作用下的状态响应和输出响应,并绘制相应的曲线。分析系统的状态稳定和输出稳定是否一致。已知非线性系统编制相应的程序用克拉索夫斯基法确定系统在原点处的稳定性。三实验结果() A=>>eig(A)ans=()A=Q=eye()P=lyap(A,Q)P=   >>s=posdef(P)s=matrixispositivedefinitematrix可知系统是稳定的。()functions=posdef(P) 判定矩阵的正定性r=length(P)fori=:rpp(i)=det(P(:i,:i))endk=find(pp<)j=find(pp==)ifisempty(j)isempty(k)s='matrixispositivedefinitematrix'elseifisempty(k)s='matrixishalfpositivedefinitematrix'elses='nondefinitematrix'end>>A=Q=eye()P=lyap(A,Q)s=posdef(P)返回P=   s=matrixispositivedefinitematrixexsymsxxx=xxf=*xxf=xxx^F=jacobian(f,x)jacobian(f,x)jacobian(f,x)jacobian(f,x)F=jacobian(f,x)jacobian(f,x)jacobian(f,x)jacobian(f,x)F=FtF          n=length(x)fori=:nff(i)=simple(det(F(:i,:i)))  endffv=f*ff*f   在命令窗中运行该程序得ff=,*x^v=(*xx)^(xxx^)^可见F负定,且当时所以系统大范围渐近稳定。实验五极点配置和状态观测器一实验目的掌握状态反馈和输出反馈的概念及性质。掌握利用状态反馈进行极点配置的方法。学会用MATLAB求解状态反馈矩阵。掌握状态观测器的设计方法。学会用MATLAB设计状态观测器。熟悉分离定理学会设计带有状态观测器的状态反馈系统。二实验内容已知系统()求解系统的零点、极点和传递函数并判断系统的能控性和能观测性。()分别选取K=K=K=–为状态反馈矩阵求解闭环系统的零点、极点和传递函数判断闭环系统的能控性和能观测性。它们是否发生改变为什么?()任选三个输出反馈矩阵求解闭环系统的零点、极点和传递函数并判断系统的能控性和能观测性。它们是否发生改变为什么?已知系统()求解系统的极点。绘制系统的单位阶跃响应曲线并确定系统的超调量和上升时间。()求解状态反馈矩阵K使闭环系统的极点为和。求解状态反馈系统的传递函数。绘制该闭环系统的单位阶跃响应曲线并确定系统的超调量和上升时间。与原系统比较,性能是否改善?()设计一个全维观测器使观测器的极点为。仿真状态观测器观测到的状态。()设计一个降维观测器使观测器的极点为。()建立带全维状态观测器的状态反馈系统的状态空间表达式。求解带全维状态观测器的状态反馈系统的极点是否是状态反馈系统和观测器的极点的组合?为什么?求解该闭环系统的传递函数与状态反馈系统的传递函数是否一致?为什么?绘制该闭环系统的单位阶跃响应曲线并确定系统的超调量和上升时间。与状态反馈系统的单位阶跃响应曲线比较验证两种反馈是否等价。三实验结果>>A=B='Uc=ctrb(A,B)m=rank(Uc)m=可见系统是不完全能控的而且其中有两个极点可以任意配置。在命令窗中调用此函数>>K=bfjdpz(A,B,C) 返回Af=            Bf=Cf=    Tf=            输入能配置的极点组成的向量由上述能控性分解可见极点是不能控的另外两个极点是能控的。可判断利用状态反馈第一组极点可以配置而第二组极点不能配置。在命令窗中输入第一组极点中能控的两个极点即返回Pc=  K=    >>A=B='C=p=L=(acker(A',C',p))’返回L=利用函数simobsv()可以仿真状态观测器所观测到的状态。该函数的调用格式为其中G为系统的状态空间模型L为观测器的反馈矩阵。Xo为重构状态的阶跃响应x为原系统状态的阶跃响应t为函数自动选择的时间向量。该函数的程序如下functionxo,x,t=simobsv(G,L) 仿真观测器的状态y,t,x=step(G)G=ss(G)A=GaB=GbC=GcD=Gdy,xo=step((AL*C),B,C,D,,t)y,xo=lsim((AL*C),L,C,D,y,t)xo=xoxo现在仿真上面的求得的状态观测器的状态。运行下列命令>>figure('pos',,'color','w')xo,x,t=simobsv(ss(A,B,C,),L)plot(t,x,'k',t,xo,':r')返回原系统和状态观测器的单位阶跃响应曲线如图。图 单位阶跃响应曲线      图 反馈矩阵响应曲线再选观测器的反馈矩阵为运行上述命令得到图。可见此时的估计不如上面的效果好。实验六倒立摆一实验目的倒立摆是研究控制理论的一种典型实验装置具有成本低结构简单物理参数和结构易于调整的优点是一个具有高阶次、不稳定、多变量、非线性和强耦合特性的不稳定系统。在控制过程中他能有效反应鲁棒性随动性等控制中的关键问题。研究倒立摆可以让我们掌握和理解控制科学中很多的理论问题。二实验内容倒立摆系统的构成图倒立摆系统的组成框图如图所示为倒立摆的结构图。系统包括计算机、运动控制卡、伺服机构、倒立摆本体和光电码盘几大部分组成了一个闭环系统。光电码盘将小车的位移、速度信号反馈给伺服驱动器和运动控制卡摆杆的位置、速度信号由光电码盘反馈回控制卡。计算机从运动控制卡中读取实时数据确定控制决策(小车向哪个方向移动、移动速度、加速度等)并由运动控制卡来实现该控制决策产生相应的控制量使电机转动带动小车运动保持摆杆平衡。单级倒立摆数学模型的建立单级倒立摆模型:图单级倒立摆模型示意图那我们在本实验中定义如下变量:M  小车质量  (本实验系统 Kg)m  摆杆质量  (本实验系统 Kg)b  小车摩擦系数(本实验系统 Nmsec)l  摆杆转动轴心到杆质心的长度(m)I  摆杆惯量  (kg*m*m)F  加在小车上的力x  小车位置φ 摆杆与垂直向上方向的夹角θ 摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)应用Newton方法来建立系统的动力学方程过程如下:分析小车水平方向所受的合力可以得到以下方程:由摆杆水平方向的受力进行分析可以得到下面等式:即  把这个等式代入上式中就得到系统的第一个运动方程:()为了推出系统的第二个运动方程我们对摆杆垂直方向上的合力进行分析可以得到下面方程:力矩平衡方程如下:注意:此方程中力矩的方向由于故等式前面有负号。合并这两个方程约去和由得到第二个运动方程:()设(是摆杆与垂直向上方向之间的夹角)假设与(单位是弧度)相比很小即《则可以进行近似处理:。用来代表被控对象的输入力线性化后两个运动方程如下:传递函数对方程组()进行拉普拉斯变换得到注意:推导传递函数时假设初始条件为。由于输出为角度求解方程组()的第一个方程可以得到把上式代入方程组()的第二个方程得到整理后得到传递函数:其中      ()观察系统Matlab仿真和开环响应()观察稳定性与可控性分析()PID算法:调整参数看仿真结果三实验结果在Matlab中拉普拉斯变换后得到的传递函数可以通过计算并输入分子和分母矩阵来实现。求系统传递函数的m文件内容如下:M=m=b=I=g=l=q=(Mm)*(Im*l^)(m*l)^ simplifiesinputnum=m*lq den= b*(Im*l^)q (Mm)*m*g*lq b*m*g*lqt=::impulse(num,den,t)axis()执行上面的文件就可以求出系统传递函数的分子与分母多项式的Matlab表示:num=    den=    可以得到系统开环脉冲响应的曲线如下:系统开环脉冲响应曲线状态空间法:状态空间法可以进行单输入多输出系统设计(从实验二开始我们将尝试同时对摆杆角度和小车位置进行控制)。为了更具挑战性给小车一个阶跃输入信号设计指标如下:●小车位置x和摆杆角度θ的稳定时间小于秒●位置x的上升时间小于秒●摆杆角度的超调量小于度(弧度)。下面我们用Matlab求出系统的状态空间方程各矩阵并仿真系统的开环阶跃响应。在这里同样给出了一个m文件执行这个文件Matlab将会给出系统状态空间方程的ABC和D矩阵并可以绘出在给定输入为一个m的阶跃信号时系统的响应曲线。M=m=b=I=g=l=p=I*(Mm)M*m*l^denominatorfortheAandBmatriciesA=                (Im*l^)*bp (m^*g*l^)p                  (m*l*b)p  m*g*l*(Mm)p B=  (Im*l^)pm*lpC=D=T=::U=*ones(size(T))Y,X=lsim(A,B,C,D,U,T)plot(T,Y)axis()执行该m文件可以求出系统的状态空间A、B、C、D矩阵,得到开环系统阶跃响应的曲线。A=                                 B=C=            D=倒立摆状态空间开环系统阶跃响应曲线图中实线是摆杆角度响应曲线虚线是小车位置响应曲线。  .摆杆角度控制首先需要把输出为摆杆角度时系统的传递函数用Matlab表示出来建立一个m文件将下面几行表示传递函数的语句拷贝进去其中代表比例系数:M=m=b=I=g=l=q=(Mm)*(Im*l^)(m*l)^ simplifiesinputnum=m*lq den= b*(Im*l^)q (Mm)*m*g*lq b*m*g*lq kd=k=ki=numPID=kd k kidenPID= numc=conv(num,denPID)denc=polyadd(conv(denPID,den),conv(numPID,num))t=::impulse(numc,denc,t)其中函数polyadd是求两个多项式之和的函数它不是Matlab工具因此必须把它拷贝到polyaddm文件中,并把该文件的目录用addpath命令加到路径中。Polyadd函数内容如下:functionpoly=polyadd(poly,poly)iflength(poly)<length(poly)short=polylong=polyelseshort=polylong=polyendmz=length(long)length(short)ifmz>poly=zeros(,mz),shortlongelsepoly=longshortend在这里我们假定比例、积分和微分控制都是必需的。现在就可以进行系统脉冲响应的PID控制仿真了。在前面的m文件中加入下面的语句就可以得到系统的脉冲响应仿真结果:运行结果及响应曲线如下:num=        den=        kd=k=ki=numc=            denc=             初始PID参数摆角状态图系统响应是不稳定的不能满足要求需要调整参数和直到获得满意的控制结果。首先增加比例系数观察它对响应的影响取=kd=系统响应如下:num=        den=        kd=k=ki=numc=            denc=             调节PID参数后摆角输出图系统稳定时间约为秒满足要求。由于此时稳态误差为所以不需要改变积分环节(你可以改变积分系数观察系统响应如何变化)系统响应的超调量比较大为了减小超调增加微分系数取=响应结果和响应曲线如下:num=        den=        kd=k=ki=numc=            denc=            微调PID参数后摆角状态曲线

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/50

现代控制理论实验报告

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利