该系列博客主要讲述Matlab软件在自动控制方面的应用,如无自动控制理论基础,请先学习自动控制系列博文,该系列博客不再详细讲解自动控制理论知识。
自动控制理论基础相关链接:https://blog.csdn.net/qq_39032096/category_10287468.html?spm=1001.2014.3001.5482
博客参考书籍:《MATLAB/Simulink与控制系统仿真》。
4.综合实例
4.1 综合实例1
实验要求:给定 R L C {rm RLC} RLC网络,如下图所示,其中, u i ( t ) u_i(t) ui(t)为输入量, u o ( t ) u_o(t) uo(t)为输出量。求解此系统的传递函数模型、零极点增益模型、状态空间模型(假设 R 1 = 1 Ω , R 2 = 1 Ω , C = 1 F , L = 1 H {rm R_1=1Omega,R_2=1Omega,C=1F,L=1H} R1=1Ω,R2=1Ω,C=1F,L=1H)。
解:
【STEP1】:求解系统的传递函数。
根据电路的基本定理,结合
R
L
C
{rm RLC}
RLC网络示意图,列出该电路的微分方程,如下:
R
1
i
1
+
L
d
i
3
d
t
+
u
o
=
u
i
i
1
=
i
2
+
i
3
,
u
o
=
i
3
R
2
,
i
2
=
C
d
d
t
(
L
d
i
3
d
t
+
u
o
)
begin{aligned} &R_1i_1+Ldisplaystylefrac{{rm d}i_3}{{rm d}t}+u_o=u_i\\ &i_1=i_2+i_3,u_o=i_3R_2,i_2=Cdisplaystylefrac{{rm d}}{{rm d}t}left(Ldisplaystylefrac{{rm d}i_3}{{rm d}t}+u_oright) end{aligned}
R1i1+Ldtdi3+uo=uii1=i2+i3,uo=i3R2,i2=Cdtd(Ldtdi3+uo)
整理并化简上述方程,可得:
R
1
C
L
R
2
d
2
u
o
d
t
2
+
(
L
R
2
+
R
1
C
)
d
u
o
d
t
+
(
1
+
R
1
R
2
)
u
o
=
u
i
frac{R_1CL}{R_2}frac{{rm d^2}u_o}{{rm d}t^2}+left(displaystylefrac{L}{R_2}+R_1Cright)displaystylefrac{{rm d}u_o}{{rm d}t}+left(1+displaystylefrac{R_1}{R_2}right)u_o=u_i
R2R1CLdt2d2uo+(R2L+R1C)dtduo+(1+R2R1)uo=ui
在零初始条件下,对上式取拉普拉斯变换,整理可得:
G
(
s
)
=
U
o
(
s
)
U
i
(
s
)
=
1
(
R
1
C
s
+
1
)
(
L
R
2
s
+
1
)
+
R
1
R
2
G(s)=frac{U_o(s)}{U_i(s)}=frac{1}{(R_1Cs+1)left(displaystylefrac{L}{R_2}s+1right)+displaystylefrac{R_1}{R_2}}
G(s)=Ui(s)Uo(s)=(R1Cs+1)(R2Ls+1)+R2R11
代入具体数值
R
1
=
1
Ω
,
R
2
=
1
Ω
,
C
=
1
F
,
L
=
1
H
R_1=1Omega,R_2=1Omega,C=1{rm F},L=1{rm H}
R1=1Ω,R2=1Ω,C=1F,L=1H,可得系统传递函数模型,有:
G
(
s
)
=
1
s
2
+
2
s
+
2
G(s)=frac{1}{s^2+2s+2}
G(s)=s2+2s+21
【STEP2】:使用
M
A
T
L
A
B
{rm MATLAB}
MATLAB建立系统模型。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24% 实例Chapter4.4 综合实例 clc;clear; % 传递函数分子、分母多项式系数行向量 num=[0,1];den=[1,2,2]; % 建立传递函数模型 sys_tf=tf(num,den); % 从传递函数模型获取系统的零极点增益 [z,p,k]=tf2zp(num,den); % 建立系统的零极点增益模型 sys_zpk=zpk(z,p,k); % 从零极点增益模型获取系统的状态空间模型 [A,B,C,D]=zp2ss(z,p,k); % 建立系统的状态空间模型 sys_ss=ss(A,B,C,D); % 显示模型 sys_tf,sys_zpk,sys_ss
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36% 结果显示: % 传递函数模型 sys_tf = 1 ------------- s^2 + 2 s + 2 Continuous-time transfer function. % 零极点模型 sys_zpk = 1 -------------- (s^2 + 2s + 2) Continuous-time zero/pole/gain model. % 状态空间模型 sys_ss = A = x1 x2 x1 -2 -1.414 x2 1.414 0 B = u1 x1 1 x2 0 C = x1 x2 y1 0 0.7071 D = u1 y1 0 Continuous-time state-space model.
【STEP3】:求阶跃响应。
1
2
3
4
5
6
7% 求阶跃响应 step(sys_tf); set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5); % 添加栅格 grid on;
4.2 综合实例2
实验要求:已知某双环调速的电流环系统的结构如下图所示,采用 S I M U L I N K {rm SIMULINK} SIMULINK动态结构图求该系统线性模型。
解:
【STEP1】:建立 S I M U L I N K {rm SIMULINK} SIMULINK动态结构图。
1
2
3# 1.把所需模块拖曳到模型窗口; # 2.线连接起来,保存为"Experiment4_4_2.mdl"文件;
【STEP2】:求取系统的线性状态空间模型。
1
2
3% matlab命令行窗口下运行如下命令,得到一个线性状态空间模型 [A,B,C,D]=linmod('Experiment4_4_2')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23% 结果显示: A = 1.0e+03 * -0.0781 0 0 1.7964 0 0 -0.5000 0 0 0 0.0141 0 -0.5000 0 0 0 0.1600 -0.1600 -0.0599 0.0250 0 0.5000 -0.5000 0 0 B = 0 1 0 0 0 C = 195.3125 0 0 0 0 D = 0
【STEP3】:求系统的传递函数模型。
1
2
3
4
5
6
7
8
9
10
11
12% 命令行窗口下 >> [num,den]=ss2tf(A,B,C,D); >> printsys(num,den,'s'); % 结果显示: num/den = 56137724.5509 s^2 + 32454622005.988 s + 2192879865269.461 ----------------------------------------------------------------------------- s^5 + 1138.0052 s^4 + 392683.3832 s^3 + 43221369.7605 s^2 + 3506268712.5748 s + 157887350299.401
最后
以上就是聪慧飞鸟最近收集整理的关于Day16--S函数设计与应用的全部内容,更多相关Day16--S函数设计与应用内容请搜索靠谱客的其他文章。
发表评论 取消回复