传递函数、零极点增益与状态空间转换的matlab算法实现

合集下载

用matlab建立传递函数模型

用matlab建立传递函数模型

用matlab建立传递函数模型
传递函数模型是用来描述线性时不变系统的输入输出关系的数学模型。

在matlab中,可以通过调用“tf”命令来建立传递函数模型。

下面是建立传递函数模型的步骤:
1. 定义系统的分子多项式和分母多项式。

例如,一个二阶系统的传递函数为:
G(s) = (s + 1)/(s^2 + 2s + 1)
则其分子多项式为s+1,分母多项式为s^2+2s+1。

2. 使用“tf”命令建立传递函数模型。

命令格式为:
sys = tf(num,den)
其中,num是分子多项式的系数向量,den是分母多项式的系数向量。

在上述例子中,建立传递函数模型的命令为:
num = [1 1];
den = [1 2 1];
sys = tf(num,den);
3. 根据需要,可以使用“zpk”命令将传递函数模型转换为零极点模型或者增益相位模型。

命令格式为:
[z,p,k] = zpk(sys)
其中,z是零点向量,p是极点向量,k是增益。

例如,在上述例子中,将传递函数模型转换为零极点模型的命令为:
[z,p,k] = zpk(sys)
输出结果为:
z =
-1
p =
-1
-1
k =
1
通过以上步骤,就可以在matlab中建立传递函数模型,并进一步转换为零极点模型或者增益相位模型,方便分析系统的性质和进行控制器设计等工作。

传递函数、零极点增益与状态空间转换的matlab算法实现

传递函数、零极点增益与状态空间转换的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)本身,系统状态空间模型为求多个输入到输出的传递函数模型与多个输入到输出的零极点增益模型。

>>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。

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函数将状态空间模型转换为传递函数的分子多项式和分母多项式。

mimo传递函数转化为状态空间模型matlab代码

mimo传递函数转化为状态空间模型matlab代码

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代码实现了这一过程。

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

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

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

二、实验原理设系统的模型如式(1.1)所示:⎩⎨⎧+=+=DCx y BuAx 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计算传递函数在MATLAB中,可以使用tf函数来计算传递函数。

传递函数是用于描述线性时间不变系统的数学表示。

它由系统的输出和输入之间的关系定义。

传递函数由分子和分母多项式构成,通常被称为B(s)和A(s)。

创建传递函数有几种不同的方式。

以下是一些常见的例子:1.使用分子和分母多项式的系数来创建传递函数。

这种方式适用于已知系统的分子和分母多项式系数的情况。

例如,要创建一个分子为s+3,分母为s^2+2s+1的传递函数,可以使用以下代码:```num = [1 3];den = [1 2 1];sys = tf(num, den);```2.使用零点和极点来创建传递函数。

这种方式适用于已知系统的零点和极点的情况。

例如,要创建一个零点为-1,极点为-2和-3的传递函数,可以使用以下代码:```z=[-1];p=[-2-3];sys = zpk(z, p, 1);```3.使用传递函数的增量形式来创建传递函数。

这种方式适用于已知系统的增量形式的情况。

例如,要创建一个传递函数1/(s+2),可以使用以下代码:```num = [1];den = [1 2];sys = tf(num, den);```完成创建传递函数后,可以对传递函数进行各种操作,例如计算阶数、零点、极点等。

以下是一些常见的操作示例:-计算传递函数的阶数:```order = order(sys);```-计算传递函数的零点和极点:```[z, p] = zpkdata(sys, 'v');```-将传递函数转换为不同的形式,例如状态空间、零极点或者增量形式:```ss_sys = ss(sys);[z, p, k] = zpkdata(sys, 'v');[num, den] = tfdata(sys);```-对传递函数进行运算,例如进行加法、减法、乘法或者除法:```sys_sum = sys1 + sys2;sys_diff = sys1 - sys2;sys_mul = sys1 * sys2;sys_div = sys1 / sys2;```-画出传递函数的阶跃响应、频率响应或者脉冲响应:```step(sys);bode(sys);impulse(sys);```上述示例只是一些基本的操作,MATLAB还提供了更多高级的函数和工具来处理和分析传递函数。

传递函数、零极点增益与状态空间转换的matlab算法实现

传递函数、零极点增益与状态空间转换的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。

matlab 二元传递函数转为状态矩阵

matlab 二元传递函数转为状态矩阵

一、概述在控制系统理论中,二元传递函数与状态空间模型是两种描述系统动态行为的重要工具。

二元传递函数是用传递函数表示系统输入输出关系的一种方法,而状态空间模型则是用状态变量和状态方程描述系统动态行为的一种方法。

在实际工程中,经常会遇到需要将二元传递函数转换为状态空间模型的情况,本文将介绍如何使用Matlab软件进行这一转换。

二、二元传递函数的基本概念1. 二元传递函数的定义二元传递函数是描述线性时不变系统输入和输出之间关系的一种数学模型。

一般形式下,二元传递函数可以表示为:G(s) = N(s) / D(s)其中N(s)和D(s)分别为分子多项式和分母多项式,s为复平面上的变量。

2. 二元传递函数的特点二元传递函数具有许多重要的特点,如稳定性、阶数等。

这些特点对于状态空间模型的转换具有重要意义。

三、从二元传递函数到状态空间模型的转换1. 状态空间模型的基本概念状态空间模型是描述线性时不变系统的一种数学模型,它通过状态变量和状态方程来描述系统的动态行为。

一般形式下,状态空间模型可以表示为:x' = Ax + Buy = Cx + Du其中x为状态变量,A、B、C和D为系统参数矩阵,u为系统输入,y为系统输出。

2. 转换步骤要将二元传递函数转换为状态空间模型,可以按照以下步骤进行操作:a) 对二元传递函数进行因式分解,得到相应的零点和极点;b) 根据零点和极点的位置,确定系统的稳定性和阶数;c) 根据稳定性和阶数确定状态空间模型的维度;d) 根据二元传递函数的分子和分母多项式,确定状态空间模型的参数矩阵。

3. 使用Matlab进行转换在Matlab中,可以使用函数tf2ss()来实现二元传递函数到状态空间模型的转换。

该函数的基本语法为:[A, B, C, D] = tf2ss(N, D)其中N和D分别为二元传递函数的分子和分母多项式,A、B、C和D 分别为状态空间模型的参数矩阵。

四、实例分析以下通过一个实例来演示如何使用Matlab将二元传递函数转换为状态空间模型。

MATLAB环境中传递函数模型表示与转换

MATLAB环境中传递函数模型表示与转换

姓名:指导老师:成绩:学院:专业:班级:实验内容:年月日其他组员及各自发挥作用:独立完成实验内容,并进行了验证。

一、实验时间:2014年9月22日二、实验地点:课外三、实验目的:掌握在MATLAB环境中传递函数模型表示与转换四、实验设备与软件MATLAB数值分析软件五、实验原理1、连续系统传递函数的生成命令格式:sys=tf(num,den);2、连续系统zpk函数的生成命令格式:sys=zpk(z,p,k);3、传递函数模型与zpk传递函数模型间的转换命令格式:[num,den]=zp2tf(z,p,k);[z,p,k]=tf2zp(num,den);4、线性系统传递函数的零点和极点命令格式:pole/zero(sys);5、连续传递函数的静态增益6、部分分式分解和还原命令格式:[z,p,k]=residue(num,den);[num,den]=residue(z,p,k);六、实验内容、方法、过程与分析1、实验内容:自定义一个4阶稳定的连续线性系统传递函数,要求分子次数为3,编制一段程序.m将其转换成零极点形式,求零极点和静态增益,并实现部分分式分解并与手算比较。

2、实验方法:根据实验内容,利用MATLAB编程实现求解传递函数的多项式形式和零极点形式的转换,求解零极点和静态增益3、实验过程与分析(1)连续系统传递函数的生成命令格式:sys=tf(num,den);(2)连续系统zpk函数的生成命令格式:sys=zpk(z,p,k);(3)传递函数模型与zpk传递函数模型间的转换命令格式:[num,den]=zp2tf(z,p,k);[z,p,k]=tf2zp(num,den);(4)线性系统传递函数的零点和极点,连续传递函数的静态增益命令格式:pole/zero(sys);(5)部分分式分解和还原命令格式:[z,p,k]=residue(num,den);[num,den]=residue(z,p,k);七、实验结论与总结结论:1、连续系统传递函数的生成命令格式:sys=tf(num,den);2、连续系统zpk函数的生成命令格式:sys=zpk(z,p,k);3、传递函数模型与zpk传递函数模型间的转换命令格式:[num,den]=zp2tf(z,p,k);[z,p,k]=tf2zp(num,den);4、线性系统传递函数的零点和极点命令格式:pole/zero(sys);5、连续传递函数的静态增益6、部分分式分解和还原命令格式:[z,p,k]=residue(num,den);[num,den]=residue(z,p,k);总结:初步掌握MATLAB的基本语句用法,但是还需要进一步学习MATLAB 的语法,算法。

Matlab控制系统传递函数模型

Matlab控制系统传递函数模型

Matlab控制系统传递函数模型第一篇:Matlab 控制系统传递函数模型MATLAB及控制系统仿真实验班级:智能0702 姓名:刘保卫学号:06074053(18)实验四控制系统数学模型转换及MATLAB实现一、实验目的熟悉MATLAB 的实验环境。

掌握MATLAB 建立系统数学模型的方法。

二、实验内容(注:实验报告只提交第2 题)1、复习并验证相关示例。

(1)系统数学模型的建立包括多项式模型(Transfer Function,TF),零极点增益模型(Zero-Pole,ZP),状态空间模型(State-space,SS);(2)模型间的相互转换系统多项式模型到零极点模型(tf2zp),零极点增益模型到多项式模型(zp2tf),状态空间模型与多项式模型和零极点模型之间的转换(tf2ss,ss2tf,zp2ss…);(3)模型的连接模型串联(series),模型并联(parallel),反馈连接(feedback)2、用MATLAB 做如下练习。

(1)用2 种方法建立系统程序如下:%建立系统的多项式模型(传递函数)%方法一,直接写表达式s=tf('s')Gs1=(s+2)/(s^2+5*s+10)%方法二,由分子分母构造num=[1 2];den=[1 5 10];Gs2=tf(num,den)figure pzmap(Gs1)figure pzmap(Gs1)grid on运行结果:易知两种方法结果一样的多项式模型。

Transfer function: s Transfer function: s + 2--------------s^2 + 5 s + 10Transfer function: s + 2--------------s^2 + 5 s + 10(2)用2 种方法建立系统程序如下:%方法一s=tf('s')Gs1=10*(s+1)/((s+1)*(s+5)*(s+10))% zpk模型ZPK=zpk(Gs1)%方法二 % tf模型num=[10 10];den=conv([1 1],conv([1 5],[1 10]));Gs2=tf(num,den)% zpk模型ZPK=zpk(Gs2)figure pzmap(Gs1)figure pzmap(Gs1)grid on运行结果:易知两种方法结果一样的零极点模型和多项式模型。

matlab根据传递函数矩阵求状态空间方程

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 \] 是系统的输出向量。

matlab的自动控制原理实现

matlab的自动控制原理实现
第5页/共30页
5.1.3 LTI对象属性的设置与转换 1.LTI对象属性的获取与设置
表5.4 对象属性的获取和修改函数 函数名称及基本格式
功能
get(sys, ‘PropertyName’, 数值, …) 获得LTI对象的属性
set(sys, ‘PropertyName’, 数值, …) 设置和修改LTI对象的属性
传递函数分子系数 传递函数变量 增益 极点
variable 零极点增益模型变量
z
零点
a
系数矩阵
b
系数矩阵
c
系数矩阵
d
系数矩阵
e
系数矩阵
StateName 状态变量名
属性值的变量类型 由行数组组成的单元阵列
由行数组组成的单元阵列 s、z、p、k、z-1中之一 二维矩阵 由行数组组成的单元阵列
s、z、p、k、z-1中之一 由行数组组成的单元阵列 二维矩阵 二维矩阵 二维矩阵 二维矩阵 二维矩阵 字符串单元向量
程序运行结果为:
Transfer function: ←系统s1的传递函数模型
2 s^2 + 5 s + 1
------------------
s^2 + 2 s + 3
Zero/pole/gain: ←系统s2的零极点增益模型
5 (s+2)
-----------
(s+10)
Zero/pole/gain: ←系统s1、s2的反馈零极点增益模型
2.LTI对象 为了对系统的调用和计算带来方便。根据软件工程中面向对象的思想,
MATLAB通过建立专用的数据结构类型,把线性时不变系统(LTI)的各种模型封装 成为统一的LTI对象。

实验二 用MATLAB建立传递函数模型

实验二 用MATLAB建立传递函数模型

实验二 用MATLAB 建立传递函数模型一、实验目的(1)熟悉MA TLAB 实验环境,掌握MA TLAB 命令窗口的基本操作;(2)掌握MA TLAB 建立控制系统数学模型的命令及模型相互转换的方法; (3)掌握使用MA TLAB 命令化简模型基本连接的方法;(4)学会使用Simulink 模型结构图化简复杂控制系统模型的方法。

二、实验原理及内容控制系统常用的数学模型有四种:传递函数模型(tf 对象)、零极点增益模型(zpk 对象)、结构框图模型和状态空间模型(ss 对象)。

经典控制理论中数学模型一般使用前三种模型,状态空间模型属于现代控制理论范畴。

1、有理函数模型线性连续系统的传递函数模型可一般地表示为:m n a s a s a s b s b s b s b s G nn n n m m m m ≥++⋅⋅⋅++++⋅⋅⋅++=--+- )(1111121 (1)将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量num 和den ,就可以轻易地将传递函数模型输入到MATLAB 环境中。

命令格式为:],,,,[121+⋅⋅⋅=m m b b b b num ; (2) ],,,,,1[121n n a a a a den -⋅⋅⋅=;(3)用函数tf ( ) 来建立控制系统的传递函数模型,该函数的调用格式为: G =tf(num ,den); (4) 例1 一个简单的传递函数模型:54325)(234+++++=s s s s s s G 可以由下面的命令输入到MATLAB 工作空间中去。

>> num=[1,2];den=[1,2,3,4,5]; G=tf(num ,den) 运行结果:Transfer function: s + 2 ----------------------------- s^4 + 2 s^3 + 3 s^2 + 4 s + 5 我的实验: >> num=[1,2]; den=[1,2.3,4,5]; G=tf(num,den)Transfer function: s + 2 ----------------------- s^3 + 2.3 s^2 + 4 s + 5这时对象G 可以用来描述给定的传递函数模型,作为其它函数调用的变量。

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

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

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

二、实验原理设系统的模型如式(1.1)所示:⎩⎨⎧+=+=DCx y BuAx 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建立传递函数模型

《自动控制原理》实验指导书北京科技大学自动化学院控制科学与工程系2013年4月目录实验一典型系统的时域响应和稳定性分析 (1)实验二用MATLAB建立传递函数模型 (5)实验三利用MATLAB进行时域分析 (13)实验四线性定常控制系统的稳定分析 (25)实验五利用MATLAB绘制系统根轨迹 (29)实验六线性系统的频域分析 (37)实验七基于MATLAB控制系统频域法串联校正设计 (51)附录1 MATLAB简介 (58)附录2 SIMULINK简介 (67)实验一典型系统的时域响应和稳定性分析一、实验目的1.研究二阶系统的特征参量(ξ、ωn) 对过渡过程的影响。

2.研究二阶对象的三种阻尼比下的响应曲线及系统的稳定性。

3.熟悉Routh判据,用Routh判据对三阶系统进行稳定性分析。

二、实验设备PC机一台,TD-ACC+教学实验系统一套。

三、实验原理及内容1.典型的二阶系统稳定性分析(1) 结构框图:如图1-1所示。

图1-1(2) 对应的模拟电路图:如图1-2所示。

图1-2(3) 理论分析系统开环传递函数为:G(s)=?开环增益:K=?先算出临界阻尼、欠阻尼、过阻尼时电阻R的理论值,再将理论值应用于模拟电路中,观察二阶系统的动态性能及稳定性,应与理论分析基本吻合。

在此实验中由图1-2,可以确地1-1中的参数。

0?T =, 1?T =,1?K = ?K ⇒=系统闭环传递函数为:()?W s =其中自然振荡角频率:?n ω=;阻尼比:?ζ=。

2.典型的三阶系统稳定性分析(1) 结构框图:如图1-3所示。

图1-3(2) 模拟电路图:如图1-4所示。

图1-4(3) 理论分析系统的开环传函为:()()?G s H s =系统的特征方程为:1()()0G s H s +=。

(4) 实验内容实验前由Routh 判断得Routh 行列式为:S 3 S 2 S 1 S 0为了保证系统稳定,第一列各值应为正数,因此可以确定系统稳定K值的范围系统临界稳定K系统不稳定K值的范围四、实验步骤1)将信号源单元的“ST”端插针与“S”端插针用“短路块”短接。

控制系统数字仿真习题答案

控制系统数字仿真习题答案

控制系统数字仿真与CAD第二章习题答案2-1 思考题:(1)数学模型的微分方程,状态方程,传递函数,零极点增益和部分分式五种形式,各有什么特点?(2)数学模型各种形式之间为什么要互相转换?(3)控制系统建模的基本方法有哪些?他们的区别和特点是什么?(4)控制系统计算机仿真中的“实现问题”是什么含意?(5)数值积分法的选用应遵循哪几条原则?答:(1)微分方程是直接描述系统输入和输出量之间的制约关系,是连续控制系统其他数学模型表达式的基础。

状态方程能够反映系统内部各状态之间的相互关系,适用于多输入多输出系统。

传递函数是零极点形式和部分分式形式的基础。

零极点增益形式可用于分析系统的稳定性和快速性。

利用部分分式形式可直接分析系统的动态过程。

(2)不同的控制系统的分析和设计方法,只适用于特定的数学模型形式。

(3)控制系统的建模方法大体有三种:机理模型法,统计模型法和混合模型法。

机理模型法就是对已知结构,参数的物理系统运用相应的物理定律或定理,经过合理的分析简化建立起来的各物理量间的关系。

该方法需要对系统的内部结构和特性完全的了解,精度高。

统计模型法是采用归纳的方法,根据系统实测的数据,运用统计规律和系统辨识等理论建立的系统模型。

该方法建立的数学模型受数据量不充分,数据精度不一致,数据处理方法的不完善,很难在精度上达到更高的要求。

混合法是上述两种方法的结合。

(4)“实现问题”就是根据建立的数学模型和精度,采用某种数值计算方法,将模型方程转换为适合在计算机上运行的公式和方程,通过计算来使之正确的反映系统各变量动态性能,得到可靠的仿真结果。

(5)数值积分法应该遵循的原则是在满足系统精度的前提下,提高数值运算的速度和并保证计算结果的稳定。

2-2.用matlab语言求下列系统的状态方程、传递函数、零极点增益、和部分分式形式的模型参数,并分别写出其相应的数学模型表达式:(1) G(s)=324327242410355024s s ss s s s+++++++(2).X=2.25 -5 -1.25 -0.542.25 -4.25 -1.25 -0.2520.25 -0.5 -1.25 -121.25 -1.75 -0.25 -0.75 0X⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥+⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦u y=[0 2 0 2] X(1)解:(1)状态方程模型参数:编写matlab程序如下>> num=[1 7 24 24];>> den=[1 10 35 50 24];>> [A B C D]=tf2ss(num,den)得到结果:A=-10 -35 -50 -241 0 0 00 1 0 00 0 1 0⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦,B=1⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦,C=[]1 7 24 24,D=[0]所以模型为:.X=-10 -35 -50 -241 0 0 00 1 0 00 0 1 0⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦X+1⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦u,y=[]1 7 24 24X(2)零极点增益:编写程序>> num=[1 7 24 24];>> den=[1 10 35 50 24];>> [Z P K]=tf2zp(num,den)得到结果Z= -2.7306 + 2.8531 , -2.7306 - 2.8531i ,-1.5388P= -4, -3 ,-2 ,-1K=1(3) 部分分式形式:编写程序>> num=[1 7 24 24]; >> den=[1 10 35 50 24];>> [R P H]=residue(num,den) 得到结果R= 4.0000 ,-6.0000, 2.0000, 1.0000 P= -4.0000, -3.0000 , -2.0000 ,-1.0000 H=[]G(s)=46214321s s s s -+++++++(2)解:(1)传递函数模型参数:编写程序>> A=[2.25 -5 -1.25 -0.52.25 -4.25 -1.25 -0.250.25 -0.5 -1.25 -1 1.25 -1.75 -0.25 -0.75];>> B=[4 2 2 0]'; >> C=[0 2 0 2];>> D=[0];>> [num den]=ss2tf(A,B,C,D)得到结果num = 0 4.0000 14.0000 22.0000 15.0000 den =1.0000 4.0000 6.2500 5.2500 2.2500324324 s + 14 s + 22 s + 15()s + 4 s + 6.25 s + 5.25 s + 2.25G s =(2) 零极点增益模型参数:编写程序>> A=[2.25 -5 -1.25 -0.52.25 -4.25 -1.25 -0.25 0.25 -0.5 -1.25 -1 1.25 -1.75 -0.25 -0.75];>> B=[4 2 2 0]'; >> C=[0 2 0 2];>> D=[0];>> [Z,P,K]=ss2zp(A,B,C,D)得到结果Z =-1.0000 + 1.2247i -1.0000 - 1.2247i -1.5000P= -0.5000 + 0.8660i -0.5000 - 0.8660i -1.5000-1.5000K = 4.0000表达式 ()()()()()4s+1-1.2247i s+1+1.2247i ()s+0.5-0.866i s+0.5+0.866i s+1.5G s =(3)部分分式形式的模型参数:编写程序>> A=[2.25 -5 -1.25 -0.52.25 -4.25 -1.25 -0.25 0.25 -0.5 -1.25 -1 1.25 -1.75 -0.25 -0.75];>> B=[4 2 2 0]'; >> C=[0 2 0 2];>> D=[0];>> [num den]=ss2tf(A,B,C,D)>> [R,P,H]=residue(num,den)得到结果R = 4.0000 -0.0000 0.0000 - 2.3094i 0.0000 +2.3094iP = -1.5000 -1.5000 -0.5000 + 0.8660i -0.5000 -0.8660iH =[]4 2.3094 2.3094() 1.50.50.8660.50.866i iG s s s i s i=-+++-++2-3.用欧拉法求下面系统的输出响应y(t)在0≤t ≤1上,h=0.1时的数值。

matlab 状态空间方程转化为传递函数 -回复

matlab 状态空间方程转化为传递函数 -回复

matlab 状态空间方程转化为传递函数-回复Matlab是一种功能强大的数学软件,用于科学计算、数据分析和工程设计等多个领域。

其中,状态空间方程是描述动态系统的一种常见形式。

在实际应用中,有时需要将状态空间方程转化为传递函数形式,以便于系统的分析与控制设计。

本文将以“将matlab中的状态空间方程转化为传递函数”为主题,详细介绍该过程的步骤和注意事项。

一、状态空间方程和传递函数的基本概念1.1 状态空间方程状态空间方程是用矩阵形式表示的动态系统数学模型。

它由状态方程和输出方程组成。

其中,状态方程描述了系统状态的变化规律,而输出方程表示系统的输出与状态之间的关系。

状态空间方程一般表示为:dx/dt = Ax + Buy = Cx + Du其中,x是一个n维列向量,表示系统的状态;u是m维列向量,表示系统的输入;y是p维列向量,表示系统的输出;A、B、C和D分别是已知的系数矩阵。

1.2 传递函数传递函数是描述线性时不变系统的输入与输出之间关系的函数。

它是用拉普拉斯变换的形式表示的。

传递函数一般表示为:G(s) = C(sI - A)^(-1) B + D其中,G(s)为传递函数,s是复变量,A、B、C和D同样是系数矩阵。

二、状态空间方程转化为传递函数的步骤2.1 状态空间方程求解特征值和特征向量首先,我们需要从状态方程中求解矩阵A的特征值和特征向量。

特征值具有重要的物理和数学意义,可以反映系统的稳定性和响应特性。

可以通过在Matlab中使用函数' eig(A) '来求解特征值,使用函数' [V, D] = eig(A) '来求解特征向量。

其中,V是特征向量矩阵,D是特征值对角矩阵。

2.2 构造传递函数根据特征值和特征向量,我们可以构造传递函数的分子和分母。

传递函数的分子对应于输入矩阵B,分母对应于特征值和特征向量。

传递函数的分子可以表示为:N(s) = det(sI - A)其中,det表示矩阵的行列式运算。

基于Matlab进行系统的传递函数的零极点求解及与空间状态表达式的转换

基于Matlab进行系统的传递函数的零极点求解及与空间状态表达式的转换

基于Matlab进行系统的传递函数的零极点求解及与空间状态表达式的转换
系统的传递函数的零极点求解及与空间状
态表达式的转换
一、学习目的
1、学习系统状态空间模型的建立方法、了解状态空间模型与传递函数相互转换的方法;
2、通过编程、上机调试,掌握系统状态空间模型与传递函数相互转换的方法。

二、原理说明
1.根据所给系统的传递函数,依据系统的传递函数阵和状态空间表达式之间的关系,采用MATLA 的file.m 编程。

2.已知系统的传递函数求极点的matlab 编程。

三、Matlab 程序 给定系统6
11654232+++++=s s s s s G S )(,求系统的极点和空间状态模型。

程序:
num=[0 1 4 5];
den=[1 6 11 6]; sys=tf(num,den)
6
11654sys 232+++++=s s s s s
sys1=tf22p(num,den)
sys1=-2.0000+1.0000i
-2.0000-1.0000i [A,B,C,D]=tf22p(num,den) A= -6 -11 -6
1 0 0
0 1 0
B= 1
C= 1 4 5
D= 0。

控制系统传递函数的MATLAB表示

控制系统传递函数的MATLAB表示
% 状态空间模型转换成有理分式模型 [Z,P,K]=ss2zp(A2,B2,C2,D2)
% 状态空间模型转换成零极点增益模型
程序中,命令 tf2ss,zp2ss 及 ss2tf,ss2zp 是状态空间模型与有理分式及零、极点、增益 模型之间的相互转换。
二、传递函数框图的处理
用框图可以方便地表示传递函数的并联,串联及反馈。为简洁,仅以有理分式模型为例。
G1(s)·G2(s)
3. 反馈
G1(s)
G2(s)
G3(s)
G1(s)G2(s) 1+G1(s)G2(s) G3(s)
sysc=feedback(syss,sys3,±1) %默认值(-1) [numc, denc] = feedback(nums, dens, num3, den3)
4. 单位反馈
控制系统传递函数的 MATLAB 表示
一、传递函数的两种形式
1.有理分式形式
分别将分子、分母中 s 多项式的系数按降幂排列成行矢量,缺项的系数用 0 补齐。上述函数 可表示为 num1=[2 1] %(注意:方括号,同一行的各元素间留空格或逗号)。 den1=[1 2 2 1]
syss1=tf(num1,den1) 运行后,返回传递函数 G1 (s) 的形式。这种形式不能直接进行符号运算!
G1(s)
G2(s)
G1(s)G2(s) 1+G1(s)G2(s)
sysd = feedback(syss, 1ms, dens, 1, 1) %(单位反馈)
上面给出了同一指令的两种形式,相当于两套平行指令。 对于零极点增益形式,书写稍复杂一些,可先用 zpk 转换成系统形式,或用 zp2tf 转折换成 有理分式形式后再进行框图化简操作。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

传递函数、零极点增益与状态空间三种模型转换的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==1
sys=ss(A,B,C,D);
G=tf(sys),
elseif key==2
sys=ss(A,B,C,D);
G=zpk(sys),
end
2、例题分析
【例1】已知一加压液流箱系统,该系统的状态变量是液位h(t)与料浆总压H(t),输入变量是料浆流入量u1(t)与空气流入量u2(t),输出变量就是状态变量H(t)与h(t)本身,系统状态空间模型为
H(t)
ℎ(t)=−0.39120.01234
−0.0220
H(t)
ℎ(t)+
0.033440.01234
0.0008960
u1(t)
u2(t) y1(t)
y2(t)=11
H(t)
ℎ(t)+00
u1(t)
u2(t)
求多个输入到输出的传递函数模型与多个输入到输出的零极点增益模型。

>> 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.0002715
From 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。

输出sys 是储存传递函数数据的传递函数目标。

function G=tfto2(key,n,d)
if key==1
sys=tf(n,d);
G=zpk(sys),
elseif key==2
sys=tf(n,d);
G=ss(sys),
end
2、例题分析
,将其转换为状态空间与零极点模型。

【例2】设一系统传递函数G s=6(s+4)
(s+1)(s+2)(s+3)
>> clear;n=[6 24];d=[1 6 11 6];
key=1;G=tfto2(key,n,d);
key=2;G=tfto2(key,n,d);
G =
6 (s+4)
-----------------
(s+3) (s+2) (s+1)
Continuous-time zero/pole/gain model.
G =
a =
x1 x2 x3
x1 -6 -2.75 -1.5
x2 4 0 0
x3 0 1 0
b =
u1
x1 2
x2 0
x3 0
c =
x1 x2 x3
y1 0 0.75 3
d =
u1
y1 0
Continuous-time state-space model.
四、零极点增益模型转换为状态空间、传递函数模型
1、MATLAB算法
%将零极点模型转化成传递函数模型G(s)=num(s)/den(s)或状态空间模型
%x(t)=Ax(t)+Bu(t),y(t)=Cx(t)+Du(t)的函数zpkto2.m,函数调用格式为
%G=zpkto2(key,z,p,k),其中输入参数z,p,k为系统零点、系统极点、系统增益%当输入参数key=1时,为传递函数模型,key=2时为状态空间模型function G=zpkto2(key,z,p,k)
if key==1
sys=zpk(z,p,k);
G=tf(sys),
elseif key==2
sys=zpk(z,p,k);
G=ss(sys),
end
2、例题分析
【例3】对【例2】的程序进行验证。

>> clear;k=6;z=-4;p=[-1,-2,-3];
key=1;G=zpkto2(key,z,p,k);
G =
6 s + 24
----------------------
s^3 + 6 s^2 + 11 s + 6
Continuous-time transfer function.
【例4】调用ssto2.m函数验证。

>> clear;A=[-6 -2.75 -1.5;4 0 0;0 1 0];B=[2;0;0];C=[0 0.75 3]; D=0;key=1;G=ssto2(key,A,B,C,D);
key=2;G=ssto2(key,A,B,C,D);
G =
6 s + 24
----------------------
s^3 + 6 s^2 + 11 s + 6
Continuous-time transfer function.
G =
6 (s+4)
-----------------
(s+3) (s+2) (s+1)
Continuous-time zero/pole/gain model.。

相关文档
最新文档