Matlab仿真001-传递函数

传递函数

描述形式:

❶传递函数形式: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)=sp1r1+sp2r2+⋅⋅⋅+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+sys2sys1sys1
也可直接通过分子分母多项式形式,实现多系统级联
[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('方波响应')
  • 1
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值