7第7章 SIMULINK仿真

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图7.27 蹦极跳系统模型
• 3 系统模块参数设置 • 在建立蹦极跳系统模型之后,需要 设置系统模型中各个模块的参数。这里 仅给出积分器模块velocity与position的参 数设置,如图7.28所示。 • 在具有连续状态的连续系统中,千 万不能忘记对积分器模块的初始值进行 设置;因为在不同的初始值下,系统的 动态规律可能大相径庭。至于其它模块 的参数都比较简单,这里不再给出。
图7.25 人口变化系统仿真结果
7.2.3 连续系统
Simulink中状态的处理
微分方程的实现
示例:蹦极跳(bungee jumping)
• 1 蹦极跳系统的数学模型 • 蹦极跳是一种挑战身体极限的运动, 蹦极者系着一根弹力绳从高处的桥梁(或 是山崖等)向下跳。在下落的过程中,蹦 极者几乎是处于失重状态。按照牛顿运动 规律,自由下落的物体的位置由下式确定:
kx, x 0 b( x ) x0 0,
• 因此整个蹦极跳系统的数学描述为
m mg b( x) a1x a2 x x x
• 2 建立蹦极跳系统的Simulink仿真模型 • 与建立离散系统模型类似,在建立蹦极跳 系统的模型之前,首先对连续系统模块库 Continuous中比较常用的模块简单的回顾。 • (1) 积分器(Integrator):积分器的主 要功能在于对输入的连续信号进行积分运算。 • (2) 微分器(Derivative):微分器的主 要功能在于对输入的连续信号进行微分运算。

(2) Zero-Order Hold模块:其主要 功能是对信号进行零阶保持。 • 使用Simulink对离散系统进行仿 真时,单位延迟是由Discrete模块库中的 Unit Delay模块来完成的。对于人口变化 系统模型而言,需要将作为Unit Delay模 块的输入以得到,然后按照系统的差分 方程来建立人口变化系统的模型。
最大 仿真 步长 相对 误差 绝对 误差
初始 仿真 步长
图7.30 蹦极跳系统的仿真参数设置

然后再对蹦极跳系统进行仿真, 其仿真结果如图7.31所示。从图中可以 明显得看出,减小系统仿真积分误差可 以有效的提高系统的仿真性能,仿真输 出波峰与波谷处的曲线变得比较光滑。
图7.31 新的仿真参数设置下的仿真结果
创建子系统
输入和输出
来自工作区的参数
将信号输出到工作区
模块的基本结构
7.2创建动态系统
7.2.1简单系统
简单系统建模
简单系统的运行
设置步长
7.2.2 离散系统
离散模块库
差分方程的实现
零散求解器
设置参数
示例:人口动态变化
1 人口变化系统的数学模型 • 这是一个简单的人口变化模型。在 此模型中,设某一年的人口数目为,其中 表示年份,它与上一年的人口、人口繁殖 速率以及新增资源所能满足的个体数目之 间的动力学方程由如下的差分方程所描述:

• •


在蹦极跳系统模型中,主要使用的系统模 块有: (1) Continuous模块库中的Integrator模块: 用来实现系统中的微分运算。 (2) Functions & Tables模块库中的Fcn模 块:用来实现系统中空气阻力的函数关系。 (3) Nonlinear模块库中的Switch模块:用 来实现系统中弹力绳索的函数关系。 蹦极跳系统的模型框图如图7.27所示。
p (n 1) p(n) rp(n 1) 1 K

从此差分方程中可以看出,此人口变 化系统为一非线性离散系统。如果设人 口初始值、人口繁殖速率、新增资源所 能满足的个体数目,要求建立此人口动 态变化系统的系统模型,并分析人口数 目在0至100年之间的变化趋势。
模块参数、方程 模块参数、方程
系统模型 系统模型
Simulnik Simulink
系统状态、仿真时间 系统状态、仿真时间
MATLAB Matlab 求解器 求解器
图7.23 系统的仿真原理
• •
下面设置人口变化系统的仿真参数: (1) 仿真时间设置:按照系统仿真的要求, 设置系统仿真时间范围为0~100。 • (2) 离散求解器与仿真步长设置:对离散 系统进行仿真需要使用离散求解器。对于离散 系统的仿真,无论是采用定步长求解器还是采 用变步长求解器,都可以对离散系统进行精确 的求解。这里选择定步长求解器对此系统进行 仿真分析。至于定步长与变步长的区别将在后 面专门进行介绍。 • 使用Simulation菜单中的Simulation Parameters设置系统仿真参数,如图7.24所示。

使用Simulation菜单下的Simulation Parameters打开仿真参数设置对话框, 对蹦极跳系统的仿真参数设置如下: • (1) 系统仿真时间范围为0~100 s。 • (2) 其它仿真参数采用系统默认取值 (变步长求解器、求解算法ode45、自动 选择最大仿真步长、相对误差为1e-3)。 • 然后进行系统仿真。仿真输出结 果如图7.29所示(蹦极者相对于地面的 距离)。
m mg a1 x a2 x x x

其中为物体的质量,为重力加速 度,为物体的位置,第二项与第三项表示 空气的阻力。其中位置的基准为蹦极者开 始跳下的位置(即选择桥梁作为位置的起 点),低于桥梁的位置为正值,高于桥梁 的位置为负值。如果物体系在一个弹性常 数为的弹力绳索上,定义绳索下端的初始 位置为,则其对落体位置的影响为

微分方程的不同数值求解方法对应 着不同的连续求解器。Simulink的连续求 解器可以使用不同的数值求解方法对连 续系统进行求解: • (1) 定步长连续求解器。可以使用如 下的方法:ode5, ode4, ode3, ode2, ode1。 • (2) 变步长连续求解器。可以使用如 下 的 方 法 : ode45, ode23, ode113, ode15s, ode23s, ode23t,ode23tb。
图7.28 积分器模块velocity与position的参数设置
• 4 系统仿真参数设置与仿真分析 • 在对蹦极跳系统模型中各个模块的 参数正确设置之后,需要设置系统仿真 参数以对此系统进行仿真分析。在系统 仿真参数设置之前,首先简单介绍一下 Simulink的连续求解器。 • Simulink通过离散系统模型与Matlab求解 器之间的交互完成离散系统的仿真;其 实对于任何的动态系统,Simulink总是通 过系统模型与Matlab求解器之间的交互 来完成系统仿真。
2 建立人口变化系统的模型 • 在建立此人口变化的非线性离散系 统模型之前,首先对离散系统模块库 (Discrete模块库)中比较常用的模块作 简单的介绍。 • (1) Unit Delay模块:其主要功能是 将输入信号延迟一个采样时间,它是离 散系统的差分方程描述以及离散系统仿 真的基础。在仿真时只要设置延迟模块 的初始值便可计算系统输出。
第7章 SIMULINK仿真
7.1 SIMULINK基本操作 7.2创建动态系统 7.2.1简单系统 7.2.2 离散系统 7.2.3 连续系统
7.1 SIMULINK基本操作
启动simulink
使用模块库
收集和连接所需各块
仿真运行
Mux (singnal routing) • Combine several input signals into a vector or bus output signal
图7.29 蹦极跳系统的仿真结果
• 5 仿真精度控制 • 细心的读者一定会发现,在图 7.29蹦极跳系统的仿真结果中,仿真曲 线的波峰与波谷处曲线很不光滑。而从 蹦极跳系统的数学方程中分析可知,系 统的输出曲线应该是光滑曲线。造成这 一结果的主要原因是:对此系统仿真来 说,连续求解器的默认积分误差取值偏 大。因此,只有设置合适的积分误差限, 才能获得更好的仿真结果。
初始条件相当 于人口的初始 值 p (0) , 故取 值为 100000
图5.22 单位延迟模块的参数设置
4系统仿真参数设置及仿真分析 • 在正确设置系统模型中各模块的 模块参数之后,需要对系统仿真参数进 行设置。下面介绍离散系统的仿真参数 设置,在此之前首先介绍系统仿真的基 本原理。这可以使用户加深来自百度文库离散系统 仿真的理解,并且更好的掌握离散系统 仿真技术。
图7.21 人口变化系统模型
3 系统模块参数设置 • 系统模型建立之后,首先需要按照系统的 要求设置各个模块的参数,如下所述: • (1) 增益模块Gain表示人口繁殖速率,故 取值为1.05。 • (2) 模块Gain1表示新增资源所能满足的个 体数目,故取值为1000000。 • (3) Unit Delay模块参数设置。对于离散系 统而言,必须正确设置所有离散模块的初始取 值,否则系统仿真结果会出现错误。这是因为 在不同的初始值下,系统的稳定性会发生变化。 单位延迟模块的参数设置如图7.22所示。

变步长连续求解器可以根据积分误 差对仿真步长进行自动调整。因此,用 户可以设置合适的积分误差上限,以对 系统仿真步长进行控制,从而获得更好 的仿真结果。积分误差分为如下的两种: • (1) 绝对误差:积分误差的绝对值。 • (2) 相对误差:绝对误差除以状态 的值。

在仿真参数设置对话框中,用户可 以对积分绝对误差与 相对误差进行合适 的设置。这样,在系统仿真中求解器只 有满足给定的误差条件时才能够进行下 一步计算。一般说来,当状态值较大时, 相对误差小于绝对误差,由相对误差控 制求解器的运行;而当状态值接近零时, 绝对误差小于相对误差,则由绝对误差 来控制求解器。
仿真时 间范围
离散求 解器
变步长 求解器
图7.24 系统仿真参数设置

在对系统中各模块参数以及系统仿 真参数进行正确设置之后,运行系统仿 真,对人口数目在指定的时间范围之内 的变化趋势进行分析。图7.25所示为系 统仿真输出结果。
人口数目在 0 至 100 年) ( 之间的变化 趋势, 人口逐 渐趋向一个 稳定值
相关文档
最新文档