Simulink Example : Create Model Components

案例学习

继上一期

当对简单的弹簧、阻尼系统建立完了模型。现在提出第二个问题:

如果F可控,但是外界环境也会有一些扰动,那么如何控制F能让小球最快到达稳定状态。

对于这样一个问题,在workflow第二期的Create Model Components(创建模型元件)这个案例里,simulink告诉我们,在对详细系统进行进一步建模前,我们可以先辨识出模型的各个元件及其边界,然后以创建子系统的方式将其分离。如下图所示:

根据问题,案例创建了Operator、Environment、Controller、Mechanical system子系统。虽然子系统内的系统不一定这么复杂,但是这样的建模方式使可读性大大增加。能更好地捋清楚思路。

Mechanical system 子系统

由于我们控制的和收到扰动的都是外力,因此原来的F替换成control和disturbance。

Controller 控制器

example中通过一个PID控制器来控制外力,sensor的来源为小球的位置x

Operator 操作器

这里example给出了多个小球的目标位置,通过stateflow

Environment 环境因素

目前环境因素只有一个外力的扰动,这里通过一个step去给出这个扰动


建模练习

来学着例子自己做做看吧,加入点自己的想法:

首先既然要分元件,我干脆就分的更彻底一些吧,Contro视为input到system的调整模块,

urbance然后在control部分加入PID控制器,在前面加入Disturbance,并做好两侧的信号传递


仿真

把所有模块连好仿真试一下:

PID调试

先随便给个PID试试

嗯。。。。很明显不行

用PID Tuner更新一下PID参数再仿真一下

很稳定,尝试一下让小球的目标位置处于一个变动状态,看看我们的控制效果如何。

把目标位置的输入改一改:

嗯,效果不错,完全重合了。。分开看更清楚点

换成随机位置输入:

目标位置变化速度太快的话还是会有超调

把控制速度调慢点,减少震荡,效果好了很多。

小结

1.可以通过子系统创建来将不同类型的系统封装起来并定义接口

2.使用bus时线的位置要计划好,不然会让信号线变得非常乱


模型分享:

https://download.csdn.net/download/weixin_44281768/12839416

Simulink学习——基础建模流程案例(二)(简单弹簧阻尼器系统+控制建模)相关推荐

  1. LINUX学习基础篇(十二)痕迹命令

    LINUX学习基础篇(十二)痕迹命令 系统痕迹命令 w命令 who命令 last命令 lastlog命令 lastb命令 系统痕迹命令 系统中有一些重要的痕迹日志文件,如/var/log/wtmp./ ...

  2. Simulink学习——基础建模流程案例(一)(简单弹簧阻尼器复合系统建模)

    前言 当对对象系统的分析不够充分,需求不够明确的时候,仍然可以先将仿真系统的输入.输入.子系统等模块进行划分,形成一个相对科学的仿真系统框架.在这个框架下,进行对象系统的分析和建模可能很多时候会更高效 ...

  3. 2021-07-14 深度学习基础与实践(二)

    深度学习基础与实践(二) 一.分类及其性能度量 1.分类问题 2.分类性能度量 (1)准确率 (2)精确率和召回率 (3)P-R曲线 (4)F值 (5)ROC曲线 3.分类性能可视化 (1)混淆矩阵的 ...

  4. 质量—弹簧—阻尼系统的建模分析

    质量-弹簧-阻尼系统的建模分析 本文介绍如何使用数轴建模法对质量-弹簧-阻尼系统进行建模分析. 这里涉及的质量块.弹簧.阻尼均为理想器件. 注:实际弹簧还拥有阻尼器的效果,即实际弹簧应该是一个弹簧-阻 ...

  5. Python学习基础笔记三十二——正则表达式

    官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符.及这些特定字符的组合,组成一个"规则字符串",这个规则字符串用来表达对字符串的一种过滤逻辑. 1. ...

  6. python基本数据类型选择题-python基础学习——基础数据类型练习题(二)

    一.根据要求查找元组中的指定元素 l1=[11,22,33] l2=[22,33,44] 1)获取元组l1.l2中内容相同的元素 l1=[11,22,33] l2=[22,33,44]for i in ...

  7. python组合数据类型选择题_python基础学习——基础数据类型练习题(二)

    一.根据要求查找元组中的指定元素 l1=[11,22,33] l2=[22,33,44] 1)获取元组l1.l2中内容相同的元素 l1=[11,22,33] l2=[22,33,44]for i in ...

  8. CocosCreator入门学习《FlappyBird》(二):动画系统让小鸟动过来

    显然不是真的让小鸟活过来,而是通过帧动画让小鸟翅膀动起来,看起来就像是在飞翔一样. 在层级管理器里面找到Bird节点并点击,然后在右边的属性检查器中最下方找到"添加组件"的按钮,这 ...

  9. AMESIM学习——弹簧阻尼器小球位置控制Amesim-Simulink联合仿真

    前面一期我们使用了Simulink进行了一次弹簧阻尼器+位置控制仿真.还记得这个图么: 后面联合仿真的环境配置好后,我在想,如何联合使用AMESIM和SIMULINK比较科学.然后就想到,当时建立Si ...

最新文章

  1. 程序员带半箱辣条参加东京奥运,网友:这不是辣条,是狗粮!
  2. odoo开发笔记:前端显示强制换行
  3. 方立勋_30天掌握JavaWeb_JSTL标签库
  4. Vue2 源码漫游(一)
  5. stackoverflow favorites
  6. 口罩人脸检测与分类开源代码汇总
  7. free() 是如何释放不同内存区块大小的指针?
  8. luogu P1273 有线电视网
  9. Linux环形工作队列KFIFO的使用说明
  10. js 正则表达式去空格
  11. 2009国家公务员面试过关点点通
  12. 操作系统引导-----QEMU环境下制作boot引导程序
  13. AutoRunner使用说明
  14. 微信小程序自定义组件(1)----地址选择器
  15. 合宙-icool 开发板使用手册
  16. 【计算机算法】递归——循环日程表
  17. 【电路】电容(四)——旁路电容
  18. eNSP实验三:OSPF路由协议
  19. matlab二阶滤波器设计,基于matlab的各类滤波器设计
  20. STC89C52RC - 12 - 静、动数码管显示

热门文章

  1. 精尽 JDK 源码解析 —— 集合(四)哈希表 LinkedHashMap
  2. oracle设置用户密码永不过期
  3. 最新网络工程毕设选题题目推荐
  4. 我00后,会点Python,月薪4000,兼职1.2w
  5. 支付漏洞简介及靶场演示
  6. 数字货币到底解决了哪些问题?
  7. ResultSet 状态详解
  8. 博客摘录「 均线多头排列选股公式,选出均线多头刚起步的标的」2023年5月18日
  9. MFC Windows 程序设计(三)-锦上添花(附源码)
  10. 电脑中如何配置JDK