matlab 函数pdf怎么用_[Matlab] Simulink用得多了,不知道sim()函数你又知多少?

v2-dce77601a4264cb1267d6dfe1be4af65_1440w.jpg?source=172ae18b

前言

Simulink作为MATLAB中最为强大的APP,相信用的人不会少,不过MATLAB里的sim()函数,你们又知道多少呢?用过Simulink的同学应该不会对这个界面感到陌生吧。

v2-d72574b7c696e79f2e6ccb8a855608e8_b.jpg

图形界面的好处是直观,学习成本低,使用方便,但是当你的Simulink模型只剩下参数需要修改,又或者需要批量仿真的时候,这个图形界面就不一定能够满足你的要求了,这个时候就该sim()函数闪亮登场了。

使用场景

其实说白了sim()函数其实就是调用simulink模型的一个接口,虽然看上去挺简单,但是功能很齐全。而它的使用场景有以下几种情况:

  • 批量仿真当Simulink模型已经固定下来需要调参或者需要批量仿真的时候,循环语句+sim()函数能够轻松实现这个目标,而且还可以使数据自动导出保存。
  • 参数优化这其实已经是以函数的方式调用simulink模型了,这样的话,MATLAB一众的优化函数自然就能够用上了
  • 性能提升使用函数调用以后,仿真的时间是能够降下去的,主要是因为图形界面的开销没有了

简单入门

例:使用默认模型配置参数对模型Simulink_Model进行仿真,结果返回到工作空间中,模型文件要在同一目录下

simOut 

进阶使用

接下来就要对更多仿真的参数进行细节的调整,基本上在图形界面上经常调整的比如变步长模式的绝对容差,定步长模式里面的步长,求解器,求解模式,停止时间等等都可以在这里进行设置,不过要是不用改的话,就不设置就好了,会按照你在图形界面设定好的配置进行运行的。

例:假在绝对容差为 1e-5 的条件下以 Rapid Accelerator 模式对模型 Simulink_Model 进行仿真,并将状态保存在 xoutNew 中,将输出保存在 youtNew 中。

simOut 

批量仿真

当然啦,单次的仿真是体现不出来这个函数的威力的,最起码也要批量仿真才能够体现出这个函数的优势,以下是我进行批量仿真的一段代码,其实搞清楚了过程是很简单的。

例在MATLAB脚本的目录下有一个名为 Simulink_Model 的simulink模型文件,需要对里面的一个叫 parameter 的参数进行批量仿真,那么对应的例程如下

首先要定义出需要进行批量仿真的参数,然后创建一个 Simulink.SimulationInput 类,然后利用 setVariable() 这个函数对模型里的参数进行赋值,代码里面 D_m 是模型中对应参数的名字。

然后利用循环构建一个 SimulationInput 结构体组成的数组,放进函数里面进行仿真就可以了。

至于仿真结果嘛,其实原来保存进工作空间的结果,都会保存在simOut这个结构体里面,仿真结束后翻一下这个结构体就可以了。

%% 添加批量运行参数

结语

平时码字比较少,可能语言不是很清晰,不要见怪,有任何不懂的地方,可以查阅MATLAB的官方文档,链接如下,有需要的再补充。

动态系统仿真 sim() 函数帮助​ww2.mathworks.cn 仿真监视器​ww2.mathworks.cn
v2-a8b8bf5524159915a77afc45cc1d9db6_ipico.jpg
批量仿真​ww2.mathworks.cn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值