线性系统分析-上机实验

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

线性系统分析-----上机实验报告姓名:戚煜华学号:3120140024实验一编写一个程序,判读一个线性定常系统的能控性,对于完全能控的系统变换成能控标准型,对于不完全能控的系统进行能控性分解。通过算例进行验证。程序:A,b,c为输入的线性定常系统。function[A_2,b_2,c_2]=zuoye_1(A,b,c)n=length(A);%%%确定系统状态变量的维数M=zeros(n,n);%%%能控性矩阵Mfori=1:nM(:,i)=A^(i-1)*b;endrank_M=rank(M);ifrank_M==n%%若完全能控则转换成能控标准1型disp('这个线性定常系统状态完全能控');a=poly(A);%%求A的特征多项式系数fori=1:nX(i:n,i)=a(1:end-i)';endTc1=zeros(n,n);%%变换矩阵Tc1fori=1:nTc1(:,i)=A^(n-i)*b;endTc1=Tc1*X;A_2=inv(Tc1)*A*Tc1;b_2=inv(Tc1)*b;c_2=c*Tc1;else%%若不完全能控则进行能控性分解disp('这个线性定常系统状态不完全能控');[~,jb]=rref(M);%%极大线性无关组length_jb=length(jb);Rc=[];fori=1:length_jbRc=[RcM(:,jb(i))];endwhilerank(Rc)nRc=[Rcrand(n,n-length_jb)];endA_2=inv(Rc)*A*Rc;b_2=inv(Rc)*b;c_2=c*Rc;endend算例一:书上例题3-12A=[120;3-11;020];b=[211]';c=[001];[A_2,b_2,c_2]=zuoye_1(A,b,c)运行结果如下:test1这个线性定常系统状态完全能控A_2=-0.00001.0000-0.0000-0.00000.00001.0000-2.00009.00000.0000b_2=-0.0000-0.00001.0000c_2=3.00002.00001.0000与书上例题答案相符合。算例二:书上例题3-15A=[00-1;10-3;01-3];b=[110]';c=[01-2];[A_2,b_2,c_2]=zuoye_1(A,b,c)运行结果如下:test这个线性定常系统状态不完全能控A_2=0-1.0000-0.77731.0000-2.0000-1.549800-1.0000b_2=100c_2=1.0000-1.0000-1.5498将原系统进行了能控性分解。答案正确。实验二编写一个程序,能够实现任意完全能观系统的线性定常系统,状态观测器极点配置,以及全状态反馈的极点配置,返回观测器增益矩阵和状态反馈矩阵。通过算例验证阶跃输入下带观测器的状态反馈和直接状态反馈闭环系统的状态变化过程。程序:function[K,G]=zuoye_2(A,B,C,w,w1)%%A,B,C是输入的完全能观线性定常系统[A_2,~,~,Z]=zuoye_1(A,B,C,D);a=-A_2(end,:);aa1=poly(w);a1=fliplr(aa1(2:end));%%w是期望状态反馈的极点aa2=poly(w1);a2=fliplr(aa2(2:end));%%w1是观测器极点K=(a-a1)/Z;%%反馈增益矩阵K%%全维观测器[~,~,~,~,ZZ]=zuoye_1A',C',B',D);T02=inv(ZZ');G=-T02*(a-a2)';%%反馈矩阵GEndSimulink截图:算例:书上例题5-2A=[010;001;0-2-3];B=[001]';C=[1000];w=[-2-1-i-1+i];w1=[-5-5-5];[K,G]=zuoye_2(A,B,C,w,w1)运行结果:K=-4-4-1G=1.20003.7000-1.0000输入simulink观察状态变化:02468101214161820-0.15-0.1-0.0500.050.10.150.2

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功