概述
该系列博客主要讲述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建立系统模型。
% 实例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
% 结果显示:
% 传递函数模型
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】:求阶跃响应。
% 求阶跃响应
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.线连接起来,保存为"Experiment4_4_2.mdl"文件;
【STEP2】:求取系统的线性状态空间模型。
% matlab命令行窗口下运行如下命令,得到一个线性状态空间模型
[A,B,C,D]=linmod('Experiment4_4_2')
% 结果显示:
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】:求系统的传递函数模型。
% 命令行窗口下
>> [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函数设计与应用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复