此练习主要与传递函数相关的表示和建模。
1、如何在matlab中表示传递函数:法一,法二
2、在闭环系统下,传递函数的表示:法一,法二
01在matlab中表示传递函数
首先我们先在matlab中来表示一个简单的传递函数。(直接在命令行窗口)
要表示以下这个传递函数,可以用到后面介绍的两个方法。
a.法一
在命令行窗口处,直接输入对应的分子、分母的各个系数。当然,每个系数的中间都要用空格间隔一下。当输入对应命令之后,直接回车即可表示对应的传递函数。如图所示:
b.法二
法二其实是先定义“s”,把“s”定义为传递函数里面的“s”,就可直接输入“s”相关的表达式来表示了。
首先先定义“s”,要先回车确定一下。
之后再来表示传递函数。如图所示:
02在matlab中表示闭环系统下的传递函数
这里假设一个闭环系统的情况,也是比较的简单。(这里用.m文件来表示)
其表达形式如图:
a.在.m文件里编辑
先在**.m文件**里,定义好各个表达式,以及要求的闭环系统下的传递函数表示。
这里闭环的表示也有两种,一:Gcl_1;二:Gcl_2;
首先在.m文件下的代码如下:
clear;close all;clc
%%定义G_s
s=tf('s');
G_s=(s+1)/(s+3);%%用刚刚的法二表示
%%定义C_s
C_s=tf([1],[1 2]);%%用刚刚的法一表示
%%闭环传递函数
%%法1:
Gcl_1=(G_s*C_s)/(1+C_s*G_s);
%%法2:
Gcl_2=feedback(G_s*C_s,1);%%这里的数字1,就是单位反馈,如果图片的反馈是H_s,那这里的1也要换成H_s
b.闭环传递函数的表示:法一
在上述代码编辑完成之后,需要先保存运行一下。
法一:是比较直接的方法,求出整体的闭环传递函数,直接公式表示出来。
(运行之后在命令行窗口输入:Gcl_1)如图:
此方法的结果:得出的传递函数为未化简的形式。
c.闭环传递函数的表示:法二
在上述代码编辑完成之后,需要先保存运行一下。
法二:是通过feedback()函数表示出来。
(运行之后在命令行窗口输入:Gcl_2)如图:
此方法的结果:得出的传递函数为已化简的形式。
d.闭环传递函数的表示:消除重复的极点、零点
在上述代码编辑完成之后,需要先保存运行一下。
(运行之后在命令行窗口输入:Gcl_1)
此时得到的是未化简的形式,也可以在命令行窗口,使用minreal()函数,对Gcl_1进行极点、零点的消除,也可得到化简形式。
如下图:
学习来源:《控制之美》[卷1],王天威