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

合集下载

实验一 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中的传递函数模型实验

《自动控制原理》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进行系统模型之间的相互转换

利用MATLAB进行系统模型之间的相互转换
利用 MATLAB 进行系统模型之间的相互转换
本节将讨论系统模型由传递函数变换为状态方程,反之亦
然。现讨论如何由传递函数变换为状态方程。
将闭环传递函数写为
Y (s) U (s)
=
含s的分子多项式 含s的分母多项式
=
num den
当有了这一传递函数表达式后,使用如下 MATLAB 命令:
[A, B, C, D] = tf2ss (num, den)
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*****
JA=poly(A)
JA=
1.0000 6.0000 5.0000 1.0000
a1=JA(2);a2=JA(3);a3=JA(4);
%*****Define matrices W and P as follows***** W=[a2 a1 1;a1 1 0;1 0 0]; P=Q*W;
%*****Obtain the desired chracteristic polynomial by defining %the following matrix J and entering statement poly(J)*****

现代控制原理matlab实验报告1

现代控制原理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、理解状态初值的计算方法二、实验内容1、应用MATLAB编写一个可以实现传递函数到状态空间方程的可控可观规范型的m文件。

并用相应例题验证程序的正确性。

2、完善该程序使其可以用来计算状态初值。

并用相应的例题验证程序的正确性。

3、程序中需要考虑分子分母同阶以及分母首系数不为1的两种情况。

三、报告内容1、给出m文件的程序框图,及验证结果,并记录出现的错误,并给出解决的方案。

若没有得到解决,请说清楚你的问题2、如果做了程序的状态初值得求解,请给出相应的验证结果,及程序编写过程中出现的问题,若已经解决,给出具体方法。

四、实验理论1、传递函数为那么其状态空间模型能控标准型为:A=B=C=D=能观标准型为:2、计算状态变量初值:(1)不含u的导数项时,则有:(2)系统微分方程不仅包含u的输入项,而且包含u的导数项,则:五、程序检验(1)输入一个分母首系数为1且分子分母不同阶传递函数:程序运行结果:能控标准型:A =0 1 0 00 0 1 00 0 0 1-2 -4 -5 -2B =1C =5 3 4 2D =能观标准型:A =0 0 0 -21 0 0 -4 0 1 0 -50 0 1 -2B =5342C =0 0 0 1D =初值部分:请输入系统输出的初值=[1;1;1;1]请输入系统输入的初值=[0;0;0]x0 =12831运行结果正确(2)输入一个分母首系数为2且分子分母同阶传递函数:程序运行结果:能控标准型:A =0 1.0000 -1.5000 -2.5000 B =1C =1.5000 1.5000D =0.5000能观标准型:A =0 -1.50001.0000 -2.5000B =1.50001.5000C =1.5000 1.5000D =0.5000初值部分:请输入系统输出的初值=[1;1] 请输入系统输入的初值=[0] x0 =3.50001.0000运行结果正确六、流程图七、实验小结通过本次实验我了解了如何通过matlab的编程来实现传递函数转化为状态空间方程的能控和能观性,并掌握了程序的状态初值的求解。

matlabtf状态空间转传递函数

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进行系统模型之间的相互转换

利用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

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

实验一 MATLAB 系统的传递函数和状态空间表达式的转换一、 实验目的1、学习多变量系统状态空间表达式的建立方法;2、通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数之间相互转换的方法;3、掌握相应的MATLAB 函数。

二、 实验原理设系统的模型如式()所示:⎩⎨⎧+=+=DCx y Bu Ax x ' x ''R ∈ u ∈R ’’’ y ∈R P 其中A 为nXn 维系统矩阵、B 为nXm 维输入矩阵、C 为pXn 维输出矩阵,D 为直接传递函数。

系统的传递函数和状态空间表达式之间的关系如式()所示G(s)=num(s)/den(s)=C (SI-A)-1 B+D 式()中,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的值。

例如,若系统有三个输入u1,u2,u3,则iu必须是1、2、或3,其中1表示u1,2表示u2,3表示u3。

该函数的结果是第iu个输入到所有输出的传递函数。

三.实验步骤及结果1、应用MATLAB 对下列系统编程,求系统的A 、B 、C 、D 阵,然后验证传递函数是相同的。

G(s)= ⎥⎦⎤⎢⎣⎡+++352^12s s s 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 = 0den1 =2、给定系统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 = +->> [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=时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,G1 = 0H1 = 0>> dstep(G1,H1,C,D,1)>> dstep(G1,H1,C,D,1)>> [G2 H2]=c2d(A,B,1)G2 = 0H2 =0>> dstep(G2,H2,C,D,1) >> [G3 H3]=c2d(A,B,2) [G3 H3]=c2d(A,B,2)G3 = 0H3 =0>> dstep(G3,H3,C,D,1)程序和运行结果:Z域仿真图形:连续域仿真图形:程序:G=[0 1; 1];H=[1;1];C=[1 1];D=0;u=1;dstep(G,H,C,D,u) sysd=ss(G,H,C,D,a = x1 x2x1 0 1 x2 1b = u1x1 1x2 1c = x1 x2y1 1 1d = u1y1 0Sampling time: Discrete-time model.>> sysc=d2c(sysd,'zoh') a = x1 x2x1x2b = u1x1x2c = x1 x2y1 1 1d = u1y1 0Continuous-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 =p =-4-3-21k =>> 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 0Continuous-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]。

相关文档
最新文档