实验一主要探讨的是在MATLAB环境下,如何将一个多变量系统的传递函数转换成状态空间表达式,以及反之如何从状态空间模型得到传递函数。这在控制系统的分析和设计中非常重要,因为不同的表示方式适用于不同的问题。
让我们了解传递函数和状态空间表达式的基本概念。传递函数是线性时不变系统在s域的频率响应,它描述了系统的输入与输出之间的关系,形式为G(s) = num(s) / den(s),其中num(s)是分子多项式,den(s)是分母多项式。状态空间表达式则是一种更通用的系统表示方法,用一组连续时间的状态变量x(t)来描述系统的动态行为,形式为x'(t) = Ax(t) + Bu(t),y(t) = Cx(t) + Du(t),其中A、B、C、D分别是系统矩阵,分别代表状态矩阵、输入矩阵、输出矩阵和直接传递矩阵。
MATLAB提供了相应的函数来帮助我们进行这两种表示之间的转换。`ss`函数用于创建状态空间模型,输入参数是A、B、C、D四个矩阵。例如,`sys=ss(A,B,C,D)`。而`tf`函数则用于创建传递函数,输入参数是分子和分母多项式的系数向量,例如,`G=tf(num,den)`。
为了从传递函数得到状态空间模型,我们可以使用`tf2ss`函数,如`[A,B,C,D]=tf2ss(num,den)`。相反,从状态空间模型得到传递函数,我们可以调用`ss2tf`函数,输入是A、B、C、D矩阵,以及对于多输入系统指定输入序号`iu`,例如`[num,den]=ss2tf(A,B,C,D,iu)`。
实验中,给定的传递函数是G(s) = 3/(s^2 + 4s + 5)(2s + 1),首先将其转换为状态空间模型,然后使用`ss2tf`验证转换后的传递函数是否相同。同样,对于给定的传递函数G(s) = s/(s^3 + 6s^2 + 11s + 6),也进行了类似的处理,得到了其零极点增益模型,并通过`tf2zp`获取零极点分布。
通过这个实验,学习者可以掌握如何在MATLAB中操作多变量系统的动态模型,理解传递函数和状态空间模型的相互转换,这对于控制系统的设计和分析是非常基础且重要的技能。在实际工程应用中,选择合适的模型表示有助于简化问题,提高分析效率。