我是靠谱客的博主 聪慧飞鸟,这篇文章主要介绍Day16--S函数设计与应用,现在分享给大家,希望可以做个参考。

该系列博客主要讲述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=R2=C=1FL=1H)。

1

解:

【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+i3uo=i3R2i2=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=R2=C=1FL=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;

2

4.2 综合实例2

实验要求:已知某双环调速的电流环系统的结构如下图所示,采用 S I M U L I N K {rm SIMULINK} SIMULINK动态结构图求该系统线性模型。

3

解:

【STEP1】:建立 S I M U L I N K {rm SIMULINK} SIMULINK动态结构图。

复制代码
1
2
3
# 1.把所需模块拖曳到模型窗口; # 2.线连接起来,保存为"Experiment4_4_2.mdl"文件;

4

【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函数设计与应用内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部