




已阅读5页,还剩54页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
10 5 4非线性系统的模拟 examp10 5 5 mdl 例1 小车由两个喷射式发动机推动在光滑的平面内运动 若小车的速度和位移之和为负值 则启动左边的发动机 若小车的速度和位移之和为正值 则启动右边的发动机 控制的目标使小车静止在原点 此模型类似于卫星的位置控制过程 m x F 假定小车初始静止 并且位移量为 1假设 m 5kg F 1 1 0 注 符号函数模块说明 examp10 5 5 0 mdl 用一个二维图形模块来绘制仿真过程的相图 相图是速度相对于位移的变化图 注 在MATLAB中使用plot xout 1 xout 2 画出的图形 和XYGraph的结果一致 说明 为模仿 符号切换的非瞬时性 本例采用 定步长 solver解算器ode5 fixedstepsize为0 05 为了得知小车何时到达原点并使仿真停止 对模型增加一个逻辑判断 以使目标达到时仿真自动停止 examp10 5 5 1 mdl 对于本算例 可以认为小车的位移和速度的绝对值之和小于一个较小量 如0 01时 就认为目标已经达到并结束仿真 如果想得到小车位移的响应时程 可在模型中加入示波器模块 如下图所示 为观察仿真时间进程 引入仿真时钟显示 仿真结果如下图所示 该图形是采用MATLAB环境下的plot tout xout 1 画出的 结果与示波器的结果一致 由图形可看出 仿真在7 6s时停止 这与模型框图中的时钟显示模块Display的结果一致 小车系统在7 6时达到平衡 例2 蹦极跳系统的动态仿真 examp10 5 6 mdl 蹦极跳时一种挑战身体极限的运动 蹦极者系着一根弹性绳从高处的桥梁 或山崖等 向下跳 在下落的过程中 蹦极者几乎处于失重状态 按照牛顿运动规律 自由下落的物体由下式确定 m为人体的质量 g为重力加速度 位置x的基准为桥梁的基准面 如果人体系在一个弹性常数为k的弹性绳索上 定义绳索下端的初始位置为o 则其对落体位置的影响为 桥梁基准面 地面 因此 整个蹦极系统的数学模型为 其为典型的具有连续状态的非线性系统解 设桥梁距离地面为50m 即h2 50蹦极者起始速度为0蹦极者的起始位置为绳索的长度30m 即h1 30其余的参数为 k 20 a2 a1 1 m 70kg g 10m s2初始条件 x 0 30 x 0 0 注 Switch模块介绍 双击输入Threshold值 系统默认为0 说明 1 设置仿真时间0 100s 为了使曲线光滑 可设置最大仿真步长为0 1 2 右边图为蹦极者到地面的距离曲线 examp10 5 6 1 mdl模型如上图所示 运行结果和前面一致 在matlab环境下输入m 70 g 10 k 20 a1 1 a2 1 examp10 5 6 2 mdl模型采用了Fcn模块 结果和前面运行一致 若在MATLAB环境下键入 whos可得到 whosNameSizeBytesClassa11x18doublearraya21x18doublearrayg1x18doublearrayk1x18doublearraym1x18doublearraytout1000 x18000doublearrayxout1000 x216000doublearraytout为时间序列 xout第一列为位移时间序列 第二列为速度时间序列 若在MATLAB环境下键入 plot tout xout 1 将得到示波器Scope显示的结果 如果想在MATLAB环境下使用plot命令画出示波器scope1显示的图形 可在系统模型中加入out模块 examp10 5 6 3 mdl 若在MATLAB环境下键入 whos可得到 whosNameSizeBytesClassa11x18doublearraya21x18doublearrayg1x18doublearrayk1x18doublearraym1x18doublearraytout1000 x18000doublearrayxout1000 x216000doublearrayyout1000 x18000doublearray其中yout为out模块的输出结果 此时若在MATLAB环境下键入 plot tout yout 将得到Scope1显示的结果 结果分析 对于体重为70kg的蹦极者 此系统是不安全的 因为蹦极者与地面之间的距离出现了负值 例3 轿车沿直线山坡路向前行驶 要求设计一个简单的比例放大器 使轿车能以指定的速度运动 examp10 5 7 mdl 本例演示 1 仿真系统的创建 2 非线性模块的使用 3 任意函数模块的应用 4 体现 自下而上 的建模方式 解 1 轿车的运动方程据牛顿第二定律 可写出 式中各量的物理意义如图所示 其中m为轿车质量 取为100个质量单位 Fe是引擎动力 最大驱动力为1000 最大制动力为2000 即 是空气阻力 它与轿车的速度平方成正比 第二项是近似考虑 阵风 而引入的 是重力分量 正弦项是为考虑坡路与水平夹角变化而引入 2 行驶轿车动力学的仿真模型如下图所示 FcIn输入模块 为 指令 驱动力Fc提供输入口 SaOut输出模块 为输出轿车实际速度Sa提供输出口 3 比例控制及其仿真模型题目要求利用简单的比例控制 其工作原理是 根据期望速度和实际速度之差产生 指令 驱动力Fc 具体数学模型为Fc Ke xc x 取Ke 50 指令 驱动力Fc和实际驱动力Fe的差别在于 前者是理论上需要的计算力 后者是受物理限制后实际能提供的力 4 构成完整的仿真模型把前面创建的轿车动力学模型和比例控制器模型放在同一个新建模型窗中 进行适当连接 得到如下图所示完整仿真模型 删去控制其模型的ClockIn输入口 使Clock信号源模块的输出与此断点相接 5 仿真操作和说明完整仿真模型窗的仿真终止时间设置为10000 解算器Solver采用ode45 仿真前先分别打开滑键操作窗和示波器显示窗 在仿真过程中 若移动滑键 可从模型窗的SliderGain模块上看到变化的期望车速 与此同时可看到 数值显示器显示实际车速 在控制作用下不断翻动地向期望车速逼近 主要内容 SIMILINK与建模仿真模块的基本操作运行仿真基本模块介绍连续系统子系统及其封装技术 10 6 1Simulink子系统 绝大多数程序设计语言都有使用子程序的功能 例如MATLAB的子程序 M文件 随着模型变得越来越大 越来越复杂 人们很难轻易读懂它们 在这种情况下 子系统通过把大的模型分割成几个小的模型以使得整个模型更加简捷 可读性更高 而且这种操作并不复杂 1 创建Simulink子系统有两种方法 1 对已经存在的模型的某些部分或全部使用菜单命令 Edit CreatSubsystem 将进行压缩转换 使之成为子系统 2 使用Subsystems模块库中的Subsystem模块直接创建子系统 2 Simulink子系统的两种作用 1 系统模型更加简捷和可读性高 2 子系统可以反复调用 节省建模时间 3 举例说明子系统创建方法 例1 求解微分方程 examp10 6 1 mdl 方程可转化为 操作步骤 使用菜单命令 1 使用范围框将要压缩的子系统的部分选中 包括方块和信号线 2 在模块窗口选项中选择 Edit CreatSubsystem Simulink将会用一个子系统模块代替被选中的模块组 3 进行模型美观调整 examp10 6 1 0 mdl 双击子系统 则出现一个显示子系统内容的新窗口 在新窗口中 除了原始的模块外 Simuink自动添加了输入模块和输出模块 分别代表子系统的输入端口和输出端口 两点说明 1 子系统窗口无需保存 只需保存主程序窗口即可 保存主程序窗口后 子系统窗口自动得以保存 2 菜单命令 Edit CreatSubsystem 没有相反的操作命令 也就是说 一旦一组模块压缩成了子系统 就没有可以直接还原的处理方法 undo除外 因此 一个理想的处理方法是在压缩子系统之前 先将模型进行保存 作为备份 假定系统有如下初始条件 x 0 2 x 0 0要求采用原始模型 没有压缩子系统的模型 和压缩子系统的模型进行仿真 仿真时间30s 对比结果 子系统模块 examp10 6 1 1 mdl 在创建模型的时候 如果需要一个子系统 除了上述介绍的压缩子系统的方法外 也可以直接使用子系统模块 在子系统窗口中进行创建 要使用子系统模块创建子系统 先从Subsystems模块库中拖曳一个子系统模块到模型窗口中 然后双击子系统模块 就会出现一个子系统的编辑窗口 子系统的建立可以在该窗口中进行建立 例2 模拟下图所示的弹簧 质量系统的运动状态 examp10 6 2 mdl x2 m1 x1 m2 m3 x3 k3 k2 k1 k1x1 m2 k3 x3 x2 m3 m1 k2 x2 x1 k2 x2 x1 k3 x3 x2 m3 m3 双击后可显示出第一个质量的子系统图 如下页所示 第二和第三个质量子系统中 三个增益模块分别输入 第二个质量 k2 k3 1 m2第三个质量 k3 0 1 m3 注意 在子系统的信号输入端要使用一个输入模块 在信号输出端要使用一个输出模块 解 假定系统的初始条件为 第一个质量上有初始位移x1 0 1 则在第一个质量子系统框图中的位移模块中输入初始条件1 在MATLAB环境下输入 k1 1 k2 2 k3 4 m1 1 m2 3 m3 2系统仿真结果如下 说明 若想输出其它两个质量的轨迹 可在模型中增添示波器模块Scope 或增添输出模块Out即可 在MATLAB命令窗口中输入以下命令即可得到如下两条曲线 左图为第一个质量的轨迹 右图为第二个 plot tout yout 1 grid figure plot tout yout 2 grid 例3 以前面部分所示轿车速度控制模型中的轿车动态模型为例说明子系统建立 examp10 6 3 mdl 将待 压缩 模型examp10 5 7 mdl另存为一个新模型examp10 6 3 mdl建立第一个子系统 汽车动力学模型建立第二个子系统更改子系统的标识名重命名输入输出口的名称 10 6 2封装技术1 如何封装子系统封装子系统与建立子系统并不相同 建立子系统指的是将具有一定功能的一组模块 容纳 在一个子系统之中 使用单一图形方式的子系统模块来表示一组模块 从而增强系统模型的可读性 在动态系统进行仿真时需要对子系统中各个模块的参数分别进行设置 而封装子系统指的是将已经建立好的具有一定功能的子系统进行封装 封装的目的在于生成用户自定义的模块 此模块与子系统的功能完全一致 2 封装子系统特点 1 自定义子系统模块及其图标 2 用户双击封装后的图标时显示子系统参数设置对话框 3 用户自定义子系统模块的帮助文档 4 封装后的子系统模块拥有自己的工作区 3 封装子系统技术优点 向子系统模块中传递参数 屏蔽用户不需要看到的细节 2 隐藏 子系统模块中不需要过多展现的内容 3 保护子系统模块中的内容 防止模块实现被随意篡改 4 封装子系统的基本过程选择需要封装的子系统选择 Edit Mask 菜单 弹出封装编辑器 进行各种设置 单击 Apply 或 OK 按钮保存设置 例 以前面部分所示轿车速度控制模型中的轿车动态模型为例说明子系统封装技术 解 1 产生待加工的模型窗口 examp10 6 4 mdl为了使待建新模块具有一定的通用性 把AutomobileModel子系统中某些模块的参数用变量名表示 而不是用固定的数值 1 双击 MaxThrust 常数模块 设置驱动力上限为Fmax 2 双击 MaxBrake 常数模块 设置制动力下限为Fmin 3 双击 FW 函数模块 函数表达式写为0 001 u 1 kw sin 0 01 u 2 2 其中kw是阵风强度系数 4 双击 FH 函数模块 函数表达式为kh sin 0 0001 u 其中 kh是路面起伏系数 2 打开封装编辑器 3 封装后框图 作业1 有初
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中级银行从业资格之中级银行业法律法规与综合能力综合提升练习试题附完整答案详解(考点梳理)
- 自考专业(计算机网络)能力提升B卷题库及参考答案详解(典型题)
- 物流绿色低碳智能配送解决方案
- 环保公司固定资产管理规定
- 环保公司涉外纠纷处理细则
- 中考数学总复习《 圆》强化训练【基础题】附答案详解
- 资料员之资料员基础知识检测卷附答案详解(基础题)
- 中考数学总复习《旋转》测试卷附参考答案详解(达标题)
- 中级银行从业资格之中级银行业法律法规与综合能力强化训练模考卷及答案详解(全优)
- 环保公司质量检测管理规定
- 2025年财政管理知识竞赛题库及答案
- 满意度调查测评方案
- 区域产业协同发展面试题
- 当归种植培训课件
- 三年(2023-2025)中考语文真题分类汇编(全国)专题22 议论文阅读(解析版)
- 学习2025年初中初三开学第一课专题
- 2025年浙江省教师招聘考试(语文)历年参考题库含答案详解(5卷)
- 医学类案例教学法
- 2025巡护员考试题库及答案
- 2025文化和旅游部直属事业单位招聘社会人员29人模拟试卷附答案详解
- 产前准备课件
评论
0/150
提交评论