概述
传递函数
描述形式:
❶传递函数形式:tf(num,den);(分子分母多项式系数)
numerator 英/ ˈnjuːməreɪtə / 分子
denominator 英/ dɪˈnɒmɪneɪtə / 分母
❷零极点形式:zpk(z,p,k);
①②⇆可以互转
[z,p,k]=tf2zp(num,den);
[num,den]=zp2tf(z,p,k);
❸展开式形式:①③⇆互转
[r,p,k]=residue(num,den);
[num,den]=residue(r,p,k);
r,p分别为展开后的留数及极点构成的列向量;k为余项多项式行向量。
G
(
s
)
=
r
1
s
−
p
1
+
r
2
s
−
p
2
+
⋅
⋅
⋅
+
k
boxed{G(s)=frac {r1} {s-p1}+frac {r2} {s-p2}+···+k}
G(s)=s−p1r1+s−p2r2+⋅⋅⋅+k
% MATLAB代码:
>> tf(10,[1,10])
ans =
10
------
s + 10
Continuous-time transfer function.
>> zpk([1,2],[3,4],5)
ans =
5 (s-1) (s-2)
-------------
(s-3) (s-4)
Continuous-time zero/pole/gain model.
系统级接
㊀ sys=series(sys1,sys2); %串联,传递函数直接相乘
㊁ sys=parallel(sys1,sys2);% 并联,传递函数直接相加
㊂ sys=feedback(sys1,sys2,-1); %反馈
H
(
s
)
=
s
y
s
1
1
+
s
y
s
2
∗
s
y
s
1
H(s)=frac {sys1} {1+sys2*sys1}
H(s)=1+sys2∗sys1sys1
也可直接通过分子分母多项式形式,实现多系统级联
[numc,denc]=series(num1,den1,num2,den2);
[numb,denb]=parallel(num1,den1,num2,den2);
[numf,denf]=feedback(num1,den1,num2,den2,-1);
[z,p,k]=tf2zp(numf,denf);
伯德图(波特图)
❹ 伯德函数绘制频率响应
bode(sys)
% MATLAB代码:
clc;clear all;close all;
sys1=tf(10,[1,10]); % 低通,截止角频率为10
sys2=tf([1,0],[1,100]); % 高通,截止角频率为100
subplot(1,2,1);bode(sys1,sys2);grid on;
sys3=series(sys1,sys2); % 低通串联高通,等效带通
sys4=parallel(sys1,sys2); % 低通并联高通,等效带阻
sys5=feedback(sys1,sys2,-1);
subplot(1,2,2);bode(sys3,sys4,sys5);grid on;
% MATLAB代码:查看传递函数形式
>> sys1
10
------
s + 10
Continuous-time transfer function.
>> sys2
s
-------
s + 100
Continuous-time transfer function.
>> sys3
10 s
------------------
s^2 + 110 s + 1000
Continuous-time transfer function.
>> sys4
s^2 + 20 s + 1000
------------------
s^2 + 110 s + 1000
Continuous-time transfer function.
>> sys5
10 s + 1000
------------------
s^2 + 120 s + 1000
Continuous-time transfer function.
>> [z,p,k]=tf2zp([10,1000],[1,120,1000]) % sys5的零极点
z = -100
p = -110.9902,-9.0098
k = 10
>> sys7=zpk(z,p,k) % sys5的零极点模型
10 (s+100)
----------------
(s+111) (s+9.01)
Continuous-time zero/pole/gain model.
零极点图
❺pzmap(sys1,sys2,…,sysN)
上面伯德图中的零极点分布如下:
% matlab代码
subplot(2,3,1);pzmap(sys1,'r');title('sys1 低通');grid on;
subplot(2,3,2);pzmap(sys2,'r');title('sys2 高通');grid on;
subplot(2,3,4);pzmap(sys3,'r');title('sys3 串联');grid on;
subplot(2,3,5);pzmap(sys4,'r');title('sys4 并联');grid on;
subplot(2,3,6);pzmap(sys5,'r');title('sys5 反馈');grid on;
时域响应
❻ step(sys,t) % 阶跃响应图,t为仿真时间可省略
❼ impulse(sys,t) % 冲激响应图,t为仿真时间可省略
❽ lsim(sys,u,t) % 任意输入的响应图,输入为 (t,u)
❾ [u,t]=gensig(type,tau) % 为lsim产生周期信号,type=“sine” | “square” | “pulse”,tau=周期
❿
不同输入通过低通滤波器的响应图如下:
% matlab代码
sys1=tf(1000,[1,1000]);
t = 0:0.1:10;
u = t;
[u2,t2] = gensig('square',10^-3);
subplot(2,2,1);step(sys1);grid on;title('阶跃响应')
subplot(2,2,2);impulse(sys1);grid on;title('冲激响应')
subplot(2,2,3);lsim(sys1,u,t);grid on;title('斜坡响应')
subplot(2,2,4);lsim(sys1,u2,t2);grid on;title('方波响应')
最后
以上就是幸福毛衣为你收集整理的Matlab仿真001-传递函数传递函数的全部内容,希望文章能够帮你解决Matlab仿真001-传递函数传递函数所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复