控制建模matlab练习01:传递函数

本文介绍了在MATLAB中如何表示传递函数,包括直接输入系数的法一和定义变量s的法二。在闭环系统下,通过两种方法表示闭环传递函数,即直接计算和使用feedback函数,并讨论了如何消除重复极点和零点,以简化传递函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

此练习主要与传递函数相关的表示和建模。
1、如何在matlab中表示传递函数:法一,法二
2、在闭环系统下,传递函数的表示:法一,法二

01在matlab中表示传递函数

首先我们先在matlab中来表示一个简单的传递函数。(直接在命令行窗口)
要表示以下这个传递函数,可以用到后面介绍的两个方法。
一个简单的传递函数

a.法一

命令行窗口处,直接输入对应的分子、分母的各个系数。当然,每个系数的中间都要用空格间隔一下。当输入对应命令之后,直接回车即可表示对应的传递函数。如图所示:
传递函数表示

b.法二

法二其实是先定义“s”,把“s”定义为传递函数里面的“s”,就可直接输入“s”相关的表达式来表示了。
首先先定义“s”,要先回车确定一下。
之后再来表示传递函数。如图所示:
传递函数的表示2

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)如图:
此方法的结果:得出的传递函数为未化简的形式。
Gcl_1

c.闭环传递函数的表示:法二

在上述代码编辑完成之后,需要先保存运行一下。
法二:是通过feedback()函数表示出来。
(运行之后在命令行窗口输入:Gcl_2)如图:
此方法的结果:得出的传递函数为已化简的形式。
Gcl_2

d.闭环传递函数的表示:消除重复的极点、零点

在上述代码编辑完成之后,需要先保存运行一下。
(运行之后在命令行窗口输入:Gcl_1)
此时得到的是未化简的形式,也可以在命令行窗口,使用minreal()函数,对Gcl_1进行极点、零点的消除,也可得到化简形式。
如下图:
minreal(Gcl_1)
学习来源:《控制之美》[卷1],王天威

### 如何在MATLAB中定义和使用传递函数进行控制系统建模 #### 创建传递函数模型 在MATLAB环境中,可以利用`tf`函数来创建传递函数模型。此函数接受两个向量作为输入参数:分子系数向量和分母系数向量[^1]。 对于一个标准形式的一阶传递函数 \( G(s)=\frac{K}{s+a} \),可以通过如下代码片段创建对应的传递函数对象: ```matlab num = [1]; % 分子多项式的系数 den = [1 a]; % 分母多项式的系数, 假设a已知 G = tf(num, den); % 定义传递函数 ``` 当涉及到更复杂的高阶系统时,只需相应调整`num`和`den`中的数值即可满足需求。 #### 查看传递函数信息 一旦建立了传递函数模型,就可以调用内置命令查看其属性或执行进一步的操作。例如,显示当前工作区内的所有变量及其数据类型;打印特定LTI(线性时不变)系统的零极点增益表达式等[^2]。 ```matlab % 显示传递函数的信息 disp(G); % 获取并展示零点、极点以及增益值 [z,p,k]=zpkdata(G,'v'); disp('Zero-Pole-Gain:'); disp(['Zeros:', num2str(z)]); disp(['Poles:', num2str(p)]); disp(['Gain:', num2str(k)]); ``` #### 对传递函数进行分析与可视化 为了更好地理解和评估所构建的传递函数特性,在MATLAB中有许多工具可用于绘制频率响应图(Bode Diagram)、根轨迹(Root Locus Plot)以及其他重要的性能指标图表。 ```matlab figure; bode(G); title('Bode plot of the transfer function'); figure; rlocus(G); title('Root locus plot of the transfer function'); ``` 上述过程不仅有助于初步掌握如何在MATLAB中定义和操作传递函数来进行基本的控制系统建模,同时也为进一步学习高级功能奠定了坚实的基础[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨7点

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值