Simulink学习

您所在的位置:网站首页 simulink中workspace模块 Simulink学习

Simulink学习

2023-08-12 13:04| 来源: 网络整理| 查看: 265

Simulink模型数据管理

 

当某些数据要在不同模型中复用时,最好能够统一管理和更新数据,而不应该一个一个点模块去更新数据,否则既低效也容易出错。

根据Simulink Help ex_modeling_data.slx Demo,来学习一下如何进行模型数据的管理。(注:这里的数据指模型中的输入参数、变量或者信号数据)

创建数据 创建Matlab workspace 的变量

比如在Simulink Help ex_modeling_data.slx Demo中,就是上次我们那个弹簧阻尼器系统的模型。就下面这个模型:

 

其中包含了两个弹簧物理模型模块:

 

如果弹簧阻尼器的物理特性都是一样的,都有同样类型的变量:k、c和m,那么每次改动都需要去到两个模块中去写入。如果重复的模块多起来,就会变得非常麻烦。

PID的控制参数也可能是要经常更新的参数:

 

Demo中,使用这样的m脚本对各种参数变量进行赋值:

 

那为啥它能够直接对这些参数进行操作呢?如下,可以看到这个demo的base workspace中有这样一些变量,直接修改这些变量的话,对应的Simulink模块中的变量参数也会发生改变。换句话说,模型中一些本来要双击点开修改的参数,映射或者说变成了变量放到了workspace里,这让这个demo可以直接使用m文件对这些变量进行值修改操作。

但是想想,好像我自己创建变量的时候没看到这些呀。比如我简单创建一个模型:

 

可以看到workspace只有一个out,并没有像demo那样有一些变量 。那么如何创建这些变量和参数呢。如下,点击一个想创建参数的模块,找到想设置变量参数的值,右边有三个点,点击即可创建:

   

 

如果选择Model Workspace 那就会像下图这样,创建一个只在制定Model中生效的变量:

 

 

如果选择Base Workspace 那就会像下图这样,创建一个在工作区生效的变量:

 

 

还可以直接在Model Explorer中创建workspace变量,但是那样可能就不知道自己创建的这个变量是给谁用的了,目前来看我觉得还是在对应模块上创建变量会清晰许多。

 

 

 

  创建Simulink参数、信号

 

使用Simulink.Parameter 和 Simulink.Signal这两个类即可创建带一些基本属性的数据,也可以将现有的数据转化成带属性的数据。

如写一个这样的m脚本:

 

这时候再输出AmpWave:

 

这里这两个类的用法与Python是相似的。直接创建AmpWave对象后,就可以调用其一些属性进行操作了。这时候点进去Model Explorer,也可以直接在Simulink中修改数据的各项属性。

 

 

也可以直接用Model Explorer直接创建Simulink 参数和信号:

 

创建出来的信号和刚刚用指令创建出来的是一样的。

 

修改数据

 

使用m脚本修改数据

然后我们就可以写m文件对对应数据进行更改啦:

 

运行前:

 

运行m文件后:

 

同理,就可以对所有simulink里面需要设置的变量使用脚本进行统一数据管理啦。

 

使用Model Data Editor修改数据

  

在较简单的模型中,用Model Data Editor修改数据起来非常方便,可以高亮显示这个数据在哪,对谁起作用。

 

使用Model Explorer修改数据

  

Model Explorer也非常好用,它可以以树形图在左边显示模型的关系,在模型复杂的时候,用它修改起来会更加方便。

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3