首页 理论教育 如何利用Matlab实现系统模型之间的相互转换?

如何利用Matlab实现系统模型之间的相互转换?

时间:2023-06-27 理论教育 版权反馈
【摘要】:以下将讨论系统模型由传递函数变换为状态方程,反之亦然。将闭环传递函数写为当有了这一传递函数表达式后,使用如下Matlab命令[A,B,C,D]=tf2ss就可给出状态空间表达式。应着重强调,任何系统的状态空间表达式都不是惟一的。Matlab Program 9-2将产生给定系统的传递函数。以下就是下列四个传递函数的Matlab表达式以上主要讨论的是连续系统的状态空间表达式的建立,离散系统的状态空间表达式如何建立呢?

如何利用Matlab实现系统模型之间的相互转换?

以下将讨论系统模型由传递函数变换为状态方程,反之亦然。现讨论如何由传递函数变换为状态方程。

闭环传递函数写为

当有了这一传递函数表达式后,使用如下Matlab命令

[A,B,C,D]=tf2ss(num,den)

就可给出状态空间表达式。应着重强调,任何系统的状态空间表达式都不是惟一的。对于同一系统,可有许多个(无穷多个)状态空间表达式。

(1)传递函数系统的状态空间表达式

考虑以下传递函数

对该系统,有多个(无穷多个)可能的状态空间表达式,其中一种可能的状态空间表达式为

另外一种可能的状态空间表达式(在无穷个中)为

Matlab将式(9-59)给出的传递函数变换为由式(9-60)给出的状态空间表达式。对于此处考虑的系统,Matlab Program 9-1将产生矩阵A,B,C和D。

(2)由状态空间表达式到传递函数的变换

为了从状态空间方程得到传递函数,采用以下命令

[num,den]=ss2tf[A,B,C,D,iu]

对多输入的系统,必须具体化iu。例如,如果系统有3个输入(u1,u2,u3),则iu必须为1,2或3中的一个,其中1表示u1,2表示u2,3表示u3。

如果系统只有一个输入,则可采用(www.xing528.com)

[num,den]=ss2tf(A,B,C,D)

[num,den]=ss2tf(A,B,C,D,1)

例9-12 试求下列状态方程所定义的系统的传递函数。

Matlab Program 9-2将产生给定系统的传递函数。所得传递函数为

对于系统有多个输入与多个输出的情况,见例9-13。

例9-13 考虑一个多输入/多输出系统。当系统输出多于一个时,Matlab命令

[NUM,den]=ss2tf(A,B,C,D,iu)

对每个输入产生所有输出的传递函数(分子系数转变为具有与输出相同行的矩阵NUM)

考虑由下式定义的系统

该系统有两个输入和两个输出,包括四个传递函数:Y1(s)/U1(s)、Y2(s)/U1(s)、Y1 (s)/U2(s)和Y2(s)/U2(s)(当考虑输入u1时,可设u2为零。反之亦然),见下列Matlab Program 9-3输出。

以下就是下列四个传递函数的Matlab表达式

以上主要讨论的是连续系统的状态空间表达式的建立,离散系统的状态空间表达式如何建立呢?一般来说,有两种情况需要考虑:一是当离散系统采用差分方程描述时,可采用与连续系统类似的方法;二是当对系统采用采样方法离散化连续系统时,此时需要知道连续系统状态方程的解。因此,关于离散系统状态空间表达式建立的有关内容我们将在下一节进行讨论。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈