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

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值