最近在复习自动控制原理,想看看自控的题能不能用matlab来简单地做出来,想到了一个理解梅森公式的角度,记录如下:
一道题
首先我们来看到一道题:
这题看上去挺简单的,但是梅森公式太不难记忆并且难以用计算机实现了,那么我们从根本出发来探究一下梅森公式是如何推导的,首先由信号流图写出相应的代数方程式:
传递函数G(s)=C(s)/R(s)=X5/R(s),为了便于求解,整理得:
全部写成矩阵的方式即:X=QX+PR,我们只需要解出X=PR/(I-Q),X(5)/R就是我们要的传递函数
p.s. 为了编写代码的方便,我们完全可以直接求P/(I-Q)
根据这个算法,写出的MATLAB程序如下:
syms G1 G2 G3 G4 H1 H2 H3;
Q(1,5)=-H1; %字符矩阵的第一个赋值必须是字符
Q(2,1)=G1;Q(2,4)=-H2;
Q(3,2)&