目录

  • 一、梅森公式
  • 二、例题
    • 2.1 前向通道怎么数
    • 2.2 回路怎么数
    • 2.3 找不接触回路,求系统特征式
    • 2.4 △i(s)\triangle_i(s)△i​(s)
    • 2.5 结果表示
  • 参考资料

一、梅森公式

对于用信号流图表示的控制系统,可以用梅森( Mason)公式方便地求出从输入信号到输出信号的传递函数。为了给出梅森公式的表达式,先给出如下几个定义。
(1)前向通道:从输入到输出的一条按箭头方向可以走通并且在每个节点只通过一次的通道
(2)回路:从某个节点出发按箭头方向回到该节点并且在每个节点只通过一次的通道。
(3)不接触回路:若两个回路没有公共节点,则称它们为不接触回路。
梅森公式可以表示如下:
G(s)=1△(s)∑iQi(s)△i(s)G(s)=\frac{1}{\triangle(s)}\sum_iQ_i(s)\triangle_i(s)G(s)=△(s)1​i∑​Qi​(s)△i​(s)
式中,G(s)G(s)G(s)表示从某个输入信号到某个输出信号的传递函数。表达式右边各项的意义如下:
△(s)=1-所有不同回路的传递函数之和+每两个不接触回路的传递函数乘积之和-每三个不接触回路的传递函数乘积之和+…-…\begin{aligned} \triangle(s) = &1-所有不同回路的传递函数之和\\ &+每两个不接触回路的传递函数乘积之和\\ &-每三个不接触回路的传递函数乘积之和\\ &+…\\ &-… \end{aligned}△(s)=​1-所有不同回路的传递函数之和+每两个不接触回路的传递函数乘积之和-每三个不接触回路的传递函数乘积之和+…-…​
(即:加偶减奇)

Qi(s)Q_i(s)Qi​(s)——从该输入到该输出的某前向通道的传递函数。
△i(s)\triangle_i(s)△i​(s)——将△(s)\triangle(s)△(s)中与Qi(s)Q_i(s)Qi​(s)通道接触的回路的传递函数令为零后得到的表达式。
△(s)\triangle(s)△(s)——称为系统的特征式。

二、例题

求如图所示系统的传递函数:

为了方便后面的表示,找到每个节点,标上字母:

2.1 前向通道怎么数

根据前向通道的定义,只要不回头,把所有可能性都考虑到即可。上面的信号流图,其实可以用图论的方法来分析,由于R到a和e到C是固定的,因此目标就是找到从a到e的所有符合条件的路径。首先建立各个节点之间的邻接矩阵:第(i,j)(i,j)(i,j)个元素表示从第iii个节点到第jjj个节点的传递函数。

a b c d e
a G2 G6
b -G10 G3 G7
c G4
d -G8 G5
e -G9

接下来我们从R出发,首先到达a,然后观察到a的出度是2,可以到b也可以到c,因此分两种情况:
1)R-a-b
站在b这个点继续走,由于“前向通道不回头”,因此,从b出发的下一步只能是c、d、e,不可能再回到已经去过的a了。从邻接矩阵上看,可选的就是c或者e了。因此,这里再分两种情况:
1-1)R-a-b-c
到达c以后,由于“前向通道不回头”,因此,下一步只能是d、e,不可能再回到已经去过的a、b了。从邻接矩阵上看,可选的就是d了。从d再出发,路径为R-a-b-c-d,因此下一步只能是e,不可能再回到已经去过的a、b、c了。最后,再从e到C,整条路径为R-a-b-c-d-e-C。
1-2)R-a-b-e
从e出来以后,直接到C,因此整条路径为R-a-b-e-C。
2)R-a-c
到达c以后,由于“前向通道不回头”,因此,下一步只能是b、d、e,不可能再回到已经去过的a了。从邻接矩阵上看,可选的就是d了。与1-1类似,得到整条路径为R-a-c-d-e-C。

整理一下,我们找到的3条前向通道,用节点顺序表示为:
(1)R-a-b-c-d-e-C
(2)R-a-b-e-C
(3)R-a-c-d-e-C

其实,这个过程可以视为一棵树的构造,从a往下推到e,一旦路上出现重复的节点,就排除:

然后再以两两节点为端点,在邻接矩阵上找它们之间的传递函数,把整条路经上的传递函数串联即可:
Q1(s)=G1(s)G2(s)G3(s)G4(s)G5(s)Q_1(s)=G_1(s)G_2(s)G_3(s)G_4(s)G_5(s)Q1​(s)=G1​(s)G2​(s)G3​(s)G4​(s)G5​(s)
Q2(s)=G1(s)G2(s)G7(s)Q_2(s)=G_1(s)G_2(s)G_7(s)Q2​(s)=G1​(s)G2​(s)G7​(s)
Q3(s)=G1(s)G6(s)G4(s)G5(s)Q_3(s)=G_1(s)G_6(s)G_4(s)G_5(s)Q3​(s)=G1​(s)G6​(s)G4​(s)G5​(s)

2.2 回路怎么数

回路,根据定义,从哪里出发,就要回到哪里。和2.1类似,也可以通过构造树来求解,只不过这次不是从a到e,而是从a到a、从b到b、从c到c、从d到d、从e到e——所谓“回路”。同时,也必须保证除了起点和终点相同以外,没有其他节点是重复访问的。

1)从a到a
根据邻接矩阵可以看出,要想回到a,整条路径的倒数第二个节点必须是b或者e(表上第1列),这可以帮助我们在画树的时候有所预判。

找到的回路有:
(1)a-b-a
(2)a-b-c-d-e-a
(3)a-b-e-a
(4)a-c-d-e-a
对应的传递函数为:
L1(s)=−G2(s)G10(s)L_1(s)=-G_2(s)G_{10}(s)L1​(s)=−G2​(s)G10​(s)
L2(s)=−G2(s)G3(s)G4(s)G5(s)G9(s)L_2(s)=-G_2(s)G_3(s)G_4(s)G_5(s)G_9(s)L2​(s)=−G2​(s)G3​(s)G4​(s)G5​(s)G9​(s)
L3(s)=−G2(s)G7(s)G9(s)L_3(s)=-G_2(s)G_7(s)G_9(s)L3​(s)=−G2​(s)G7​(s)G9​(s)
L4(s)=−G4(s)G5(s)G6(s)G9(s)L_4(s)=-G_4(s)G_5(s)G_6(s)G_9(s)L4​(s)=−G4​(s)G5​(s)G6​(s)G9​(s)

2)从b到b

找到的回路有:
(1)b-a-b
(2)b-c-d-e-a-b
(3)b-e-a-b
可以发现,这里的三条回路全部和“从a到a”的前三条回路重复了,也就是说上面辛苦画了图,结果却白找了。怎么避免这种白费力的情况呢?观察这里的第一条回路b-a-b,它其实是一个包含了a和b两个节点的环,既然是一个环,那么它也可以写成a-b-a,这也就是“从a到a”的第一条回路。因此,在找“从b到b”的回路的时候,我们应该排除掉所有出现a的线路——因为凡是经过a的环,必然也属于“从a到a”的回路,是前面已经找过的。

3)从c到c
有了前面的经验,我们在找“从c到c”的回路时,需要排除所有会出现a和b的线路。由于最后需要回到c,因此从邻接矩阵来看,回路里经过的倒数第二个节点必然是a, b, d其中之一,又因为我们需要排除a和b,所以从c到c的回路必然是c-…-d-c的形式。

可以看到,由于我们排除了a和b,因此这次搜索的规模一下子减小了。找到的回路为:c-d-c,对应的传递函数为:L5(s)=−G4(s)G8(s)L_5(s)=-G_4(s)G_8(s)L5​(s)=−G4​(s)G8​(s)

4)从d到d
同理,从d到d的回路中不应该出现a, b, c;而从邻接矩阵可以看到,只有经过c才能到达d,因此不存在符合条件的“从d到d”的回路。

5)从e到e
同理,从e到e的回路中不应该出现a, b, c, d;由于e是最后一个节点,它没法不经过其他节点而到达自己,因此,也不存在符合条件的“从e到e”的回路。

终于数完了!
总结一下,我们找到的回路有5条:
(1)a-b-a
(2)a-b-c-d-e-a
(3)a-b-e-a
(4)a-c-d-e-a
(5)c-d-c
对应的传递函数为:
L1(s)=−G2(s)G10(s)L_1(s)=-G_2(s)G_{10}(s)L1​(s)=−G2​(s)G10​(s)
L2(s)=−G2(s)G3(s)G4(s)G5(s)G9(s)L_2(s)=-G_2(s)G_3(s)G_4(s)G_5(s)G_9(s)L2​(s)=−G2​(s)G3​(s)G4​(s)G5​(s)G9​(s)
L3(s)=−G2(s)G7(s)G9(s)L_3(s)=-G_2(s)G_7(s)G_9(s)L3​(s)=−G2​(s)G7​(s)G9​(s)
L4(s)=−G6(s)G4(s)G5(s)G9(s)L_4(s)=-G_6(s)G_4(s)G_5(s)G_9(s)L4​(s)=−G6​(s)G4​(s)G5​(s)G9​(s)
L5(s)=−G4(s)G8(s)L_5(s)=-G_4(s)G_8(s)L5​(s)=−G4​(s)G8​(s)
从数的过程来看,一开始“从a到a”的回路是最多的,后面“从x到x”的回路由于要规避前面已经出现过的节点,因此新增的回路会很少,搜索的速度会变快。

2.3 找不接触回路,求系统特征式

回顾一下不接触回路的定义:若两个回路没有公共节点,则称它们为不接触回路。
也就是说,对于上面找到的5条回路,我们要一一对照着看。
例如对于(1)a-b-a,和它配对的不接触回路肯定不经过a和b,观察(2)(3)(4)(5),发现(5)c-d-c是符合要求的。
对于(2)a-b-c-d-e-a,不存在和它配对的不接触回路。
对于(3)a-b-e-a,(5)c-d-c是符合要求的。
对于(4)a-c-d-e-a,不存在和它配对的不接触回路。
对于(5)c-d-c,(1)a-b-a和(3)a-b-e-a是符合要求的,但是前面已经找过了,重复的不算。

找不接触回路的时候,也有两个省力的方法:

  • 为了避免重复,找(1)的不接触回路的时候,备选是(2)(3)(4)(5);找(2)的不接触回路的时候,就不考虑(1)了,只看(3)(4)(5)是否满足;以此类推。
  • 一共只有abcde五个节点,一个回路至少有2个节点,所以任何一条包含5个节点的回路都不存在跟它匹配的不接触回路。

结论:L1(s)L_1(s)L1​(s)和L5(s)L_5(s)L5​(s)、L3(s)L_3(s)L3​(s)和L5(s)L_5(s)L5​(s)是不接触回路。

2.4 △i(s)\triangle_i(s)△i​(s)

由于L1(s)L_1(s)L1​(s)和L5(s)L_5(s)L5​(s)、L3(s)L_3(s)L3​(s)和L5(s)L_5(s)L5​(s)是不接触回路,因此系统的特征式为:
△(s)=1−∑i=15Li+L1L5+L3L5=1+G2G10+G2G3G4G5G9+G2G7G9+G6G4G5G9+G4G8+G2G10G4G8+G2G7G9G4G8\begin{aligned} \triangle(s)&=1-\sum_{i=1}^5L_i+L_1L_5+L_3L_5\\ &=1+G_2G_{10}+G_2G_3G_4G_5G_9+G_2G_7G_9\\ &+G_6G_4G_5G_9+G_4G_8+G_2G_{10}G_4G_8+G_2G_7G_9G_4G_8 \end{aligned}△(s)​=1−i=1∑5​Li​+L1​L5​+L3​L5​=1+G2​G10​+G2​G3​G4​G5​G9​+G2​G7​G9​+G6​G4​G5​G9​+G4​G8​+G2​G10​G4​G8​+G2​G7​G9​G4​G8​​
接下来算△i(s)\triangle_i(s)△i​(s),回顾一下定义:
Qi(s)Q_i(s)Qi​(s)——从该输入到该输出的某前向通道的传递函数。
△i(s)\triangle_i(s)△i​(s)——将△(s)\triangle(s)△(s)中与Qi(s)Q_i(s)Qi​(s)通道接触的回路的传递函数令为零后得到的表达式。
我们前面找到的前向通道为:
(1)R-a-b-c-d-e-C
(2)R-a-b-e-C
(3)R-a-c-d-e-C
计算的Qi(s)Q_i(s)Qi​(s)为:
Q1(s)=G1(s)G2(s)G3(s)G4(s)G5(s)Q_1(s)=G_1(s)G_2(s)G_3(s)G_4(s)G_5(s)Q1​(s)=G1​(s)G2​(s)G3​(s)G4​(s)G5​(s)
Q2(s)=G1(s)G2(s)G7(s)Q_2(s)=G_1(s)G_2(s)G_7(s)Q2​(s)=G1​(s)G2​(s)G7​(s)
Q3(s)=G1(s)G6(s)G4(s)G5(s)Q_3(s)=G_1(s)G_6(s)G_4(s)G_5(s)Q3​(s)=G1​(s)G6​(s)G4​(s)G5​(s)

因此,计算△1(s)\triangle_1(s)△1​(s)需要令△(s)\triangle(s)△(s)中与Q1(s)Q_1(s)Q1​(s)通道接触的回路的传递函数令为零,也就是让经过a-b-c-d-e中任意节点的Li=0L_i=0Li​=0,显然所有LiL_iLi​都经过a-b-c-d-e,因此所有Li=0L_i=0Li​=0,△1(s)=1\triangle_1(s)=1△1​(s)=1。
计算△2(s)\triangle_2(s)△2​(s)需要令△(s)\triangle(s)△(s)中与Q2(s)Q_2(s)Q2​(s)通道接触的回路的传递函数令为零,也就是让经过a-b-e中任意节点的Li=0L_i=0Li​=0,这时候只有L5≠0L_5\neq0L5​​=0,因此△2(s)=1−L5=1+G4G8\triangle_2(s)=1-L_5=1+G_4G_8△2​(s)=1−L5​=1+G4​G8​。
计算△3(s)\triangle_3(s)△3​(s)需要令△(s)\triangle(s)△(s)中与Q3(s)Q_3(s)Q3​(s)通道接触的回路的传递函数令为零,也就是让经过a-c-d-e中任意节点的Li=0L_i=0Li​=0,显然所有LiL_iLi​都经过a-c-d-e,因此所有Li=0L_i=0Li​=0,△3(s)=1\triangle_3(s)=1△3​(s)=1。

2.5 结果表示

综上,可以得到系统传递函数为:
G(s)=C(s)R(s)=Q1(s)∗1+Q2(s)∗(1+G4G8)+Q3(s)∗1△(s)=G1G2G3G4G5+G1G2G7(1+G4G8)+G1G6G4G51+G2G10+G2G3G4G5G9+G2G7G9+G6G4G5G9+G4G8+G2G10G4G8+G2G7G9G4G8\begin{aligned} G(s)&=\frac{C(s)}{R(s)}=\frac{Q_1(s)*1+Q_2(s)*(1+G_4G_8)+Q_3(s)*1}{\triangle(s)}\\ &=\frac{G_1G_2G_3G_4G_5+G_1G_2G_7(1+G_4G_8)+G_1G_6G_4G_5}{1+G_2G_{10}+G_2G_3G_4G_5G_9+G_2G_7G_9+G_6G_4G_5G_9+G_4G_8+G_2G_{10}G_4G_8+G_2G_7G_9G_4G_8} \end{aligned}G(s)​=R(s)C(s)​=△(s)Q1​(s)∗1+Q2​(s)∗(1+G4​G8​)+Q3​(s)∗1​=1+G2​G10​+G2​G3​G4​G5​G9​+G2​G7​G9​+G6​G4​G5​G9​+G4​G8​+G2​G10​G4​G8​+G2​G7​G9​G4​G8​G1​G2​G3​G4​G5​+G1​G2​G7​(1+G4​G8​)+G1​G6​G4​G5​​​

参考资料

[1]田玉平,蒋珉,李世华.自动控制原理[M].北京:科学出版社,2006

自控:梅森公式总是数错,怎么破?相关推荐

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

    文章目录 一道题 总结与归纳 最近在复习自动控制原理,想看看自控的题能不能用matlab来简单地做出来,想到了一个理解梅森公式的角度,记录如下: 一道题 首先我们来看到一道题: 这题看上去挺简单的,但 ...

  2. 【控制工程基础】二、方框图化简与梅森公式

    两个的目的都是求传递函数,除非题目要求你用哪个不然自己熟悉谁就用谁.使用都可以参考这篇: 框图化简规则and梅森公式 - 知乎 (zhihu.com) 1.方框图化简 两个概念: 比较点:即带×的圆形 ...

  3. 梅森公式确定系统的传递函数

    梅森增益公式: 对于一些比较复杂的系统,采用结构图等效简化的方法求系统的传递函数是比较麻烦的.而使用梅森公式,则可以不用做任何变换,只要通过对信号流图进行相应的分析就能直接写出系统的传递函数. 下面不 ...

  4. 梅森增益matlab求解,梅森公式互不接触回路及其增益

    梅森公式是梅森在创建流图中提出的求取传递函数的方法,由于信号流和和框图并无 本质的差别,所以对框图是完全适用的,它使求取传递函数变得简单,过程完全格式化. 梅森公式互不接触回路及其增益 如果两个回路没 ...

  5. 用梅森公式求复杂电路系统传递函数

    梅森公式,是在控制理论.自动化领域用于求取系统传递函数的公式.应用梅森公式将大大简化结构变换的计算,但当系统结构比较复杂时,很容易判断错误前向通道.回路.余子式的数目.梅森公式的定理各平台资源已有详细 ...

  6. 物联网控制技术作业----信号流图---梅森公式

    信号流图-梅森公式 用信号流图和梅森增益公式方法求解二级RC网络传递函数,并与结构图化简方法得到的结果进行比较,是否相同? 结构图化简推导传递函数在这个作业里物联网控制技术作业----传递函数的推导. ...

  7. 梅森公式的形式和应用

    梅森公式的推导(篇二):梅森公式的形式和应用 写在前:   本篇是<梅森公式的推导>的篇二,基础知识部分.介绍了梅森公式的形式和应用.篇一认识信号流图介绍了信号流图的基本概念和简单形式,篇 ...

  8. 梅森公式的推导和探究

    梅森公式的推导(篇三):梅森公式的推导和探究 写在前:   本篇是<梅森公式的推导>的篇三,我的个人探究部分,尝试了梅森公式的推导和探究.篇一认识信号流图介绍了信号流图的基本概念和简单形式 ...

  9. 15岁大学毕业,一生800多篇专著论文,双眼失明却凭一条公式称霸数学界

    全世界只有3.14 % 的人关注了 青少年数学之旅 从文明之火初燃的那一刻起 数学就与之为伴 从万年前"数"的产生 到现代科技的迅猛发展 数学 不仅是窥探宇宙万物的入口 也是最高智 ...

最新文章

  1. 1041 Be Unique
  2. 鲁迅说:“智能不够,人工来凑”
  3. 智能体到底是什么?这里有一篇详细解读
  4. 【笔记】虚拟机用Xshell登陆报错“ssh服务器拒绝了密码”解决方法
  5. c# dialogresult 选择文件_C#实战037:一个简单的入门应用程序NXPlug install
  6. 蚁群算法搜索个体适应度值
  7. [Linux] 进程间通信
  8. 规范HTML页的几点注意
  9. 【工作感悟】达内java大数据课程
  10. 突发!联想被责令立即开展全面整改
  11. 收藏 | 13则PyTorch使用的小窍门
  12. React Router学习
  13. Python让繁琐工作自动化——chapter16 发送电子邮件和短信
  14. 每天10个Linux命令五
  15. Delphi中Hash表的使用方法!
  16. 1001.A+B Format
  17. Java旅游管理系统本科生毕业设计任务书
  18. 博客搬家工具c/s实现方式
  19. Android 百度图像识别(详细步骤+源码)
  20. spring整合kaptcha验证码

热门文章

  1. 数据挖掘中的十个著名算法
  2. springBoot+AOP收集日志信息,自定义接口实现日志收集
  3. leetcode 875. Koko Eating Bananas(koko吃香蕉)
  4. Fabarta 与青岛市城阳区政府达成战略合作,共同推动区域数据要素市场建设
  5. 如何从证件号中提取员工籍贯区号?
  6. 【算法题解】 Day1 前缀和
  7. NFC+超高频抗金属rfid标签_双频抗金属标签_防水资产管理电子标签
  8. kangle设置服务器信息,kangle web服务器配置
  9. 很遗憾,你们的问题我无法回答--Leo谈应届生求职(10)
  10. 向技术的长征:一家中国互联网巨头从商业驱动转向技术驱动的努力