第二讲6传递函数到状态空间模型的转换
- 格式:pdf
- 大小:1.24 MB
- 文档页数:36
学生姓名:学号:实验题目:传递函数到状态空间的实现课程名称:控制系统仿真实验目的:✧理解并掌握传递函数转换为状态空间方程的方法✧理解状态变量初值的计算方法实验内容:✧应用MATLAB编写一个m文件,要求可将传递函数变换为状态空间方程的能控、能观标准型,并用相应例题验证程序的正确性。
✧完善该程序使其可以用来计算状态变量的初值,并用相应的例题验证程序的正确性。
报告内容:(1)给出m文件的程序框图及验证结果,并记录出现的错误,给出解决的方案。
若没有得到解决,请说清楚你的问题。
(2)如果做了程序的状态初值的求解,请给出相应的验证结果及程序编写过程中出现的问题,若已经解决,给出具体方法。
此次实验约占整个科目成绩的20%,(其中程序部分占10%,报告部分占10%)提交日期:2011-3-23实际提交日期:声明:(包括报告内容和实验程序:此次实验完全自己完成;若得到了同学的帮助,请注明就哪一部分内容请教了同学,说明理由。
)注:本表打印出来作为封面,空格部分打印出来,手写填写姓名、学号和签名部分,实际提交日期由老师填写。
传递函数到状态空间的实现一、实验目的①.理解并掌握传递函数转换为状态空间方程的方法②.理解状态变量初值的计算方法二、程序框图①.首先根据题目要求设计出能控能观程序框图如图一所示。
②.求解状态初值的程序框图如图二所示。
图一 能控与能观标准型程序框图 图二 状态初值的程序框图三、程序的设计思路1、首先四、验证程序的正确性①.对能控能观标准型的验证:当给定的系统传递函数为G (s )=245035102424723423+++++++s s s s s s s 求解系统的能控和能观标准型。
c0=0,c1=1,c2=7,c3=24,c4=24;a0=1,a1=10,a2=35,a3=50,a4=24 所以C1=c4-c0*a4=24,C2=c3-c0*a3=24,C3=c2-c0*a2=7,C4=c1-c0*a1=1; 能控标准型:A=⎥⎥⎥⎥⎦⎤---⎢⎢⎢⎢⎣⎡-1234100010001000a a a a =⎥⎥⎥⎥⎦⎤---⎢⎢⎢⎢⎣⎡-10100350105000124000 B=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡1000C=[]172424D=0;能观标准型: A1=⎥⎥⎥⎥⎦⎤----⎢⎢⎢⎢⎣⎡1234100001000010a a a a =⎥⎥⎥⎥⎦⎤----⎢⎢⎢⎢⎣⎡10355024100001000010 B1=⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡172424 C1=[]1000 D1=0利用设计好的程序计算的结果为如图三、四、五所示:图三图四 图五有上述可以看出验证结果无误②.对状态初值的验证给定微分方程和初值如图六所示图六根据公式可以计算出气状态空间A 、B 、C 、D 和状态变量初值X0;a0=1, a1=7, a2=12, a3=0; c0=0, c1=1, c2=3, c3=2;B1=c1-c0*a1=1, B2=c2-c0*a2=3, B3=c3-c0*a3=2;A=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡---010001321a a a =⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡--010******* B=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡231 C=][001D=01X (0)=y(0)=12X (0)=*.y (0)+7y(0)-u(0)=6 所以X0=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡1061 3X (0)= .**y (0) +7*.y (0)- *.u (0)+12y(0)-3u(0)=10 利用设计好的程序进行计算,结果如图七、八、九所示图七图八 图九由图中结果与前面计算结果对比可以知道计算无误五、总结此次实验是对传递函数到状态空间的实现,根据前面所学知识对能控和能观标准型的程序设计可以说不算难点,主要是要考虑当系统传递函数分母最高次幂系数不为1时该怎么处理,其他的对于状态空间的赋值相对来说就比较简单,实验的难点在最微分方程状态变量初值的计算上,对于初值的计算公式表示问题上是一个难点,这里利用矩阵T将初值分散开来再进行求和的方法。
实验1 系统的传递函数阵和状态空间表达式的转换一 实验目的1 学习多变量系统状态空间表达式的建立方法、了解系统状态空间表达式与传递函数相互转换的方法;2 通过编程、上机调试,掌握多变量系统状态空间表达式与传递函数相互转换方法。
二 实验原理(1) 由传递函数建立状态空间 系统的传递函数为()()()11101110n n n n n n n Y s b s b s b s b G s U s s a s a s a ----++++==++++ ()()1212100121210n n n n n n n n n n N s s s s b b s a s a s a s s D s ββββ--------++++=+=++++++ (i )()()N s D s 只含单实极点时的情况。
设()D s 可分解为: ()()()()12n D s s s s λλλ=---则 ()()()()1n ii iY s N s c U s D s s λ===-∑若令状态变量为 ()1i iX U s s λ=- 其向量-矩阵形式为11122201101n n n x x x x u x x λλλ⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦,[]12n n x x y c cc x ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦(ii )()()N s D s 含重实极点时的情况。
例如()D s 可分解为 ()()()()314n D s s s s λλλ=---则 ()()()()()()131112324111ni i iY s N s c c c c U s D s s s s s λλλλ===+++----∑ 若令状态变量为 ()1i iX U s s λ=- 111111211213113444101001101n n n x x x x x x u x x x x λλλλλ⎡⎤⎡⎤⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦⎣⎦ []1112134n y c c c c c x =(2) 状态方程转化为传递函数设系统的模型如式(1-1)示。
同步电机系统传递函数模型和状态空间模型同步电机系统传递函数模型和状态空间模型引言同步电机是一种重要的电动机类型,广泛应用于工业领域。
为了能够准确描述同步电机的运行特性,传递函数模型和状态空间模型是常用的数学工具。
本文将从基础理论出发,系统地介绍同步电机系统的传递函数模型和状态空间模型。
同步电机的传递函数模型传递函数模型是用来描述系统输入和输出之间关系的数学模型。
同步电机的传递函数模型可以通过对其系统方程进行 Laplace 变换获得。
系统方程同步电机的系统方程可以用以下形式表示:G(s)⋅I(s)=E(s)其中,G(s)是系统的传递函数,I(s)是电机的输入信号(电流),E(s)是电机的输出信号(电动势)。
传递函数通过对系统方程进行变换,可以得到同步电机的传递函数:G(s)=E(s) I(s)同步电机的传递函数一般为一个复数多项式的比值。
同步电机的状态空间模型状态空间模型是一种更加直观、直接的描述系统动态行为的数学模型。
同步电机的状态空间模型可以通过将系统方程转换成状态方程的形式来表示。
状态方程同步电机的状态方程可以用以下形式表示:dx(t)=Ax(t)+Bu(t)dty(t)=Cx(t)+Du(t)其中,x(t)是状态向量(包含电机的各种状态),u(t)是输入向量(电机的输入信号),y(t)是输出向量(电机的输出信号),A、B、C和D是系统的系数矩阵。
系数矩阵系数矩阵A是描述状态变量之间相互关系的矩阵,矩阵的维度与状态量的个数相同。
系数矩阵B是描述输入信号对状态变量的影响的矩阵,矩阵的维度与输入量的个数相同。
系数矩阵C是描述状态变量对输出信号的影响的矩阵,矩阵的维度与输出量的个数相同。
系数矩阵D是描述直接影响输出信号的输入信号的矩阵。
状态空间模型的优势与传递函数模型相比,状态空间模型具有以下优势: 1. 直观性:状态空间模型能够更加直接、直观地描述系统的动态行为。
2. 灵活性:状态空间模型能够更加灵活地处理多输入多输出系统。
MIMO传递函数转化为状态空间模型Matlab代码1. 介绍MIMO(多输入多输出)系统是指系统具有多个输入和多个输出的特性。
在控制系统领域中,MIMO系统的建模和分析是非常重要的。
传递函数和状态空间模型是两种常用的系统建模方法。
本文将介绍如何将MIMO系统的传递函数转化为状态空间模型,并给出相应的Matlab代码实现。
2. MIMO系统的传递函数表示MIMO系统的传递函数通常表示为一个矩阵,每个元素对应一个输入到一个输出的传递函数。
假设有n个输入、m个输出,则MIMO系统的传递函数可以表示为一个m×n的传递函数矩阵G(s)。
传递函数矩阵的元素可以用s表示,如G11(s)、G12(s)等。
3. MIMO系统传递函数到状态空间模型的转化方法MIMO系统的传递函数可以通过状态空间模型来表示。
状态空间模型的基本形式如下:\[ \dot{x}(t) = Ax(t) + Bu(t) \]\[ y(t) = Cx(t) + Du(t) \]其中,A是状态矩阵,B是输入矩阵,C是输出矩阵,D是传递函数零极点对应的矩阵。
MIMO系统的传递函数可以通过以下步骤转化为状态空间模型:1)将传递函数矩阵分解为多个SISO(单输入单输出)系统的传递函数;2)针对每个SISO系统,可以将其转化为状态空间模型;3)将各个SISO系统的状态空间模型组合成一个整体的MIMO系统的状态空间模型。
4. Matlab代码实现下面我们通过一个实例来演示如何用Matlab将MIMO系统的传递函数转化为状态空间模型。
假设传递函数矩阵为:\[ G(s) = \begin{bmatrix} \frac{2s+1}{s^2+3s+2}\frac{3s+2}{s^2+4s+3} \\ \frac{4s+1}{s^2+2s+1}\frac{5s+2}{s^2+3s+2} \end{bmatrix} \]我们需要将传递函数矩阵分解为四个SISO系统的传递函数:\[ G11(s) = \frac{2s+1}{s^2+3s+2} \]\[ G12(s) = \frac{3s+2}{s^2+4s+3} \]\[ G21(s) = \frac{4s+1}{s^2+2s+1} \]\[ G22(s) = \frac{5s+2}{s^2+3s+2} \]针对每个SISO系统,我们可以将其转化为状态空间模型,以G11(s)为例:```Matlab将传递函数G11(s)转化为状态空间模型num = [2, 1]; 分子系数den = [1, 3, 2]; 分母系数[A11, B11, C11, D11] = tf2ss(num, den); 转化为状态空间模型```将各个SISO系统的状态空间模型组合成整体的MIMO系统的状态空间模型:```Matlab对四个SISO系统的状态空间模型进行组合A = [A11, A12; A21, A22];B = [B11, B12; B21, B22];C = [C11, C12; C21, C22];D = [D11, D12; D21, D22];```至此,我们成功地将MIMO系统的传递函数转化为状态空间模型,并通过Matlab代码实现了这一过程。
实验题目:传递函数到状态空间的实现 课程名称:计算机仿真 一、实验目的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的编程来实现传递函数转化为状态空间方程的能控和能观性,并掌握了程序的状态初值的求解。
传递函数、零极点增益与状态空间三种模型转换的MATLAB算法实现一、引言微分方程是自控控制系统最原始的数学模型,它反映系统动态运行规律。
时域分析中要用拉普拉斯变换定义传递函数,再做其它转化。
为了方便我们对自动控制理论的理解和学习,本人总结了传递函数、零极点增益与状态空间三种模型转换的MATLAB算法,用处多多。
二、状态空间模型转换为传递函数、零极点增益模型1、MATLAB算法%将状态空间模型x(t)=Ax(t)+Bu(t),y(t)=Cx(t)+Du(t)转化成传递函数G(s)=num(s)/den(s)%或零极点模型G(s)=k(s+z1)(s+z2)...(s+zm)/(s+p1)(s+p2)...(s+pn)的函数ssto2.m%调用格式G=ssto2(key,A,B,C,D),其中输入参数A,B,C,D为状态空间四个矩阵,输出参数当key=1%时为传递函数;当key=2时,为状态空间模型function G=ssto2(key,A,B,C,D)if key==1sys=ss(A,B,C,D);G=tf(sys),elseif key==2sys=ss(A,B,C,D);G=zpk(sys),end2、例题分析【例1】已知一加压液流箱系统,该系统的状态变量是液位h(t)与料浆总压H(t),输入变量是料浆流入量u1(t)与空气流入量u2(t),输出变量就是状态变量H(t)与h(t)本身,系统状态空间模型为H(H)−0.39120.01234H(H)0.033440.01234H1(H)=+ℎ(H)ℎ(H)H2(H)−0.02200.0008960H1(H)H(H)H1(H)=11+00H2(H)ℎ(H)H2(H)求多个输入到输出的传递函数模型与多个输入到输出的零极点增益模型。
>> clear;A=[-0.3912,0.01234;-0.022,0];B=[0.03344,0.01234;0.000896,0];C=[1,1];D=[0,0];key=1;G=ssto2(key,A,B,C,D);key=2;G=ssto2(key,A,B,C,D);G =From input 1 to output:0.03434 s - 0.0003741--------------------------s^2 + 0.3912 s + 0.0002715From input 2 to output:0.01234 s - 0.0002715--------------------------s^2 + 0.3912 s + 0.0002715 Continuous-time transfer function.G =From input 1 to output:0.034336 (s-0.0109)------------------------(s+0.3905) (s+0.0006952)From input 2 to output:0.01234 (s-0.022)------------------------(s+0.3905) (s+0.0006952) Continuous-time zero/pole/gain model.三、传递函数模型转换为状态空间、零极点增益模型1、MATLAB算法%将传递函数模型G(s)=num(s)/den(s)转换成零极点模型%G(s)=k(s+z1)(s+z2)...(s+zm)/(s+p1)(s+p2)...(s+pn)%或状态空间模型x(t)=Ax(t)+Bu(t),y(t)=Cx(t)+Du(t)的函数%tfto2.m,函数的调用格式为G=tfto2(key,n,d)%其中输入参数n与d为传递函数分子、分母均按s的降幂排列的两个向量%输出参数key=1时,为零极点模型;key=2时,为状态空间模型%sys = tf(num,den)命令可以建立一个传递函数,其中分子和分母分别为num和den。
由传递函数转换成状态空间模型——方法多!!! SISO 线性定常系统高阶微分方程化为状态空间表达式SISO ()()()()()()m n u b u b u b y a y a y a y m m m n n n n ≥+++=++++--- 1102211ΛΛ)(2211110nn n n mm m a s a s a s b s b s b s G +++++++=---ΛΛ 假设1+=m n外部描述←—实现问题:有了内部结构—→模拟系统内部描述SISO ⎩⎨⎧+=+=du cx y bu Ax x&实现问题解决有多种方法,方法不同时结果不同。
一、直接分解法因为1011111()()()()()()()()1m m m mn n n nY s Z s Z s Y s U s Z s U s Z s b s b s b s b s a s a s a ----⨯=⨯=⨯++++++++L L ⎩⎨⎧++++=++++=----)()()()()()(1111110s Z a s a s a s s U s Z b s b s b s b s Y n n n n m m m m ΛΛ 对上式取拉氏反变换,则⎩⎨⎧++++=++++=----z a z a z a z u zb z b z b z b y n n n n m m m m &Λ&Λ1)1(1)(1)1(1)(0 按下列规律选择状态变量,即设)1(21,,,-===n n z x zx z x Λ&,于是有⎪⎪⎩⎪⎪⎨⎧+----===-u x a x a x a xx x x x n n n n 12113221Λ&M && 写成矩阵形式式中,1-n I 为1-n 阶单位矩阵,把这种标准型中的A 系数阵称之为友阵。
只要系统状态方程的系数阵A 和输入阵b 具有上式的形式,c 阵的形式可以任意,则称之为能控标准型。