分享

用Simulink进行仿真遇到的一些问题以及相应的解决方法整理

 xiaoxiaoanyang 2019-04-12

用Simulink进行仿真遇到的一些问题以及相应的解决方法整理

1、 如何对用户自定义的变量进行批量处理
在Simulink中进行仿真的时候,我们总是不可避免的需要自定义许多变量,比如很多变量前面的系数。在仿真的时候,我们需要对同一个系数在不同数值下进行仿真实验,而且有的时候同一个系数可能会在多个m文件中使用。这个时候如果直接在m文件中进行更改,就会显得比较麻烦。此时我们可以在S函数模块的属性对话框进行相应的设置。S-function parameters 中的参数是用户自定义的封装参数,而不是S函数中默认的参数(比如说 t,x,u)。对于S-function parameters 中的参数,不能在S函数内部中进行声明定义,但是需要在各个需要使用变量的子函数的参数列表按顺序进行添加。参数变量是用来作为函数的接口变量,真正的声明定义应该是在workspace中、也可以把整个模型中需要用到的用户自定义变量写到一个m文件或者模型的上层UI中。
PS:使用该方法之后,每次运行该模型文件,都需要先运行相应的定义了变量的m文件。
这部分内容要感谢孙忠潇老师以及他编辑的书《Simulink仿真及代码生成技术入门到精通》,之前就这个问题们还在MATLAB的中文论坛中进行了发帖提问,很荣幸得到了孙老师的亲自解答。
http://www./forum.php?mod=viewthread&tid=479554&page=1#pid3058396

这里写图片描述
这里写图片描述

2、 如何设置随时间变化的参数
有的时候在做实验的时候我们需要某一个变量在不同的时间内具有不同的数值,此时可以在S函数中用if语句对时间变量t进行判断,根据t的不同,赋予变量不同的数值。
3、 如何设置随机数
产生随机数的函数如下:
rand(‘state’,sum(100*t)) ;
rand()
其中 t 前面的系数一开始以为是表示每秒中产生的随机数,但是在实际中测试并不是这样的,只是系数越大,每秒中产生的随机数就越多,而且同样的系数固定的步长和变步长产生的结果也不相同。

4、 如何保存Simulink中的模型文件
保存模型文件:
saveas(get_param(gcs, ‘handle’), ‘savename_model’,’png’)
其中savename_model为将模型文件保存之后的文件名; png为保存模型文件的图片类型,可以根据需要进行更改。
打印模型文件,质量相对来说更加清晰:
print(‘-smodel_name’, ‘-dpdf’, ‘savename_model’)
其中model_name 表示的需要保存的模型文件名; -dpdf 表示需要将模型文件保存为何种类型;savename_model为将模型文件保存之后的文件名。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多