7第7章 SIMULINK仿真
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 年) ( 之间的变化 趋势, 人口逐 渐趋向一个 稳定值