我是靠谱客的博主 搞怪小虾米,这篇文章主要介绍MATLAB - 传递函数及状态空间等模型的建立1. 简单传递函数2. 零极点模型3. 状态空间模型4. 反馈系统5. 多环路系统,现在分享给大家,希望可以做个参考。

文章目录

  • 1. 简单传递函数
  • 2. 零极点模型
  • 3. 状态空间模型
  • 4. 反馈系统
  • 5. 多环路系统

主要通过MATLAB控制系统工具箱的内置函数实现。

1. 简单传递函数

栗子1:

>> num1=[25];
>> den1=[1 1 25];
>> G1=tf(num1,den1)

G1 =
 
       25
  ------------
  s^2 + s + 25
 
Continuous-time transfer function.

>> G2 = tf(den1,num1)

G2 =
 
  s^2 + s + 25
  ------------
       25
 
Continuous-time transfer function.

>> bode(G2)
>> hold on;
>> bode(G1)
>> bode(G1*G2)
>> grid

在这里插入图片描述
栗子2:
在这里插入图片描述

>> num =[5*0.1,1];
>> f1=[1,0];f2=[0.5,1];
>> f3=[1/2500,0.6/50,1];
>> den=conv(f1,conv(f2,f3));
>> bode(num,den)

2. 零极点模型

>> KGain=5;  %系统增益K
>> Z=[1; 2; 3]; %零点
>> P=[4; 5; 6];  %极点
>> G=zpk(Z,P,KGain)


G =
 
  5 (s-1) (s-2) (s-3)
  -------------------
   (s-4) (s-5) (s-6)
 
Continuous-time zero/pole/gain model.

3. 状态空间模型

>> A=[A];
>> B=[B];
>> C=[C];
>> D=[D];
>> G=ss(A,B,C,D)

4. 反馈系统

>> G1=tf(3,[1,4,4]);
>> G2=tf(1,[1,3]);
>> G=feedback(G1,G2);  %第三个参数默认为-1,表示负反馈  1正反馈


G =
 
          3 s + 9
  -----------------------
  s^3 + 7 s^2 + 16 s + 15
 
Continuous-time transfer function.

5. 多环路系统

栗子1:
在这里插入图片描述

  • sumblk:实现记录信号的线性叠加,类似于Simulink中的ADD模块,使用时需指明信号名称,sumblk(output, input, input,..., input,Signs)
  • connect:完成各个传递函数的连接,注意需提前指定各sys的输入输出名称,并对应起来;
%构建前馈+反馈
C1 = tf([1],[1]);
C2 = tf([1],[1]);
G = tf([1],[1,1]);
B1 = sumblk ('e','r','y','+-');
B2 = sumblk ('u','u1','u2 ','++');
C1.InputName='r';C1.OutputName='u2';C2.InputName='e';C2.OutputName='u1';G.InputName='u';G.OutputName='y';
T=connect(C1,C2,B1,B2,G,'r','y');

栗子2:

% 建立各子系统
G1=tf([1],[1 10]);
G2=tf([1],[1 1]);
G3=tf([1 0 1],[1 4 4]);
numg4=[1 1];
deng4=[1 6];
G4=tf(numg4,deng4);
H1=zpk([-1],[-2],1);
numh2=[2];
denh2=[1];
H3=1;    


%先将H2移至G4之后
nh2=conv(numh2,deng4);
dh2=conv(denh2,numg4);
H2=tf(nh2,dh2);


%计算由G3、G4和H1回路组成的子系统模型
sys1=series(G3,G4);
sys2=feedback(sys1,H1,+1);


%计算由H2构成反馈回路的子系统模型
sys3=series(G2,sys2);
sys4=feedback(sys3,H2);

%计算由H3构成反馈主回路的系统闭环传递函数
sys5=series(G1,sys4);
sys=feedback(sys5,H3)





%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% sys =                                                         %
%                                                               %
%              0.083333 (s+1)^2 (s+2) (s^2 + 1)                 %
%  ---------------------------------------------------------    %
%  (s+10.12) (s+2.44) (s+2.349) (s+1) (s^2 + 1.176s + 1.023)    %
%                                                               %
% Continuous-time zero/pole/gain model.                         %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

参考文献:

  • https://blog.csdn.net/abc1234z0/article/details/107319242
  • https://blog.csdn.net/qq_34213260/article/details/86598248
  • https://zhuanlan.zhihu.com/p/103569618
  • https://wenku.baidu.com/view/41221e0226284b73f242336c1eb91a37f11132db.html

最后

以上就是搞怪小虾米最近收集整理的关于MATLAB - 传递函数及状态空间等模型的建立1. 简单传递函数2. 零极点模型3. 状态空间模型4. 反馈系统5. 多环路系统的全部内容,更多相关MATLAB内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部