我是靠谱客的博主 搞怪小虾米,这篇文章主要介绍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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复