实验一 MATLAB系统的传递函数和状态空间表达式的转换
实验一 MATLAB系统的传递函数和状态空间表达式的转换.

实验一 MATLAB 系统的传递函数和状态空间表达式的转换一、 实验目的1、学习多变量系统状态空间表达式的建立方法;2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数之间相互转换的方法;3、掌握相应的MATLAB 函数。
二、 实验原理设系统的模型如式(1.1)所示:⎩⎨⎧+=+=DCx y Bu Ax x ' x ''R ∈ u ∈R ’’’ y ∈R P (1.1) 其中A 为nXn 维系统矩阵、B 为nXm 维输入矩阵、C 为pXn 维输出矩阵,D 为直接传递函数。
系统的传递函数和状态空间表达式之间的关系如式(1.2)所示G(s)=num(s)/den(s)=C (SI-A)-1 B+D (1.2)式(1.2)中,num(s)表示传递函数的分子阵,其维数是pXm ,den(s)表示传递函数的按s 降幂排列的分母。
表示状态空间模型和传递函数的MATLAB 函数如下:函数ss (state space 的首字母)给出了状态空间模型,其一般形式是: sys=ss(A,B,C,D)函数tf (transfer function 的首字母)给出了传递函数,其一般形式是: G=tf(num ,den)其中num 表示传递函数中分子多项式的系数向量(单输入单输出系统),den 表示传递函数中分母多项式的系数向量。
函数tf2ss 给出了传递函数的一个状态空间实现,其一般形式是:[A,B,C,D]=tf2ss(num,den)函数ss2tf 给出了状态空间模型所描述系统的传递函数,其一般形式是:[num,den]=ss2tf(A,B,C,D,iu)其中对于多输入系统,必须确定iu 的值。
例如,若系统有三个输入u 1,u 2,u 3,则iu 必须是1、2、或3,其中1表示u 1,2表示u 2,3表示u 3。
该函数的结果是第iu 个输入到所有输出的传递函数。
三.实验步骤及结果1、应用MATLAB 对下列系统编程,求系统的A 、B 、C 、D 阵,然后验证传递函数是相同的。
《自动控制原理》MATLAB中的传递函数模型实验

《自动控制原理》MATLAB中的传递函数模型实验一、实验目的1、熟练运用matlab软件,求解控制系统数学模型2、掌握传递函数在matlab中的表达方法3、掌握matlab求解拉氏变换和反变换4、掌握matlab求系统极值点和零点判断系统稳定性二、实验仪器Matlab2014b版三、实验原理(一)MATLAB中的传递函数模型传递函数在matlab中的表达方法控制系统的传递函数模型为:在MATLAB中,分子/分母多项式通过其系数行向量表示,即:num = [b0 b1 … bm]den = [a0 a1 … an]此时,系统的传递函数模型用tf函数生成,句法为:sys=tf(num, den) 其中,sys为系统传递函数。
如:num = [1 5 0 2]; den = [2 3 15 8];则:sys=tf(num, den)输出为:Transfer function:若控制系统的模型形式为零极点增益形式:此时,系统的传递函数模型用zpk函数生成,句法为:sys=zpk(z, p, k)。
zpk函数也可用于将传递函数模型转换为零极点增益形式,句法为:zpksys=zpk(sys)如:z=[-0.5 -1 -3]; p=[1 -2 -1.5 -5]; k=10;sys=zpk(z, p, k)传递函数的转换[num,den]=zp2tf(z,p,k)[z,p,k]=tf2zp(num,den)实际系统往往由多个环节通过串联、并联及反馈方式互连构成。
MATLAB提供的三个用于计算串联、并联及反馈连接形成的新系统模型的函数。
series函数计算两子系统串联后的新系统模型。
句法:sys = series(sys1, sys2)sys1, sys2分别为两子系统模型parallel函数计算两子系统并联后的新系统模型。
句法: sys = parallel(sys1, sys2)feedback函数计算两子系统反馈互联后的新系统模型。
现代控制原理matlab实验报告1

现代控制原理matlab实验报告实验一.利用MATLAB进行线性系统的模型转换及联结一.实验目的1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数、零极点模型之间相互转换的方法;2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。
3、通过编程、上机调试,掌握系统模型的联结方法。
二.实验步骤1、根据所给系统的已知条件,如传递函数、零极点模型或(A 、B 、C 、D ),实现状态空间模型、传递函数模型、零极点增益模型之间的转换,采用MATLAB 的相关函数编写m -文件。
2、应用系统建模工具,并联、串联、闭环、反馈等函数解决实际问题。
3、在MA TLAB 界面下调试程序。
三.实验要求1.在运行以上例程序的基础上,应用MA TLAB 求下面传递函数阵的状态空间实现232252()234s s s G s s s s +⎡⎤⎢⎥++⎣⎦=+++提示:num =[0 0 1 2;0 1 5 3] 解:num=[0 0 1 2;0 1 5 2]; den=[1 2 3 4];[A,B,C,D]=tf2ss(num,den) A =-2 -3 -4 1 0 0 0 1 0 B =1 0 0 C =0 1 2 1 5 2 D =0 02.一个双输入双输出系统112233412311022711353x x x x u x x -⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦11223120011x y x y x ⎡⎤⎡⎤⎡⎤⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦求出此模型的能控标准型和能观标准型。
提示:写出两个子系统的传递函数模型,进而求出这两个传递函数模型的能控标准型实现或能观标准型实现,讨论是否能通过子系统的能控标准型实现或能观标准型实现求出原来系统的能控标准型和能观标准型。
解:A=[4 1 -2;1 0 2;1 -1 3]; B=[3 1;2 7;5 3]; C=[1 2 0;0 1 1]; D=[0];[num1,den1]=ss2tf(A,B1,C1,D) [num2,den2]=ss2tf(A,B2,C2,D)得到: num1 =0 7.0000 -19.0000 -36.0000den1 =1.0000 -7.0000 15.0000 -9.0000num2 =0 10.0000 -60.0000 98.0000den2 =1.0000 -7.0000 15.0000 -9.0000实验二.利用MATLAB 求取线性系统的状态空间模型的解并分析其稳定性一. 实验目的1、根据状态空间模型分析系统由初始状态和外部激励所引起的响应;2、了解系统稳定性的判定方法(直接法和间接法);3、通过编程、上机调试,掌握系统运动的分析方法。
系统的传递函数阵和状态空间表达式的转换及能控性,能观性分析

实验六 系统的传递函数阵和状态空间表达式的转换及能控性,能观性分析一、实验目的1、学习多变量系统状态空间表达式的建立方法、了解统状态空间表达式与传递函数相互转换的方法;2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。
3、学习多变量系统状态能控性及稳定性分析的定义及判别方法;4、学习多变量系统状态能观性及稳定性分析的定义及判别方法;5、通过用MA TLAB 编程、上机调试,掌握多变量系统能控性及稳定性判别方法。
二、实验原理设系统的模型如式(1-1)示。
p m n R y R u R x D Cx y Bu Ax x ∈∈∈⎩⎨⎧+=+= (1-1) 其中A 为n ×n 维系数矩阵、B 为n ×m 维输入矩阵 C 为p ×n 维输出矩阵,D 为传递阵,一般情况下为0,只有n 和m 维数相同时,D=1。
系统的传递函数阵和状态空间表达式之间的关系如式(1-2)示。
D B A SI C s den s num s G +-==-1)()()(()( (1-2) 式(1.2)中,)(s num 表示传递函数阵的分子阵,其维数是p ×m ;)(s den 表示传递函数阵的按s 降幂排列的分母。
1. 设系统的状态空间表达式p m n R y R u R x D Cx y Bu Ax x ∈∈∈⎩⎨⎧+=+= (2-1) 系统的能控分析是多变量系统设计的基础,包括能控性的定义和能控性的判别。
系统状态能控性的定义的核心是:对于线性连续定常系统(2-1),若存在一个分段连续的输入函数U (t ),在有限的时间(t 1-t 0)内,能把任一给定的初态x (t 0)转移至预期的终端x (t 1),则称此状态是能控的。
若系统所有的状态都是能控的,则称该系统是状态完全能控的。
2. 系统输出能控性是指输入函数U (t )加入到系统,在有限的时间(t1-t0)内,能把任一给定的初态x (t0)转移至预期的终态输出y (t1)。
实验一利用MATLAB进行线性系统的模型转换季联结

现代控制理论第一次上机实验报告实验 一 利用MATLAB 进行线性系统的模型转换及联结实验步骤:1、根据所给系统的已知条件,如传递函数、零极点模型或(A 、B 、C 、D ),实现状态空间模型、传递函数模型、零极点增益模型之间的转换,采用MA TLAB 的相关函数编写m-文件。
2、应用系统建模工具,并联、串联、闭环、反馈等函数解决实际问题。
3、在MA TLAB 界面下调试程序。
实验要求:1.在运行以上例程序的基础上,应用MA TLAB 求下面传递函数阵的状态空间实现232252()234s s s G s s s s +⎡⎤⎢⎥++⎣⎦=+++ 提示:num =[0 0 1 2;0 1 5 3]解:执行以下m-文件>> num=[0 0 1 2; 0 1 5 3];>> den=[1 2 3 4];>> [A,B,C,D]=tf2ss(num,den)得到A =-2 -3 -41 0 00 1 0B =1C =0 1 21 5 3D =2.一个双输入双输出系统112233412311022711353x x x x u x x -⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎣⎦⎣⎦⎣⎦⎣⎦&&& 11223120011x y x y x ⎡⎤⎡⎤⎡⎤⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎢⎥⎣⎦求出此模型的能控标准型和能观标准型。
提示:写出两个子系统的传递函数模型,进而求出这两个传递函数模型的能控标准型实现或能观标准型实现,讨论是否能通过子系统的能控标准型实现或能观标准型实现求出原来系统的能控标准型和能观标准型。
解:这是一个2输入2输出系统。
描述该系统的传递函数是一个22⨯维矩阵,它包括4个传递函数:11122122()()()()()()()()Y s U s Y s U s Y s U s Y s U s ⎡⎤⎢⎥⎣⎦当考虑输入1u 时,可设2u 为零,反之亦然。
matlabtf状态空间转传递函数

一、概述Matlab是一种流行的数学软件,可以用于数据分析、图形绘制、模拟和建模等多种领域。
在控制系统工程中,建立系统模型是非常重要的一部分,而状态空间和传递函数是两种描述系统动态特性的常用方法。
本文将介绍如何在Matlab中进行状态空间到传递函数的转换,以及该过程的具体步骤和应用。
二、状态空间模型1.状态空间模型的表示状态空间模型是描述线性时不变系统动态特性的一种数学模型。
它通常表示为矩阵形式:x' = Ax + Buy = Cx + Du其中,x是系统的状态变量,u是输入,y是输出,A、B、C、D分别是系统的状态方程和输出方程的系数矩阵。
2.状态空间模型在Matlab中的表示在Matlab中,可以使用矩阵的形式来表示状态空间模型。
可以使用以下代码定义一个状态空间模型:A = [1 2; 3 4];B = [5; 6];C = [7 8];D = 9;sys = ss(A, B, C, D);其中,A、B、C、D分别是状态空间模型的系数矩阵,sys是表示状态空间模型的对象。
三、传递函数模型1.传递函数模型的表示传递函数模型是描述系统输入与输出之间关系的一种数学模型。
它通常表示为分子多项式和分母多项式的比值:G(s) = N(s) / D(s)其中,N(s)和D(s)分别是分子多项式和分母多项式。
2.传递函数模型在Matlab中的表示在Matlab中,可以使用tf函数来定义一个传递函数模型。
可以使用以下代码定义一个传递函数模型:num = [1 2];den = [3 4 5];sys = tf(num, den);其中,num和den分别是传递函数模型的分子多项式和分母多项式,sys是表示传递函数模型的对象。
四、状态空间到传递函数的转换在Matlab中,可以使用tf函数将状态空间模型转换为传递函数模型。
具体步骤如下:1. 使用ss2tf函数将状态空间模型转换为传递函数的分子多项式和分母多项式。
利用MATLAB进行系统模型之间的相互转换

J=[-2+j*4 0 0;0 -2-j*4 0;0 0 -10]; JJ=poly(J) JJ=
1 14 60 200 aa1=JJ(2);aa2=JJ(3);aa3=JJ(4); %*****State feedback gain matrix K can be given by ***** K=[aa3-a3 aa2-a2 aa1-a1]*(inv(P)) K=
%*****Enter matrices A and B*****
A=[0 1 0;0 0 1;-1 -5 -6]; B=[0;0;1];
%***** Define the controllability matrix Q*****
Q=[B A*B A^2*B];
%*****Check the rank of matrix Q*****
利用 MATLAB 求解极点配置问题
用 MATLAB 易于求解极点配置问题。现在我们来 求解系统方程为
x& = Ax + Bu
式中
⎡0 1 0 ⎤
⎡0⎤
A = ⎢⎢0 0 1 ⎥⎥,B = ⎢⎢0⎥⎥
⎢⎣− 1 −5 −6⎥⎦
⎣⎢1 ⎥⎦
采用状态反馈控制u = −Kx ,希望系统的闭环极
点为 s =μi(i=1,2,3),其中
s3
+ 14s2
s +
56s
+ 160
(1.22)
对该系统,有多个(无穷多个)可能的状态空间表达式, 其中一种可能的状态空间表达式为:
⎡ x&1 ⎤ ⎡0 1
⎢ ⎢
x& 2
⎥ ⎥
=
⎢⎢0
0
⎢⎣ x&3 ⎥⎦ ⎢⎣−160
传递函数到状态空间的实现.docx

实验题目:传递函数到状态空间的实现 课程名称:计算机仿真 一、实验目的1、 理解并掌握传递函数转换为状态空间方程的方法2、 理解状态初值的计算方法二、 实验内容1、 应用MATLAB 编写一个可以实现传递函数到状态空间方程的可控可观规范型的ni 文件。
并用相应例题验证程序的止确性。
2、 完善该程序使具可以用來计算状态初值。
并用相应的例题验证程序 的正确性。
3、 程序中需要考虑分子分母同阶以及分母首系数不为1的两种情况。
三、 报告内容1、 给出m 文件的程序框图,及验证结果,并记录出现的错误,并给出 解决的方案。
若没有得到解决,请说清楚你的问题2、 如呆做了程序的状态初值得求解,请给岀相应的验证结杲,及程序 编写过程中出现的问题,若已经解决,给出貝体方法。
能观标准型为:2、计算状态变量初值:(1)不含u 的导数项时,则冇:A= • 0 0 •■1 0• •0 1■ ■… 0 ■…• • ••B=O' 0 ■ ■~a n~a n-l~a n-l…一如・丄Z?o s n +b 1s n "1+•••+d n ^1s+c n+…+01八一]s+a 八那么其状态空间模型能控标准型为:C=[(b n — bo (z n ) (&n _i — …@1 —加血)] D=b n!1!实验理论传递函数为G(s)=1、 力能观=B 能观D 能观和0)X?(O) 1(0)」 yj(o)(2)系统微分方程不仅包含u 的输入项,而口包含u 的导数项,则:五、程序检验(1)输入一个分母首系数为1月.分子分母不同阶传递函数:2S 3+ 4S 2+ 3S + 5 G = -------------------------------S 4 + 2S 3 + 5S 2 + 4S + 2程序运行结果: 能控标准型:A 二0 1 0 00 1 00 0 0 1-2-4-5-2B =兀 1(0)a n-l an-2 …兀2(0)a n-2%一3…七(0) ■ • = an-3•■ • • • • • • ■^-1(0)■ 1 … _ 兀“(0)..10 (x)n xa x 1 y (o )~Cn-l1 0 y (o )一 Cn-2 • •… •■ y(0) ■ •+ _ Cn-3■ ■ ■…0 严)(0)_C]…0 严(()) ■ ■_ 0nxl /ix(n -1)一 C] w(O)〃(()):M(O)•• • ••• :宀(0)0 ]“"-2)(0)(/?-l)xly(0) y(0)5 342D 二能观标准型:A =0 00-21 00-40 10-50 01-2B =5342C =0 001D 二初值部分:请输入系统输出的初值二[1 ;1;1;1]请输入系统输入的初值二[0; 0; 0] x0 二12831运行结果正确(2)输入一个分母首系数为2 口分子分母同阶传递函数:S 2 + 2S + 3G =2S 2 + 5S + 3程序运行结果: 能控标准型:0. 5000初值部分:请输入系统输出的初值二[1;1] 请输入系统输入的初值二[0]xO 二A =0 -1. 5000 B =0 1 C 二1. 5000 D =0. 5000能观标准型:A 二0 1.0000 B =1. 5000 1.5000 C 二1.5000 D =1.0000 -2. 50001. 5000-1. 5000 -2. 50001. 50003. 50001.0000运行结果正确六.流程图七、实验小结通过木次实验我了解了如何通过matlab的编程来实现传递函数转化为状态空间方程的能控和能观性,并掌握了程序的状态初值的求解。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一 MATLAB 系统的传递函数和状态空间表达式的转换一、 实验目的1、学习多变量系统状态空间表达式的建立方法;2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数之间相互转换的方法;3、掌握相应的MATLAB 函数。
二、 实验原理设系统的模型如式(1.1)所示:⎩⎨⎧+=+=DCx y Bu Ax x ' x ''R ∈ u ∈R ’’’ y ∈R P (1.1) 其中A 为nXn 维系统矩阵、B 为nXm 维输入矩阵、C 为pXn 维输出矩阵,D 为直接传递函数。
系统的传递函数和状态空间表达式之间的关系如式(1.2)所示G(s)=num(s)/den(s)=C (SI-A)-1 B+D (1.2)式(1.2)中,num(s)表示传递函数的分子阵,其维数是pXm ,den(s)表示传递函数的按s 降幂排列的分母。
表示状态空间模型和传递函数的MATLAB 函数如下:函数ss (state space 的首字母)给出了状态空间模型,其一般形式是:sys=ss(A,B,C,D)函数tf (transfer function 的首字母)给出了传递函数,其一般形式是:G=tf(num ,den)其中num 表示传递函数中分子多项式的系数向量(单输入单输出系统),den 表示传递函数中分母多项式的系数向量。
函数tf2ss 给出了传递函数的一个状态空间实现,其一般形式是:[A,B,C,D]=tf2ss(num,den)函数ss2tf 给出了状态空间模型所描述系统的传递函数,其一般形式是:[num,den]=ss2tf(A,B,C,D,iu)其中对于多输入系统,必须确定iu 的值。
例如,若系统有三个输入u 1,u 2,u 3,则iu 必须是1、2、或3,其中1表示u 1,2表示u 2,3表示u 3。
该函数的结果是第iu 个输入到所有输出的传递函数。
三.实验步骤及结果1、应用MATLAB 对下列系统编程,求系统的A 、B 、C 、D 阵,然后验证传递函数是相同的。
G(s)= ⎥⎦⎤⎢⎣⎡+++352^12s ss s 3+4s 2+5s+1程序和运行结果:num=[0 0 2 1;0 1 5 3];den=[1 4 5 1];[A,B,C,D]=tf2ss(num,den)A = -4 -5 -11 0 00 1 0B = 1C =0 2 11 5 3D =0A=[-4 -5 -1;1 0 0;0 1 0];A=[-4 -5 -1;1 0 0;0 1 0];B=[1;0;0];C=[0 2 1;1 5 3];D=[0;0];[num1,den1]=ss2tf(A,B,C,D,1)num1 = 0 0.0000 2.0000 1.00000 1.0000 5.0000 3.0000 den1 =1.0000 4.0000 5.0000 1.00002、给定系统G(s)=6112^63^542^+++++s s s s s ,求系统的零极点增益模型和状态空间模型程序和运行结果:num=[0 1 4 5];den=[1 6 11 6];sys=tf(num,den)Transfer function:s^2 + 4 s + 5----------------------s^3 + 6 s^2 + 11 s + 6>> sys1=tf2zp(num,den)sys1 = -2.0000 + 1.0000i-2.0000 - 1.0000i>> [A,B,C,D]=tf2ss(num,den)A =6 -11 -61 0 00 1 0B =1C =1 4 5D =0实验2 状态空间模型系统仿真及状态方程求解一、实验目的1、熟悉线性定常离散与连续系统的状态空间控制模型的输入方法;2、熟悉系统模型之间的转换功能;3、利用MATLAB对线性定常系统进行动态分析。
二、实验原理函数step(sys)给出了系统的单位阶跃响应曲线,其中的sys表示贮存在计算机内的状态空间模型,它可以由函数sys=ss(A,B,C,D)得到。
函数impulse(sys)给出了系统的单位脉冲响应曲线。
函数[y,T,x]=Isim(sys,u,t,x0)给出了一个状态空间模型对任意输入的响应,x0是初始状态。
函数c2d将连续系统状态空间描述转化为离散系统状态空间形式,其一般形式为:[G,H]=c2d(A,B,T),其中的T是离散化模型的采样周期。
函数d2c将离散系统状态空间描述转化为连续系统状态空间描述,其一般形式为:sysc=d2c(sysd,Method),其中的Method默认值为‘zoh’方法,即带零阶保持器的z变换。
函数dstep(G,H,C,D)给出了离散系统的单位阶跃响应曲线。
三、实验步骤及结果程序和运行结果:T=0.5s时T=1s时T=2s时A=[0 1 0;-2 -3 0;-1 1 -3];B=[0;0;1];C=[1 1 1];D=1;[G1 H1]=c2d(A,B,0.5)G1 =0.8452 0.2387 0 -0.4773 0.1292 0-0.3326 0.0508 0.2231 H1 = 00.2590>> dstep(G1,H1,C,D,1)>> dstep(G1,H1,C,D,1)>> [G2 H2]=c2d(A,B,1)G2 =0.6004 0.2325 0-0.4651 -0.0972 0-0.3795 -0.0614 0.0498 H2 =00.3167>> dstep(G2,H2,C,D,1)>> [G3 H3]=c2d(A,B,2)[G3 H3]=c2d(A,B,2)G3 =0.2524 0.1170 0 -0.2340 -0.0987 0-0.2182 -0.0853 0.0025 H3 =00.3325>> dstep(G3,H3,C,D,1)程序和运行结果:Z域仿真图形:连续域仿真图形:程序:G=[0 1;-0.16 1];H=[1;1];C=[1 1];D=0;u=1;dstep(G,H,C,D,u) sysd=ss(G,H,C,D,0.05) a = x1 x2x1 0 1x2 -0.16 1 b = u1x1 1x2 1c = x1 x2y1 1 1d = u1y1 0 Sampling time: 0.05 Discrete-time model.>> sysc=d2c(sysd,'zoh') a = x1 x2x1 -41.43 46.21x2 -7.394 4.779 b = u1x1 16.34x2 21.12c = x1 x2y1 1 1d = u1y1 0 Continuous-time model.>> step(sysc);实验3 能控能观判据及稳定性判据一、实验目的1、利用MATLAB分析线性定常及离散系统的可控性与可观性;2、利用MATLAB判断系统的稳定性。
二、实验原理给定系统状态空间描述[A,B,C,D],函数ctrb(A,B)计算能控性判别矩阵;函数obsv(A,C)计算能观测性判别矩阵;函数P=lyap(A,Q)求解李雅普诺夫方程A T P+PA=-Q,Q为正定对称矩阵;函数[D p]=chol(P)可用于判断P矩阵是否正定,p=0,矩阵正定,p为其它值,矩阵非正定。
三、实验步骤及结果1)(2)A=[1 0 0 0;2 -3 0 0;1 0 -2 0;4 -1 -2 -4];B=[0;0;1;2];C=[3 0 1 0];Qc=ctrb(A,B)Qc =0 0 0 00 0 0 01 -2 4 -82 -10 44 -184>> rank(Qc)ans =2>> rank(obsv(A,C))ans =2能控性判别矩阵Qc和能观性判别矩阵都不满秩,故系统既不能控,也不能观。
(3)A=[1 0 0 0;2 -3 0 0;1 0 -2 0;4 -1 -2 -4];B=[0;0;1;2];C=[3 0 1 0];D=[0];[z,p,k]=ss2zp(A,B,C,D,1);Flagz=0;n=length(A);for i=1:nif real(p(i))>0Flagz=1;endend>> disp('系统的零极点模型为');z,p,k 系统的零极点模型为z = 1.0000-4.0000-3.0000p =-4-3-21k =1.0000>> if Flagz==1disp('系统不稳定');else disp('系统是稳定的');end系统不稳定>> step(A,B,C,D);时间响应曲线为:实验4 状态反馈及状态观测器的设计一、实验目的1、熟悉状态反馈矩阵的求法;2、熟悉状态观测器设计方法。
二、实验原理MATLAB 软件提供了两个函数acker 和place 来确定极点配置状态反馈控制器的增益矩阵K ,函数acker 是基于求解极点配置问题的艾克曼公式,它只能应用到单输入系统,要配置的闭环极点中可以包括多重极点。
函数place 用于多输入系统,但配置极点不可以包括多重极点。
函数acker 和place 的一般形式是:K=acker(A,B,P)K=place(A,B,P)其中的P 是一个向量,P=[n λλλ,...2,1],n λλλ,...2,1是n 个期望的闭环极点。
得到了所要求得反馈增益矩阵后,可以用命令eig(A-B*K)来检验闭环极点。
由状态反馈极点配置和观测器设计问题直接的对偶关系,观测器设计是状态反馈设计的转置,可以用H=(acker(A’,C’,V’))’来确定一般系统的观测器矩阵,用命令eig(estim(sysold,H))来检验极点配置。
三、实验步骤及结果step(A,B,C,D);num=[0 0 1];den=[1 3 2];[A,B,C,D]=tf2ss(num,den)A =-3 -21 0B =1C = 0 1D = 02、配置后系统的时间响应曲线为:A=[-3 -2;1 0];B=[1;0];C=[0 1];D=0;P=[-1+sqrt(-1);-1-sqrt(-1)];K=acker(A,B,P)K = -1 0>> disp('极点配置后的闭环系统为')极点配置后的闭环系统为>> sysnew=ss(A-B*K,B,C,D)a = x1 x2x1 -2 -2x2 1 0b = u1x1 1x2 0c = x1 x2y1 0 1d = u1y1 0 Continuous-time model. >> step(sysnew)所以:K=[-1 0]A=[-3 -2;1 0];B=[1;0];C=[0 1];D=0;V=[-3;-3];. sysold=ss(A,B,C,D);p=eig(A)p =-2-1Q=obsv(A,C);m=rank(Q);n=length(A);if m==nH=acker(A',C',V')'elsedisp('系统不是状态完全可观测')endH =-23.所以:H=[-2 3]如有侵权请联系告知删除,感谢你们的配合!。