实验八MATLAB状态空间分析报告

合集下载

线性系统理论Matlab实践仿真报告

线性系统理论Matlab实践仿真报告

线性系统理论Matlab实验报告1、本题目是在已知状态空间描述的情况下要求设计一个状态反馈控制器,从而使得系统具有实数特征根,并要求要有一个根的模值要大于5,而特征根是正数是系统不稳定,这样的设计是无意义的,故而不妨设采用状态反馈后的两个期望特征根为-7,-9,这样满足题目中所需的要求。

(1)要对系统进行状态反馈的设计首先要判断其是否能控,即求出该系统的能控性判别矩阵,然后判断其秩,从而得出其是否可控;判断能控程序设计如下:>> A=[-0.8 0.02;-0.02 0];B=[0.05 1;0.001 0];Qc=ctrb(A,B)Qc =0.0500 1.0000 -0.0400 -0.80000.0010 0 -0.0010 -0.0200Rc=rank(Qc)Rc =2Qc =0.0500 1.0000 -0.0400 -0.80000.0010 0 -0.0010 -0.0200得出结果能控型判别矩阵的秩为2,故而该系统是完全可控的,故可以对其进行状态反馈设计。

(2)求取状态反馈器中的K,设的期望特征根为-7,-9;其设计程序如下:>> A=[-0.8 0.02;-0.02 0];B=[0.05 1;0.001 0];P=[-7 -9];k=place(A,B,P)k =1.0e+003 *-0.0200 9.00000.0072 -0.4500程序中所求出的k即为所求状态反馈控制器的状态反馈矩阵,即由该状态反馈矩阵所构成的状态反馈控制器能够满足题目要求。

2、(a)要求求该系统的能控型矩阵,并验证该系统是不能控的。

设计程序:>> A=[0 1 0 0 0;-0.1 -0.5 0 0 0;0.5 0 0 0 0;0 0 10 0 0;0.5 1 0 0 0];>> B=[0;1;0;0;0];>> C=[0 0 0 1 0];>> Qc=ctrb(A,B)Qc =0 1.0000 -0.5000 0.1500 -0.02501.0000 -0.5000 0.1500 -0.0250 -0.00250 0 0.5000 -0.2500 0.07500 0 0 5.0000 -2.50000 1.0000 0 -0.1000 0.0500>> Rc=rank(Qc)Rc =4从程序运行的结果可得,系统能控型判别矩阵的秩为4,而系统为5阶系统,故而就验证了该系统为不可控的。

实验八matlab状态空间分析

实验八matlab状态空间分析

实验八 线性系统的状态空间分析§8.1 用MATLAB 分析状态空间模型1、状态空间模型的输入线性定常系统状态空间模型x Ax Buy Cx Du =+=+将各系数矩阵按常规矩阵形式描述。

[][][]11121120101;;;n n n nn n n A a a a a a a B b b b C c c c D d ====在MATLAB 里,用函数SS()来建立状态空间模型(,,,)sys ss A B C D =例8.1 已知某系统微分方程22d d 375d d y yy u t t ++=求该系统的状态空间模型。

解:将上述微分方程写成状态空间形式0173A ⎡⎤=⎢⎥--⎣⎦,01B ⎡⎤=⎢⎥⎣⎦[]50C =,0D =调用MATLAB 函数SS(),执行如下程序% MATLAB Program example 6.1.mA=[0 1;-7 -3];B=[0;1];C=[5 0];D=0;sys=ss(A,B,C,D)运行后得到如下结果a =x1 x2x1 0 1x2 -7 -3b =u1x1 0x2 1c =x1 x2y1 5 0d =u1y1 0Continuous-time model.2、状态空间模型与传递函数模型转换状态空间模型用sys表示,传递函数模型用G表示。

G=tf(sys)sys=ss(G)状态空间表达式向传递函数形式的转换G=tf(sys)Or [num,den]=ss2tf(A,B,C,D)多项式模型参数[num,den]=ss2tf(A,B,C,D,iu)[z,p,k]=ss2zp(A,B,C,D,iu)零、极点模型参数iu用于指定变换所需的输入量,iu默认为单输入情况。

传递函数向状态空间表达式形式的转换sys=ss(G)or [A,B,C,D]=tf2ss(num,den)[A,B,C,D]=zp2ss(z,p,k)例8.211122211220.560.050.03 1.140.2500.1101001x x u x x u y x y x -⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦⎣⎦⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦试用矩阵组[a ,b ,c ,d]表示系统,并求出传递函数。

状态空间模型分析实验报告

状态空间模型分析实验报告
num = 5 -25 30
den = 1 0 -3 2
z =3.0000
2.0000
p = -2.0001
1.3397
0.999999984416603
k = 5
ssG =
a =
x1 x2 x3
x1 0 1.5 -1
x2 2 0 0
x3 0 1 0
b =
u1
x1 8
x2 0
x3 0
c =
x1 x2 x3
den=conv(conv([1,-1],[1 -1]),[1 2])%传递函数分母多项式
tfG=tf(num,den);%传函的分式形式
zpG=zpk(tfG);%转换成零极点模型
[z,p,k]=zpkdata(zpG,'v')%列出零极点及比例系数
ssG=ss(tfG)%转换成状态空间形式
结果:
代码:
A=[0 1;-3 -4];
B=[0;1];
co=ctrb(A,B);
det(ob)
结果:
det(ob)=-1;所以系统是能控的
代码:
A=[0 1;-3 -4];
B=[0;1];
C=[3 2];
D=[0];
P=[-4 -5]
K=place(A,B,P)
t=0:0.01:5;
U=0.025*ones(size(t));%幅值为0.025输入阶跃信号
按能控性分解后的系统状态空间表达式为:
故此二维子系统是能控的。
能观性分解
代码:
[a2,b2,c2,t,k]=obsvf(A,B,C)%能观性分解
结果:
a2 = -1.0000 1.3416 3.8341

利用MATLAB对状态空间模型进行分析

利用MATLAB对状态空间模型进行分析

利用MATLAB对状态空间模型进行分析(一)状态空间模型的引入
状态空间模型是一种概率统计模型,它利用了状态变量和观测变量来描述系统的特性,可以用来模拟复杂的或不可观测的动态过程。

状态空间模型的核心思想是,将动态系统的状态变量和观测变量分别建模,并用一组数学方程表示整个系统。

这样,状态空间模型可以更好地揭示动态系统的特性,从而更好地进行控制和优化。

(二)状态空间模型的形式
状态空间模型由两部分组成:状态转移方程和观测方程。

状态转移方程用于描述系统的状态变量的动态变化,而观测方程则用于表示系统的观测变量的变化趋势。

状态转移方程可以表示为:
x_t = A_tx_{t-1} + B_tu_t + ν_t
其中,x_t表示状态变量的确定值,A_t表示状态转移矩阵,B_t表示输入矩阵,u_t表示输入信号,ν_t表示噪声。

观测方程可以表示为:
y_t = C_tx_t + D_tu_t + ε_t
其中,y_t表示观测变量的确定值,C_t表示观测矩阵,D_t表示输出矩阵,u_t表示输入信号,ε_t表示噪声。

(三)MATLAB绘制状态空间模型
1.为了完成状态空间模型的绘制,首先需要利用MATLAB来定义状态转移方程与观测方程的矩阵参数。

matlab实验报告总结

matlab实验报告总结

matlab实验报告总结1.求一份matlab的试验报告计算方法试验报告3【实验目的】检查各种数值计算方法的长期行为【内容】给定方程组x'(t)=ay(t),y'(t)=bx(t), x(0)=0, y(0)=b的解是x-y 平面上的一个椭圆,利用你已经知道的算法,取足够小的步长,计算上述方程的轨道,看看那种算法能够保持椭圆轨道不变。

(计算的时间步长要足够多)【实验设计】用一下四种方法来计算:1. Euler法2. 梯形法3. 4阶RK法4. 多步法Adams公式【实验过程】1. Euler法具体的代码如下:clear;a=2;b=1;A=[0 a; -b0];U=[];u(:,1)=[0;b];n=1000000;h=6*pi/n;fori=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5; u(:,i+1)=u(:,i)+h*A*u(:,i);endt=1:n+1;subplot(1, 2,1);plot(1:n,delta);gridon;subplot(1,2,2);plot(u(1,:),u(2,:));gridon;max(abs(delta-ones(1,length(delta))));结果如下:2. 梯形法具体的代码如下:clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=300;h=6*pi/n;for i=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;v1=u(:,i)+h*A*u(:,i);v2=u(:,i)+h*A*(u(:,i)+v1)/2;1u(:,i+1)=u(:,i)+h*A*(u(:,i)+v2)/2;endt=1:n+1;sub plot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下 3. 4阶RK法clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=70;h=6*pi/n;for i=1:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;k1=A*u(:,i); k2=A*(u(:,i)+h/2*k2); k3=A*(u(:,i)+h*k3); k4=A*(u(:,i)+h*k3); u(:,i+1)=u(:,i)+h/6*(k1+2*k2+2*k3+k4);endt=1:n+1 ;subplot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下:4. 多步法Adams公式clear;a=2;b=1;A=[0 a; -b 0];U=[];u(:,1)=[0;b];n=200;h=6*pi/n;u(:;2)=u(u,1)+h*A*u(:,1);u(:;3)=u(u,2)+h/2*A*(3*u(:,2)-u(:,1));u(:;4)=u(u,3)+h/12*A*(23*u(:,3)-16*u(:,2)+5*u(:, 1)); delta(1)=((u(1,1)/a)^2+(u(2,1)/b^2)^0.5 delta(2)=((u(1,2)/a)^2+(u(2,2)/b^2)^0.5delta(3)=((u(1,3)/a)^2+(u(2,3)/b^2)^0.5for i=4:n delta(i)=((u(1,i)/a)^2+(u(2,i)/b)^2)^0.5;u(:,i+1)=u(:,i)+h/24*A*(55*u(:,i)-59*u(:,i-1)+37 *u(:,i-1)+37*u(:,i-2)-9*u(:,i-3));endt=1:n+1;sub plot(1,2,1);plot(1:n,delta);gridon;subplot(1,2,2);结果如下:【实验分析】通过这几种方法对比,发现最为稳定的是多步法Adams公式和4阶RK法,其次是梯形法,而欧拉法最为不稳定。

Matlab实验报告8

Matlab实验报告8

三、实验内容及要求1、利用help 命令学习上述函数命令的用法,自行练习。

2、已知一阶系统传递函数为**,输入为正弦信号,求输出。

编写程序,将输入和响应曲线画于同一图上。

num=[1];den=[1 1];sys=tf(num,den);t=0:0.01:10;u=sin(t);[y,x]=lsim(sys,u,t)Plot(t,y,t,u) ;gridlegend('输入u=sin(t ','响应y')012345678910-1-0.8-0.6-0.4-0.20.20.40.60.81输入u=sin(t)响应y3、已知二阶系统传递函数为**,当wn =1 时,试计算当阻尼比值从0.1 到1 时二阶系统的阶跃响应。

编写程序,将响应曲线画于同一图上,并加上标注。

clc;clear;t=linspace(0,20,200);omega=1;omega2=omega^2;zuni=[0.1,0.3,0.5,0.7,0.1];num=omega2;for k=1:5den=[1 2*zuni*omega omega2];sys=tf(num,den);y(k)=step(sys,t);endfigure;plot(t,y(:,1:5));grid;gtext('zuni=0.1');gtext('zuni=0.3');gtext('zuni=0.5');gtext ('zuni=0.7');gtext('zuni=1');clc;clear;x=0:0.01:20;omega=1;omega2=omega*omega;num=omega2;for zuni=0.1:0.1:1;den=[1 2*zuni*omega omega2];sys=tf(num,den);[y,t]=step(sys,x);plot(t,y);grid;hold onend;4、二阶系统为**,编写程序,求系统的根、阻尼比、无阻尼震荡频率和响应曲线,计算(注意不是从响应图上读出)出峰值、峰值时间和过渡时间,并与理论公式计算值比较。

用MATLAB分析状态状态空间模型

用MATLAB分析状态状态空间模型
num=6; den=[1 6 11 6]; Gtf=tf(num,den); Gss=ss(Gtf),
a =
x1 x2 x3
x1 -6 -1.375 -0.09375
x2 8 0 0
x3 0 8 0
b =
u1
x1 0.25
x2 0
x3 0
c =
x1 x2 x3
y1 0 0 0.375
d =
u1
y1 0
(3)将给定传递函数转换为对角标准型或约当标准型。再将得到的对角标准型或约当
标准型用函数tf( )转换为传递函数,并与原传递函数进行比较。
(3)A=[0 1 0 0;0 -1 1 0;0 0 -1 1;0 0 0 -3];B=[0 0 0 2]';C=[2 0 0 0];D=0;
sys=ss(A,B,C,D);[V,J]=jordan(A);sys1=ss2ss(sys,inv(V))
x2 0 -1 10
x3 0 0 -1 1
x4 0 0 0 -3
b =
u1
x1 0
x2 0
x3 0
x4 2
c =
x1 x2 x3 x4
y1 2 0 0 0
d =
u1
y1 0
Gtf=tf(Gss)
Transfer function:
4
-------------------------
s^4 + 5 s^3 + 7 s^2 + 3 s
(2)用ss2ss函数进行相似变换将其转换为对角标准型。
>> A=[-6 -1.375 -0.09375;8 0 0;0 8 0];B=[0.25 0 0]';C=[0 0 0.375];D=0;

matlab 实验报告

matlab 实验报告

matlab 实验报告Matlab 实验报告引言:Matlab(Matrix Laboratory)是一种强大的科学计算软件,它为科学家、工程师和研究人员提供了一个强大的计算环境。

本实验报告旨在介绍我对Matlab的实验结果和使用体验,以及对其优点和局限性的思考。

一、Matlab的基本功能和特点Matlab是一种高级编程语言和开发环境,它具有广泛的数学和工程计算功能。

通过Matlab,我可以进行矩阵运算、数值计算、数据可视化、算法开发等一系列操作。

Matlab的语法简洁易懂,可以快速实现复杂的计算任务。

此外,Matlab还提供了大量的工具箱,如信号处理、控制系统、图像处理等,使得各种领域的科学研究和工程应用变得更加便捷。

二、实验结果与应用案例在本次实验中,我选择了一个经典的数值计算问题——求解非线性方程。

通过Matlab的数值计算能力,我可以使用不同的迭代方法来求解方程的根。

在实验中,我使用了牛顿迭代法、二分法和割线法来求解方程。

通过对比这些方法的收敛速度和精度,我得出了不同方法的优缺点。

在实际应用中,Matlab可以广泛应用于信号处理、图像处理、数据分析等领域。

例如,在信号处理中,我可以使用Matlab的信号处理工具箱来进行滤波、频谱分析等操作。

在图像处理中,我可以利用Matlab的图像处理工具箱进行图像增强、边缘检测等操作。

这些应用案例充分展示了Matlab在科学计算和工程应用中的重要性和灵活性。

三、Matlab的优点1. 强大的计算功能:Matlab提供了丰富的数学和工程计算函数,可以高效地进行复杂的计算任务。

2. 简洁的语法:Matlab的语法简洁易懂,使得编程变得更加高效和便捷。

3. 丰富的工具箱:Matlab提供了大量的工具箱,覆盖了各种领域的科学计算和工程应用需求。

4. 可视化能力强:Matlab提供了丰富的绘图函数,可以直观地展示数据和计算结果。

四、Matlab的局限性1. 高昂的价格:Matlab是一款商业软件,其价格较高,对于个人用户而言可能不太容易承受。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验八 线性系统的状态空间分析§8.1 用MATLAB 分析状态空间模型1、状态空间模型的输入线性定常系统状态空间模型x Ax Bu y Cx Du=+=+ 将各系数矩阵按常规矩阵形式描述。

[][][]11121120101;;;n n n nn n n A a a a a a a B b b b C c c c D d ====在MA TLAB 里,用函数SS()来建立状态空间模型(,,,)sys ss A B C D =例8.1 已知某系统微分方程22d d 375d d y y y u t t++= 求该系统的状态空间模型。

解:将上述微分方程写成状态空间形式0173A ⎡⎤=⎢⎥--⎣⎦,01B ⎡⎤=⎢⎥⎣⎦[]50C =,0D =调用MATLAB 函数SS(),执行如下程序% MATLAB Program example 6.1.mA=[0 1;-7 -3];B=[0;1];C=[5 0];D=0;sys=ss(A,B,C,D)运行后得到如下结果a =x1 x2x1 0 1x2 -7 -3b =u1x1 0x2 1c =x1 x2y1 5 0d =u1y1 0Continuous-time model.2、状态空间模型与传递函数模型转换状态空间模型用sys 表示,传递函数模型用G 表示。

G=tf(sys)sys=ss(G)状态空间表达式向传递函数形式的转换G=tf(sys)Or [num,den]=ss2tf(A,B,C,D) 多项式模型参数[num,den]=ss2tf(A,B,C,D,iu)[z,p,k]=ss2zp(A,B,C,D,iu) 零、极点模型参数iu 用于指定变换所需的输入量,iu 默认为单输入情况。

传递函数向状态空间表达式形式的转换sys=ss(G)or [A,B,C,D]=tf2ss(num,den)[A,B,C,D]=zp2ss(z,p,k)例 8.211122211220.560.050.03 1.140.2500.1101001x x u x x u y x y x -⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦⎣⎦⎡⎤⎡⎤⎡⎤=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦ 试用矩阵组[a ,b ,c ,d]表示系统,并求出传递函数。

% MATLAB Program example 6.2.ma=[-0.56 0.05;-0.25 0];b=[0.03 1.14;0.11 0];c=[1 0;0 1];d=zeros(2,2);sys=ss(a,b,c,d)G1=tf(sys)G2=zpk(sys)运行后得到如下结果a =x1 x2x1 -0.56 0.05x2 -0.25 0b =u1 u2x1 0.03 1.14x2 0.11 0c =x1 x2y1 1 0y2 0 1d =u1 u2y1 0 0y2 0 0Continuous-time model.Transfer function from input 1 to output...0.03 s + 0.0055#1: ---------------------s^2 + 0.56 s + 0.01250.11 s + 0.0541#2: ---------------------s^2 + 0.56 s + 0.0125Transfer function from input 2 to output...1.14 s#1: ---------------------s^2 + 0.56 s + 0.0125-0.285#2: ---------------------s^2 + 0.56 s + 0.0125Zero/pole/gain from input 1 to output...0.03 (s+0.1833)#1: ----------------------(s+0.5367) (s+0.02329)0.11 (s+0.4918)#2: ----------------------(s+0.5367) (s+0.02329)Zero/pole/gain from input 2 to output...1.14 s#1: ----------------------(s+0.5367) (s+0.02329)-0.285#2: ----------------------(s+0.5367) (s+0.02329)例8.3 考虑下面给定的单变量系统传递函数3243272424()10355024s s s G s s s s s +++=++++ 由下面的MATLAB 语句直接获得状态空间模型。

>> num=[1 7 24 24];>> den=[1 10 35 50 24];>> G=tf(num,den);>> sys=ss(G)运行后得到如下结果:a =x1 x2 x3 x4x1 -10 -4.375 -3.125 -1.5x2 8 0 0 0x3 0 2 0 0x4 0 0 1 0b =u1x1 2x2 0x3 0x4 0c =x1 x2 x3 x4y1 0.5 0.4375 0.75 0.75d =u1y1 0Continuous-time model.3. 线性系统的非奇异变换与标准型状态空间表达式syst=ss2ss(sys,T)sys, syst 分别为变换前、后系统的状态空间模型,T 为非奇异变换阵。

[At,Bt,Ct,Dt]=ss2ss(A,B,C,D,T)(A,B,C,D)、(At,Bt,Ct,Dt )分别为变换前、后系统的状态空间模型的系数矩阵。

§8.2 利用MATLAB 求解系统的状态方程线性定常连续系统状态方程x Ax Bu =+,0(0)x x =,0t ≥状态响应00()()()()d tx t t x t Bu φφτττ=+-⎰, 0t ≥ 式中状态转移矩阵()At t e φ=,则有()0()(0)()d tAt A t x t e x e Bu τττ-=+⎰, 0t ≥ 1. 用MATLAB 中expm(A)函数计算状态转移矩阵At e例8.4 022130x x u -⎡⎤⎡⎤=+⎢⎥⎢⎥-⎣⎦⎣⎦,1(0)1x ⎡⎤=⎢⎥⎣⎦,0u = ①求当0.2t =时,状态转移矩阵即0.2Att e =;>> A=[0 -2;1 -3];>> dt=0.2;>> phi=expm(A*dt)得到如下结果phi =0.9671 -0.29680.1484 0.5219②计算0.2t =时系统的状态响应110.2220.2(0)0.96710.29680.6703(0)(0)0.14840.52190.6703At t t x x e x x x ==-⎡⎤⎡⎤⎡⎤⎡⎤=⋅==⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦2. 用step(),impulse() 求阶跃输入,脉冲输入响应例8.5 连续二阶系统[]111222120.75240.7268110.72680022.87768.9463x x u x x u x y x ---⎡⎤⎡⎤⎡⎤⎡⎤⎡⎤=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦⎣⎦⎡⎤=⎢⎥⎣⎦求系统的单位阶跃响应% MATLAB Program of example 4.5.mA=[-0.7524 -0.7268;0.7268 0];B=[1 -1;0 2];C=[2.8776 8.9463];D=0;step(A,B,C,D);figure(1)grid on ;title('单位阶跃响应')xlabel('时间')ylabel('振幅')运行结果3. 用initial()函数,求系统的零输入响应[y,t,x]=initial(sys,x 0)6.5例中,当输入0u =时,状态初值[](0)0.20.2x =A=[-0.7524 -0.7268;0.7268 0];B=[1 -1;0 2];C=[2.8776 8.9463];D=0;t=[0:0.01:15];u=0;sys=ss(A,B,C,D);x0=[0.2 0.2];[y,t,x]=initial(sys,x0,t)plot(t,x) 运行结果§8.3 系统的可控性与可观性分析1. 线性定常系统的可控性分析x Ax Bu y Cx Du=+=+ 可控性矩阵21[,,,,]n c u B AB A B A B -=,系统完全可控 rank c u n =。

在MA TLAB 中,可用(,)ctrb A B 函数求可控性矩阵c u ctrb(A,B)例 8.6 120011101000111x x u ⎡⎤⎡⎤⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦, 判断系统的可控性。

℅MA TLAB program of example 6.6.mA=[1 2 0;1 1 0;0 0 1];B=[0 1;1 0;1 1];n=3;CAM=ctrb(A,B);rcam=rank(CAM);if rcam==ndisp('system is controlled') elseif rcam<ndisp('system is not controlled') end执行结果system is controlled例8.72220,010,12612 x Ax bu A b--⎡⎤⎡⎤⎢⎥⎢⎥=+=-=⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦将该系统状态方程转换为可控标准型。

变换矩阵111111,[0,,0,1]cnPP AP P u P A--⎡⎤⎢⎥⎢⎥==⎢⎥⎢⎥⎣⎦℅MA TLAB Program of example 6.7.mA=[-2 2 -2;0 -1 0;2 -6 1];b=[0;1;2];s=ctrb(A,b);if det(s)~=0s1=inv(s);endP=[s1(3,:);s1(3,:)*A;s1(3,:)*A*A]; PT=inv(P);A1=P*A*PT%(Ac=PAP^)b1=P*b%(bc=P*b)运行结果A1 =0.0000 1.0000 -0.0000-0.0000 0 1.0000-2.0000 -3.0000 -2.0000b1 =1.0000这样可得可控标准型矩阵110100001,02321c c A A b b ⎡⎤⎡⎤⎢⎥⎢⎥====⎢⎥⎢⎥⎢⎥⎢⎥---⎣⎦⎣⎦2. 线性定常系统的可观性分析x Ax Bu y Cx Du =+⎧⎨=+⎩可观性矩阵01n C CA U CA -⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦系统可观 0rankU n =在MA TLAB 中,可用函数obsv(A,C)确定可观性矩阵。

相关文档
最新文档