概述
一、控制系统模型描述
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
运行代码,输出两种形式的传递函数。
给系统加入阶跃信号得到响应:
最后
以上就是单薄棉花糖为你收集整理的用Matlab建立传递函数模型的全部内容,希望文章能够帮你解决用Matlab建立传递函数模型所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复