我是靠谱客的博主 老实万宝路,最近开发中收集的这篇文章主要介绍Day11--Simulink仿真概述及模块库简介,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

该系列博客主要讲述Matlab软件在自动控制方面的应用,如无自动控制理论基础,请先学习自动控制系列博文,该系列博客不再详细讲解自动控制理论知识。
自动控制理论基础相关链接:https://blog.csdn.net/qq_39032096/category_10287468.html?spm=1001.2014.3001.5482
博客参考书籍:《MATLAB/Simulink与控制系统仿真》。



2.SIMULINK仿真设置及实例

2.1 SIMULINK功能模块的处理
2.1.1 SIMULINK功能模块参数设置

1

2.1.2 SIMULINK模块基本操作

在模型窗口中,选中模块,四角出现黑色标记,对模块可以进行如下操作:

  • 移动:选中模块,按住鼠标左键将其拖曳到想放置的位置即可;要脱离线移动,按住 S h i f t {rm Shift} Shift键进行拖曳;
  • 复制:选中模块,按住鼠标右键进行拖曳即可复制一个同样的功能模块;
  • 删除:选中模块,按 D e l e t e {rm Delete} Delete键即可;若删除多个模块,同时按住 S h i f t {rm Shift} Shift键,用鼠标选中多个模块,按 D e l e t e {rm Delete} Delete键即可;亦可用鼠标选取某区域,按 D e l e t e {rm Delete} Delete键即可把该区域的所有模块和线等全部删除;
  • 转向:右键模块,即可看到 F l i p & R o t a t e {rm Flip&Rotate} Flip&Rotate选项;
  • 改变大小:选中模块,对模块出现的 4 4 4个黑色标记进行拖曳即可;
  • 模块命名:在模块上的"…“展开点击” S h o w   B l o c k   N a m e {rm Show Block Name} Show Block Name",把模块名显示后,点击模块名即可进行修改;
  • 颜色设定:右键模块,选中" F o r m a t {rm Format} Format“选项卡即可看到” F o r e g r o u n d   C o l o r {rm Foreground Color} Foreground Color“前景颜色,” B a c k g r o u n d   C o l o r {rm Background Color} Background Color"背景颜色;
  • 参数设定:鼠标双击模块即可进行参数设置;
  • 属性设定:选中模块,选中" P r o p e r t i e s {rm Properties} Properties"选项卡,点击进入属性设定界面,包括 D e s c r i p t i o n 、 P r i o r i t y 、 T a g {rm Description、Priority、Tag} DescriptionPriorityTag等属性的设定;
2.2 SIMULINK仿真设置
2.2.1 仿真器参数设置

" c t r l + E {rm ctrl+E} ctrl+E"打开仿真器参数设置界面:

2

  • 仿真时间 ( S i m u l a t i o n   t i m e ) ({rm Simulation time}) (Simulation time)

    计算机仿真对时间的表示, 10 s {rm 10s} 10s的仿真时间,如果采样步长为 0.1 {rm 0.1} 0.1,则需要执行 100 100 100步,如果把步长减小,则采样点数增加,实际执行的时间会增加;

    需要设置仿真开始时间 ( S t a r t   t i m e ) ({rm Start time}) (Start time)和仿真结束时间 ( S t o p   t i m e ) ({rm Stop time}) (Stop time),仿真开始时间一般设置为 0 0 0,结束时间视情况而定;

  • 仿真步长模式 ( T y p e ) ({rm Type}) (Type)

    仿真步长模式可选: V a r i a b l e − s t e p {rm Variable-step} Variablestep(变步长)模式和 F i x e d − s t e p {rm Fixed-step} Fixedstep(固定步长)模式;

    变步长模式在仿真过程中改变可以改变步长,提供误差控制和过零检测选择;固定步长模式在仿真过程中提供固定的步长,不提供误差控制和过零检测;

  • 解法器 ( S o l v e r ) ({rm Solver}) (Solver)

    变步长模式的解法器:

    • d i s c r e t e {rm discrete} discrete:当 S I M U L I N K {rm SIMULINK} SIMULINK检查到模型没有连续状态时使用它;
    • o d e 45 {rm ode45} ode45:默认值,四/五阶龙格-库塔法,适用于大多数连续或离散系统,不适用于刚性系统;是单步解法器,即在计算 y ( t n ) y(t_n) y(tn)时,仅需要最近处理时刻的结果 y ( t n − 1 ) y(t_{n-1}) y(tn1)
    • o d e 23 {rm ode23} ode23:二/三阶龙格-库塔法,在误差限要求不高和求解的问题不太难的情况下,可能比 o d e 45 {rm ode45} ode45更有效,是一个单步解法器;
    • o d e 113 {rm ode113} ode113:一种阶数可变的解法器,在误差容许要求严格的情况下通常比 o d e 45 {rm ode45} ode45有效; o d e 113 {rm ode113} ode113是一种多步解法器,即在计算当前时刻输出时,需要以前多个时刻的解;
    • o d e 15 s {rm ode15s} ode15s:一种基于数字微分公式的解法器,是一种多步解法器,适用于刚性系统;
    • o d e 23 s {rm ode23s} ode23s:一种单步解法器,专门用于刚性系统,在弱误差允许下的效果优于 o d e 15 s {rm ode15s} ode15s,能解决某些 o d e 15 s {rm ode15s} ode15s不能有效解决的 s t i f f {rm stiff} stiff问题;
    • o d e 23 t {rm ode23t} ode23t:表示梯形规则的一种自由插值实现,适用于求解适度 s t i f f {rm stiff} stiff而用户又需要一个无数字振荡的解法器的情况;
    • o d e 23 t b {rm ode23tb} ode23tb:表示 T R − B D F 2 {rm TR-BDF2} TRBDF2的一种实现, T R − B D F 2 {rm TR-BDF2} TRBDF2是具有两个阶段的隐式龙格-库塔公式;

    固定步长模式的解法器:

    • d i s c r e t e {rm discrete} discrete:一种实现积分的固定步长解法器,适用于离散无连续状态的系统;
    • o d e 5 {rm ode5} ode5:默认值,适用于大多数连续或离散系统,不适用于刚性系统;
    • o d e 4 {rm ode4} ode4:四阶龙格-库塔法,具有一定的计算精度;
    • o d e 3 {rm ode3} ode3:固定步长的二/三阶龙格-库塔法;
    • o d e 2 {rm ode2} ode2:改进的欧拉法;
    • o d e 1 {rm ode1} ode1:欧拉法;
    • o d e 14 x {rm ode14x} ode14x:固定步长的隐式外推法;
  • 变步长模式的步长参数设置

    • M a x   s t e p   s i z e {rm Max step size} Max step size(最大步长参数):决定解法器能够使用的最大时间步长,默认值为"仿真时间/ 50 50 50",即整个仿真过程至少取 50 50 50个取样点;一般建议对于仿真时间不超过 15 s {rm 15s} 15s的采用默认值即可,对于超过 15 s {rm 15s} 15s的每秒至少保证 5 5 5个采样点,对于超过 100 s {rm 100s} 100s的,每秒至少保证 3 3 3个采样点;
    • M i n   s t e p   s i z e {rm Min step size} Min step size(最小步长参数):规定变步长仿真时使用的最小步长;
    • R e l a t i v e   t o l e r a n c e {rm Relative tolerance} Relative tolerance(相对误差):指误差相对于状态的值,是一个百分比,默认值为: 1 e − 3 {rm 1e-3} 1e3,表示状态的计算值要精确到 0.1 % 0.1% 0.1%
    • A b s o l u t e   t o l e r a n c e {rm Absolute tolerance} Absolute tolerance(绝对误差):指误差值的门限,或在状态值为零的情况下可以接收的误差;如果设置为 a u t o {rm auto} auto,则 S I M U L I N K {rm SIMULINK} SIMULINK为每一个状态设置初始绝对误差为 1 e − 6 {rm 1e-6} 1e6
    • I n i t i a l   s t e p   s i z e {rm Initial step size} Initial step size(初始步长参数):一般使用 a u t o {rm auto} auto默认值;
    • Z e r o   c r o s s i n g   c o n t r o l {rm Zero crossing control} Zero crossing control:过零点控制,用来检查仿真系统的非连续;
  • 固定步长模式的步长参数设置

    • M u l t i t a s k i n g {rm Multitasking} Multitasking:当 S I M U L I N K {rm SIMULINK} SIMULINK检测到模块间非法的采样速率转换时系统会给出错误提示;非法采样速率转换即两个工作在不同采样速率的模块间的直接相连;
    • S i n g l e t a s k i n g {rm Singletasking} Singletasking:此模式下不检查模块间的速率转换,在这种系统不存在任务同步问题;
    • A u t o {rm Auto} Auto:此模式下, S I M U L I N K {rm SIMULINK} SIMULINK根据模型中模块的采样速率是否一致,自动决定切换到 M u l t i t a s k i n g {rm Multitasking} Multitasking模式或 S i n g l e t a s k i n g {rm Singletasking} Singletasking模式;
2.2.2 工作空间数据导入/导出设置

3

  • L o a d   f r o m   w o r k s p a c e {rm Load from workspace} Load from workspace
    • I n p u t {rm Input} Input:从 M A T L A B {rm MATLAB} MATLAB工作空间获取时间和输入变量,时间默认: t t t,输入变量默认: u u u
    • I n i t i a l   s t a t e {rm Initial state} Initial state:从 M A T L A B {rm MATLAB} MATLAB工作空间获得的状态初始值的变量名;
    • S I M U L I N K {rm SIMULINK} SIMULINK通过设置模型的输入端口,实现在仿真过程中从工作空间读入数据,常用的输入端口模块为信号与系统模块库 ( S i g n a l s & S y s t e m s ) ({rm Signals&Systems}) (Signals&Systems)中的 I n 1 {rm In1} In1模块,设置参数时,选中 I n p u t {rm Input} Input前的复选框,在后面的编辑框键入数据的变量名,并可以用命令行窗口或 M {rm M} M文件编辑器输入数据;
  • S a v e   t o   w o r k s p a c e {rm Save to workspace} Save to workspace
    • 用来设置存在 M A T L A B {rm MATLAB} MATLAB工作空间的变量类型和变量名,选中选项前面的复选框并在选项后面的编辑框输入变量名,即可吧相应数据保存到指定的变量中;
    • 常用的输出模块为信号与系统模块库 ( S i g n a l s & S y s t e m s ) ({rm Signals&Systems}) (Signals&Systems)中的 O u t 1 {rm Out1} Out1模块和输出方式库 ( S i n k ) {({rm Sink})} (Sink)中的 T o   W o r k s p a c e {rm To Workspace} To Workspace模块;
  • S a v e   o p t i o n s {rm Save options} Save options
    • 用来设置设置存往工作空间的有关选项;
    • L i m i t   d a t e   p o i n t s   t o   l a s t {rm Limit date points to last} Limit date points to last:用来设定 S I M U L I N K {rm SIMULINK} SIMULINK仿真结果最终可存往 M A T L A B {rm MATLAB} MATLAB工作空间的变量的规模,对于向量而言即其维数,对于矩阵而言即其秩;
    • D e c i m a t i o n {rm Decimation} Decimation:设定了一个亚采样因子,默认值为 1 1 1,即对每一个仿真时间点产生值都保存,若为 2 2 2则是每隔一个仿真时刻保存一个值;
2.3 SIMULINK仿真实例
2.3.1 实验1

实验要求:使用 S I M U L I N K {rm SIMULINK} SIMULINK求解微分方程 d u d t = cos ⁡ ( sin ⁡ t ) , u ( 0 ) = 1 displaystylefrac{{rm d}u}{{rm d}t}=cos(sin{t}),u(0)=1 dtdu=cos(sint)u(0)=1.

解:

# 实验步骤:
# 1.所需模块:正弦信号、余弦函数、积分模块、观测结果模块;

# 2.各模块所在位置
# 2.1 正弦信号:Sources模块组中Sine Wave模块;
# 2.2 余弦函数:Math Operations模块组中Trigonometric Function模块,双击该模块选择余弦函数;
# 2.3 积分模块:Continuous模块组中Integrator模块;
# 2.4 显示模块:Sinks模块组中Scope模块(示波器模块);

# 3.把各模块拖曳到仿真窗口,并连接起来;

# 4.点击"run",然后双击Scope(示波器)显示结果;

4

2.3.2 实验2

实验要求:产生一个 5 sin ⁡ ( 2 t ) {5sin(2t)} 5sin(2t) sin ⁡ ( 5 t ) sin(5t) sin(5t)叠加的信号,另外叠加一个功率谱为 0.5 0.5 0.5的限带宽白噪声;

解:

# 实验步骤:
# 1.所需模块:正弦信号、限带宽白噪声、加法模块、观测结果模块;

# 2.各模块所在位置
# 2.1 正弦信号:Sources模块组中Signal Generator模块,双击模块设置正弦信号参数;
# 2.2 限带宽白噪声:Sources模块组中Band-Limited White Noise模块,双击设置Noise power为0.5;
# 2.3 加法模块:Math Operations模块组中Add模块,双击将"List of Signs"的"++"改为"+++";
# 2.4 示波器模块:Sinks模块组中Scope模块;

# 3.把各模块拖曳到仿真窗口,并连接起来;

# 4.点击"run",然后双击Scope(示波器)显示结果;

6

2.3.3 实验3

实验要求:已知单位负反馈二阶系统的开环传递函数为: G ( s ) = 10 s 2 + 3 s G(s)=displaystylefrac{10}{s^2+3s} G(s)=s2+3s10,使用 S I M U L I N K {rm SIMULINK} SIMULINK求解其单位阶跃响应。

解:

# 实验步骤:
# 1.所需模块:阶跃信号、相加器、传递函数、示波器;

# 2.各模块所在位置
# 2.1 阶跃信号:Sources模块组中Step模块;
# 2.2 相加器:Math Operations模块组中Sum模块;
# 2.3 传递函数:Continuous模块组中Transfer Fcn模块;
# 2.4 示波器模块:Sinks模块组中Scope模块;

# 3.把各模块拖曳到仿真窗口,并连接起来;

# 4.点击"run",然后双击Scope(示波器)显示结果;

7

2.3.4 实验4

实验要求:某控制系统的传递函数为: Y ( s ) X ( s ) = G ( s ) 1 + G ( s ) displaystylefrac{Y(s)}{X(s)}=displaystylefrac{G(s)}{1+G(s)} X(s)Y(s)=1+G(s)G(s),其中: G ( s ) = s + 50 2 s 2 + 3 s G(s)=displaystylefrac{s+50}{2s^2+3s} G(s)=2s2+3ss+50,用 S I M U L I N K {rm SIMULINK} SIMULINK求解其阶跃输出响应,并将响应曲线导入到 M A T L A B {rm MATLAB} MATLAB工作空间,在工作空间中绘制响应曲线。

解:

# 实验步骤:
# 1.所需模块:阶跃信号、传递函数、加法模块、数据导出模块、结果观测模块;

# 2.各模块所在位置
# 2.1 阶跃信号:Sources模块组中Step模块;
# 2.2 传递函数:Continuous模块组中Transfer Fcn模块;
# 2.3 加法模块:Math Operations模块组中Sum模块;
# 2.4 示波器模块:Sinks模块组中Scope模块;
# 2.5 数据导出模块:Sinks模块组中To Workspace模块,导出数据命令:y,save format设为array;

# 3.把各模块拖曳到仿真窗口,并连接起来;

# 4.点击"run",然后双击Scope(示波器)显示结果;

9

最后

以上就是老实万宝路为你收集整理的Day11--Simulink仿真概述及模块库简介的全部内容,希望文章能够帮你解决Day11--Simulink仿真概述及模块库简介所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部