第4章传递函数矩阵的状态空间实现
- 格式:ppt
- 大小:687.50 KB
- 文档页数:29
传递函数矩阵最小实现方法降阶法人们在设计复杂系统时,总是希望在构造系统之前用模拟计算机或数字计算机对所设计的系统进行仿真,以检查系统性能是否达到指标要求。
给定严格真传递函数矩阵G(s),为寻找一个维数最小的(A,B,C),使C(sl - A)」B二G(s),则称该(A,B,C )是G(s)的最小实现,也称为不可约实现。
最小实现是系统实现的一种非常重要的实现方式,关于最小实现的特性,有下列几个重要结论:(1)( A,B,C )为严格真传递函数矩阵G(s)的最小实现的充要条件是(A,B) 能控且(A,C)能观测。
(2)严格真传递函数矩阵G(s)的任意两个最小实现(A,B,C)与(A,B,C5之间必代数等价,即两个最小实现之间由非奇异线性变换阵T使得式子A =T」AT,B =T J B,C =CT 成立。
(3)传递函数矩阵G(s)的最小实现的维数为G(s)的次数n.,或G(s)的极点多项式的最高次数。
为了寻求传递函数矩阵的最小实现,就意味着要把系统中不能控和不能观测的状态变量消去而不至于影响系统的传递函数。
求最小实现的方法有三种:1、降阶法。
根据给定的传递函数矩阵G(s),第一步先写出满足G(s)的能控型实现,第二步从中找出能观测子系统;或者第一步先写出满足G(s)的能观测型实现,第二步从中找出能控子系统,均可求得最小实现。
2、直接求取约当型最小实现的方法。
若G(s)诸元容易分解为部分分式形式,运用直接求取约当型最小实现的方法是较为方便的。
3用汉克尔矩阵法求取最小实现的方法。
下面主要研究降阶法(先求能控型再求能观测子系统的方法)并举例说明。
先求能控型再求能观测子系统的方法设(px q)传递函数矩阵G(s),且p v q时,优先采用本法。
取出G(s)的第j列,记为G j(s),是u j至y(s)的传递函数矩阵,有由n ij (s)的诸系数确定C j ,这时A j「a j,0-6,° III Pj in j 11j,0"I" j ,b p -G j (s)=[g 1j (s)....g qj (s)]T=[( )l qu (s)/((sy q qj(s)记d j (s)为q ij (s), q qj (s)的最小公倍式,则1Gj(s)=帀g ⑼叭创n | n , _1 ,,,设d j (s) = s a j ,n_i S a“s a j,。
传递函数到状态空间的实现在计算机科学领域中,函数通常被看作是一组输入和输出之间的映射关系。
在传递函数到状态空间的实现中,我们将函数转化为一种状态的组合,以便在状态空间中进行操作和分析。
状态空间是由一组状态和状态之间的转换关系组成的数学模型。
状态空间建模需要定义所有可能的状态集合,并描述状态之间的转换规则。
在这个模型中,函数可以被看作是状态之间的转换规则,其中每个状态都代表函数的一个输入和输出。
传递函数到状态空间的实现包括以下几个关键步骤:1.定义状态集合:根据函数的输入和输出,确定状态的取值范围,以及输入和输出状态的组合。
例如,如果函数有两个输入参数和一个输出结果,那么状态的取值范围将是所有可能的参数和结果的组合。
2.定义状态转换规则:根据函数的定义和用例需求,确定状态之间的转换规则。
这些规则可以是函数本身的定义,也可以是基于函数的输入和输出之间的关系定义的。
例如,如果函数的输入是一个正整数,输出是它的平方,那么状态转换规则可以是"当前状态为x,下一个状态为x*x"。
3.建立状态转换图:将状态和状态之间的转换规则绘制成状态转换图。
状态转换图是一种有向图,其中每个状态表示图的一个节点,状态之间的转换规则表示图的有向边。
根据函数的输入和输出,将状态转换规则应用到状态集合中的每个元素,构建状态转换图。
4.状态空间分析:在状态空间中分析函数的性质和行为。
通过遍历状态转换图,可以确定函数可能存在的问题或者潜在的错误。
例如,可以找出函数的输入参数中可能导致函数出错的特殊情况,或者确定函数是否存在无法到达的状态。
5.测试和验证:基于状态空间分析的结果,设计测试用例来验证函数的正确性。
根据状态集合和状态转换规则,选择具有代表性的输入组合来测试函数的各种可能行为。
通过比较函数的实际输出和期望输出,验证函数在不同状态下的正确性。
传递函数到状态空间的实现可以帮助我们更好地理解和分析函数的行为,发现隐藏的问题,并设计更有效的测试策略。
传递函数写状态空间表达式【导言】在工程学科领域中,状态空间方法是一种十分重要的工具,在控制系统和信号处理方面得到了广泛应用。
在此过程中,传递函数和状态空间表达式便成为了其中不可或缺的两个环节。
本文将从传递函数转化为状态空间表达式这一点入手,给读者详细介绍其操作方法和其中的一些要点。
【一、传递函数和状态空间表达式概述】首先我们需要了解一些基本概念。
传递函数(Transfer Function)指的是在时域和频域之间建立约束关系的函数。
它描述了系统输入与输出之间的关系,是刻画线性时不变系统的一种有效方式。
状态空间表达式(State-Space Representation)指的是在某些符号和运算法则下,将一个时不变系统的整个历史过程表示为一个有限元素向量和矩阵的函数。
它描述了系统在时域和状态空间中的变化、状态之间的相互关系和控制变量和系统状态之间的关联。
传递函数与状态空间模型是描述线性时不变系统常用的两种方法。
传递函数的优点是简单、直接,能够快速得到系统的频率特性,但是只能表达一阶系统。
状态空间模型能够表达高阶、非线性系统,可以更好地反映物理实际。
【二、传递函数转化为状态空间表达式】将传递函数转化为状态空间表达式,原则上可以采用多种方法,本文将以矩阵分式形式为例进行讲解。
假设系统的传递函数为G(s),那么我们可以按照以下步骤进行转化:1、设系统的状态变量为x,输出变量为y,则系统的状态方程可以表示为:x' = Ax + Buy = Cx + Du其中A、B、C和D是系统的状态矩阵、输入矩阵、输出矩阵和耦合矩阵。
2、用连分式的形式表示传递函数:G(s) = D + C(sI - A)⁻¹ B3、将上式展开,得到:G(s) = D + CB⁻¹(sI - A)⁻¹ B4、令P(s) = (sI - A),则:G(s) = D + CB⁻¹P⁻¹(s)B5、对P(s)进行分解:P(s) = (s - λ1)Q1(s) ... (s - λn)Qn(s)其中λ1,λ2,...,λn是P(s)的特征值,Q1(s),Q2(s),...,Qn(s)是与特征值相关的特征向量矩阵。
《现代控制理论》MOOC课程1.4从状态空间表达式求传递函数矩阵一. 传递函数矩阵的定义定义:对于多输入-多输出线性定常系统,输入向量为,输出向u =u 1u 2⋯u r T 量为, 且假定初始状态为零。
分别表示的拉氏y =y 1y 2⋯y m T ෝu i s ,ෝy i s u i ,y i ොy 1s =w 11s ොu 1s +w 12s ොu 2s +⋯+w 1r s ොu r sොy 2s =w 21s ොu 1s +w 22s ොu 2s +⋯+w 2r s ොu r s⋮ොy m s =w m1s ොu 1s +w m2s ොu 2s +⋯+w mr s ොu r sෝy (s)=ොy 1(s)⋮ොy m (s)=w 11s⋯w 1r s⋮⋯⋮w m1s⋯w mr s ොu 1(s)⋮ොu r (s)=W (s )ෝu (s )写成向量形式:称为系统的传递函数矩阵。
W (s )变换,表示第j 个输入端到第i 个输出端的传递函数,系统的输入输出关系可描述为:w ij (s )x=A x+Bu x0=0y=C x+Du结论:对应于状态空间描述W(s)=C(sI−A)−1B+D 其传递函数矩阵为:证明:lims→∞W s=D且有:W(s)并且,当D≠0时,为真有理分式矩阵,当D=0时,为严格真有理分式矩阵,W s对状态空间表达式取拉氏变换:s X(s)=AX(s)+BU(s)Y(s)=CX(s)+DU(s)由状态方程的拉氏变换表达式可得:X(s)=(sI−A)−1B U(s)Y(s)=(C(sI−A)−1B+D )U(s)代入输出方程的拉氏变换表达式可得:故传递函数矩阵为:W(s)=C(sI−A)−1B+D对于传递函数矩阵:W(s )=C (sI −A )−1B +D 考虑:(sI −A)−1=Τadj(sI −A )det (sI −A )且伴随矩阵每个元素多项式的最高次幂都小于的最高次幂,故adj (sI −A )det (sI −A )lim s→∞W s =D因此有:lim s→∞(sI −A )−1=0当D =0时,为严格真有理分式;W s 故当D ≠0时,为真有理分式;W s三. 传递函数矩阵的唯一性证明:一个系统的状态空间表达式是非唯一的,但其传递函数矩阵是唯一的。
实验题目:传递函数到状态空间的实现 课程名称:计算机仿真 一、实验目的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的编程来实现传递函数转化为状态空间方程的能控和能观性,并掌握了程序的状态初值的求解。
已知传递函数求状态空间表达式传递函数是描述线性系统的重要工具,但有时我们需要将其转换为状态空间表示以便于分析和实现。
本文将介绍已知传递函数如何求解状态空间表达式的方法。
首先,我们将传递函数表示为分子多项式$N(s)$除以分母多项式$D(s)$的形式:$$G(s) = frac{N(s)}{D(s)}$$接下来,我们可以使用部分分式分解将传递函数拆分为若干个一阶系统的和:$$G(s) = frac{N(s)}{D(s)} = frac{K_1}{s-a_1} +frac{K_2}{s-a_2} + cdots + frac{K_n}{s-a_n}$$其中,$a_1, a_2, cdots, a_n$ 是传递函数的极点,$K_1, K_2, cdots, K_n$ 是对应的系数。
接着,我们可以将每个一阶系统表示为状态空间形式:$$begin{aligned} dot{x}_i &= a_ix_i + b_iu y_i &= c_ix_i + d_iu end{aligned}$$其中,$x_i$ 是系统的状态向量,$u$ 是输入信号,$y_i$ 是输出信号,$a_i, b_i, c_i, d_i$ 是系统的系数。
注意,每个一阶系统的状态向量可能不同,因此需要为每个系统定义不同的状态向量。
最后,将每个一阶系统的状态空间表达式相加即可得到整个系统的状态空间表示:$$begin{aligned} dot{x} &= begin{bmatrix} dot{x}_1dot{x}_2 vdots dot{x}_n end{bmatrix} = begin{bmatrix} a_1 & 0 & cdots & 0 0 & a_2 & cdots & 0 vdots & vdots & ddots & vdots 0 & 0 & cdots & a_n end{bmatrix} begin{bmatrix} x_1 x_2 vdots x_n end{bmatrix} + begin{bmatrix} b_1 b_2 vdots b_nend{bmatrix} u y &= begin{bmatrix} c_1 & 0 & cdots & 0 0 & c_2 & cdots & 0 vdots & vdots & ddots & vdots 0 & 0 & cdots & c_n end{bmatrix} begin{bmatrix} x_1 x_2 vdots x_nend{bmatrix} + d_1u end{aligned}$$其中,$dot{x}$ 是整个系统的状态向量,$y$ 是输出信号,$a_i, b_i, c_i, d_i$ 在矩阵中的位置与之前相同。
实验题目:传递函数到状态空间的实现课程名称:计算机仿真一、实验目的1、理解并掌握传递函数转换为状态空间方程的方法2、理解状态初值的计算方法二、实验内容1、应用MATLAB®写一个可以实现传递函数到状态空间方程的可控可观规范型的m文件。
并用相应例题验证程序的正确性。
2、完善该程序使其可以用来计算状态初值。
并用相应的例题验证程序的正确性。
3、程序中需要考虑分子分母同阶以及分母首系数不为1的两种情况<三、报告内容1、给出m文件的程序框图,及验证结果,并记录出现的错误,并给出解决的方案。
若没有得到解决,请说清楚你的问题2、如果做了程序的状态初值得求解,请给出相应的验证结果,及程序编写过程中出现的问题,若已经解决,给出具体方法。
四、实验理论1、传递函数为 --------------------那么其状态空间模型能控标准型为:A= B=C=能观标准型为:能观能控能观能控能观2、计算状态变量初值:D= 能控能观能控(1)不含u的导数项时,则有:y (o ) y (o )I = I]y (n 」(0)-五、程序检验程序运行结果: 能控标准型:A = 0 1 0 0 0 0 1 0 00 1-2 -4 -5 -2 B = 0、1(0)--a na n■…a1们 ■ y(0) ■ [ _ C n_ C n_2 —C 2 — Ci -u(0)-X 2(0)an/ an & (1)y(0)_皿 ......... —G 0u(0) X 3(0)a =a n(-aay(0)a+ _C n ( ....................................aaaU(0)■X n ±(0)a 1......... 0 y (n「0)a一 C jU2)(0) 川(0) _1 1 0 .................... 0 一yj (0)一I0 … 0屮2)(0)一 u 的输入项,而且包含u 的导数项,则: n 1n n n 1n (n-1)(n-1) 1x 1( 0)X 2(0)I : I I IX n ( 0)(2)系统微分方程不仅包含 (1)输入一个分母首系数为 1且分子分母不同阶传递函数:5 3 4 2D =能观标准型:A =0 0 0 -21 0 0 -40 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.5000B =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的编程来实现传递函数转化为状态空间方程的能控和能观性,并掌握了程序的状态初值的求解。
MATLAB根据传递函数矩阵求状态空间方程在探讨MATLAB如何根据传递函数矩阵求状态空间方程之前,首先需要了解传递函数和状态空间方程的概念。
传递函数是描述线性时不变系统输入与输出之间关系的数学方法,通常用于描述信号处理、控制系统等领域中的系统行为。
而状态空间方程则是另一种描述系统动态行为的方法,它能够全面描述系统的状态随时间的变化。
在工程领域中,状态空间方程常常用于分析系统的稳定性、控制系统的设计等问题。
在MATLAB中,我们可以利用控制工具箱提供的函数来求解传递函数矩阵对应的状态空间方程。
我们需要用tf函数将传递函数表示为MATLAB中的传递函数对象,然后利用ss函数将传递函数对象转化为状态空间对象,从而得到对应的状态空间方程。
接下来,我们以一个具体的例子来演示MATLAB如何根据传递函数矩阵求状态空间方程。
假设有如下传递函数矩阵:\[ G(s) = \begin{bmatrix} \frac{2s+1}{s^2+3s+2} &\frac{3s+2}{s^2+s+1} \\ \frac{s+1}{s^2+2s+1} &\frac{4s+1}{s^2+4s+3} \end{bmatrix} \]我们希望利用MATLAB求解对应的状态空间方程。
我们可以利用tf函数将传递函数矩阵表示为MATLAB中的传递函数对象:```matlabnum = {[2 1; 3 2]; [1 1; 4 1]}; % 分子矩阵den = {[1 3 2; 1 1 1]; [1 2 1; 1 4 3]}; % 分母矩阵G = tf(num,den);```接下来,我们可以利用ss函数将传递函数对象转化为状态空间对象:```matlabsys = ss(G);```通过以上步骤,我们就可以得到对应的状态空间方程。
值得注意的是,状态空间方程通常表示为如下形式:\[ \dot{x} = Ax + Bu \]\[ y = Cx + Du \]其中,\[ A \]、\[ B \]、\[ C \]、\[ D \] 分别是状态方程的系数矩阵,\[ x \] 是系统的状态向量,\[ u \] 是系统的输入向量,\[ y \] 是系统的输出向量。