Simulink学习——基础建模流程案例(二)(简单弹簧阻尼器系统+控制建模)
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学习——基础建模流程案例(二)(简单弹簧阻尼器系统+控制建模)相关推荐
- LINUX学习基础篇(十二)痕迹命令
LINUX学习基础篇(十二)痕迹命令 系统痕迹命令 w命令 who命令 last命令 lastlog命令 lastb命令 系统痕迹命令 系统中有一些重要的痕迹日志文件,如/var/log/wtmp./ ...
- Simulink学习——基础建模流程案例(一)(简单弹簧阻尼器复合系统建模)
前言 当对对象系统的分析不够充分,需求不够明确的时候,仍然可以先将仿真系统的输入.输入.子系统等模块进行划分,形成一个相对科学的仿真系统框架.在这个框架下,进行对象系统的分析和建模可能很多时候会更高效 ...
- 2021-07-14 深度学习基础与实践(二)
深度学习基础与实践(二) 一.分类及其性能度量 1.分类问题 2.分类性能度量 (1)准确率 (2)精确率和召回率 (3)P-R曲线 (4)F值 (5)ROC曲线 3.分类性能可视化 (1)混淆矩阵的 ...
- 质量—弹簧—阻尼系统的建模分析
质量-弹簧-阻尼系统的建模分析 本文介绍如何使用数轴建模法对质量-弹簧-阻尼系统进行建模分析. 这里涉及的质量块.弹簧.阻尼均为理想器件. 注:实际弹簧还拥有阻尼器的效果,即实际弹簧应该是一个弹簧-阻 ...
- Python学习基础笔记三十二——正则表达式
官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特殊字符.及这些特定字符的组合,组成一个"规则字符串",这个规则字符串用来表达对字符串的一种过滤逻辑. 1. ...
- python基本数据类型选择题-python基础学习——基础数据类型练习题(二)
一.根据要求查找元组中的指定元素 l1=[11,22,33] l2=[22,33,44] 1)获取元组l1.l2中内容相同的元素 l1=[11,22,33] l2=[22,33,44]for i in ...
- python组合数据类型选择题_python基础学习——基础数据类型练习题(二)
一.根据要求查找元组中的指定元素 l1=[11,22,33] l2=[22,33,44] 1)获取元组l1.l2中内容相同的元素 l1=[11,22,33] l2=[22,33,44]for i in ...
- CocosCreator入门学习《FlappyBird》(二):动画系统让小鸟动过来
显然不是真的让小鸟活过来,而是通过帧动画让小鸟翅膀动起来,看起来就像是在飞翔一样. 在层级管理器里面找到Bird节点并点击,然后在右边的属性检查器中最下方找到"添加组件"的按钮,这 ...
- AMESIM学习——弹簧阻尼器小球位置控制Amesim-Simulink联合仿真
前面一期我们使用了Simulink进行了一次弹簧阻尼器+位置控制仿真.还记得这个图么: 后面联合仿真的环境配置好后,我在想,如何联合使用AMESIM和SIMULINK比较科学.然后就想到,当时建立Si ...
最新文章
- 程序员带半箱辣条参加东京奥运,网友:这不是辣条,是狗粮!
- odoo开发笔记:前端显示强制换行
- 方立勋_30天掌握JavaWeb_JSTL标签库
- Vue2 源码漫游(一)
- stackoverflow favorites
- 口罩人脸检测与分类开源代码汇总
- free() 是如何释放不同内存区块大小的指针?
- luogu P1273 有线电视网
- Linux环形工作队列KFIFO的使用说明
- js 正则表达式去空格
- 2009国家公务员面试过关点点通
- 操作系统引导-----QEMU环境下制作boot引导程序
- AutoRunner使用说明
- 微信小程序自定义组件(1)----地址选择器
- 合宙-icool 开发板使用手册
- 【计算机算法】递归——循环日程表
- 【电路】电容(四)——旁路电容
- eNSP实验三:OSPF路由协议
- matlab二阶滤波器设计,基于matlab的各类滤波器设计
- STC89C52RC - 12 - 静、动数码管显示