主要通过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.                         %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

参考文献: