自动控制原理之如何理解梅森公式(内附MATLAB求解传递函数程序)


最近在复习自动控制原理,想看看自控的题能不能用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)=G2;Q(3,5)=-H3;
Q(4,3)=G3;
Q(5,4)=G4;
P=[1;0;0;0;0];
I=eye(size(Q));
W=(I-Q)\P;
W5=W(5);

结果如下:
在这里插入图片描述
可以看到和用梅森公式的结果一模一样

总结与归纳

设信号流图中有Ki个输入节点,K个中间和输出节点,它们分别代表输入信号ui(i=1,2,…Ki)和系统状态xj(j=1,2,…K)。信号流图代表它们之间的联结关系。用拉普拉斯算子表示后,任意xj可以表为ui和xj的线性组合:

用矩阵表示可写成:
其中:X = [x1;x2;…xk] 为K维状态列向量, U=[u1;u2;…;uki] 为Ki维输入列向量,Q为K×K维的连接矩阵,P为K×Ki维的输入矩阵。
由此可得:
因此,系统的传递函数矩阵为 P/(I-Q),这个简明的公式就等价于梅森公式。只要写出P和Q,任何复杂系统的传递矩阵都可用这个简单的式子,通过MATLAB求出,若代入的是符号,得出的是公式,代入的是LTI数据,得出的是系统相应的LTI传递矩阵的值。

为了更加深入地理解P,来看一道有两个输入的题:
求下图的传递函数
在这里插入图片描述
答:
在这里插入图片描述
matlab程序:

clear;
syms G1 G2 H1;
Q(2,1)=G1;
Q(3,2)=G2;
Q(1,3)=-H1;
P=[1 0;0 1;0 0];
I=eye(size(Q));
W=(I-Q)\P;
W3=W(3);

运行结果
在这里插入图片描述

参考资料:
1.http://see.xidian.edu.cn/faculty/hchchen/html/paper/100.html
2.胡寿松《自动控制原理》

觉得有用就点赞一下吧~

  • 17
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值