用Matlab建立传递函数模型

本文详细介绍MATLAB中控制系统模型的传递函数和零极点表示,包括模型创建、系统转换方法(如传递函数转零极点、零极点转传递函数),以及系统串联、并联和反馈连接的实现步骤。通过一个实际例子展示闭环传递函数的求解和系统响应分析。

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

一、控制系统模型描述

1、传递函数描述

命令格式:sys = tf(num, den, Ts)
num:分子多项式降幂排序的系数向量
den:分母多项式降幂排序的系数向量
Ts:采样时间,默认时表示系统连续

2、零极点模型描述

命令格式:sys = zpk(z, p, k, Ts)
z、p、k分别为系统的零点、极点及增益,若无零极点则用[ ]表示。
Ts:采样时间,默认时表示系统连续

二、系统模型转换

1、传递函数转零极点

命令格式:[num, den] = zp2tf(z, p, k);

2、零极点转传递函数

命令格式:[z, p, k] = tf2zp(num, den);

三、系统连接

1、系统并联

sys = parallel(sys1, sys2);

2、系统串联

sys = series(sys1, sys2)

3、系统反馈

sys = feedback(sys1, sys2, sign);
sign用于说明反馈的正负,默认为负,及sign = -1;

四、举个例子

求闭环传递函数C(s)/R(s)

%model.m
G1 = tf(1, [1 10]);             %使用tf建立传递函数G1~G4
G2 = tf(1, [1 1]);
G3 = tf([1 0 1], [1 4 4]);
g4_num = [1 1];
g4_den = [1 6];
G4 = tf(g4_num, g4_den);

H1 = tf([1 1], [1 2]);
h2_num = 2;
h2_den = 1;
H3 = 1;
nh2 = conv(h2_num, g4_den);
dh2 = conv(h2_den, g4_num);
H2 = tf(nh2, dh2);              %将H2移至G4之后

sys1 = series(G3, G4);          %将G3G4串联
sys2 = feedback(sys1, H1, +1);  %G3G4与H1构成反馈
sys3 = series(G2, sys2);        %G2与子系统sys2串联
sys4 = feedback(sys3, H2);      %组建H2反馈子系统
sys5 = series(G1, sys4);        %将G1串联到sys4
sys = feedback(sys5, H3);       %连接H3反馈,得到系统传函

num = sys.num{1};               %提取sys分子系数
den = sys.den{1};               %提取sys分母系数
printsys(num, den);             %输出系统传递函数

t = 0 : 0.005 : 15;             %设定仿真时间为15[y, x, t] = step(num, den, t);  %得到15s内单位阶跃响应数据
plot(t, y);                     %绘制图像
grid;                           %显示网格
xlabel('时间(s)');            %横坐标说明
ylabel('系统响应');             %纵坐标说明

[z, p, k] = tf2zp(num, den);    %传函转化为零极点模式
zero_sys = zpk(z, p, k);
zero_sys

运行代码,输出两种形式的传递函数。

给系统加入阶跃信号得到响应:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值