我是靠谱客的博主 单薄棉花糖,这篇文章主要介绍用Matlab建立传递函数模型,现在分享给大家,希望可以做个参考。

一、控制系统模型描述

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)

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
%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

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

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

最后

以上就是单薄棉花糖最近收集整理的关于用Matlab建立传递函数模型的全部内容,更多相关用Matlab建立传递函数模型内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部