我是靠谱客的博主 俭朴眼神,最近开发中收集的这篇文章主要介绍Matlab编程技巧:通过脚本获取/修改Stateflow参数1 手动获取/修改Stateflow参数2 通过Matlab脚本获取/修改Stateflow参数3 关于的总结,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在Simulink模型中,经常会用Stateflow做一些状态转移或者流程图的建模。除了状态转移的逻辑以外,也经常需要关注Stateflow的参数,包括Data和Event等。

本文会介绍通过Matlab脚本调用API来获取和修改Stateflow参数的方法。本文例程基于Matlab2018a版本。

文章目录

  • 1 手动获取/修改Stateflow参数
  • 2 通过Matlab脚本获取/修改Stateflow参数
    • 2.1 获取Stateflow操作句柄
    • 2.2 获取Data对象
    • 2.3 修改Data对象
  • 3 关于

1 手动获取/修改Stateflow参数

1.首先在Matlab命令行中输入open sf_security.slx,打开Matlab自带的一个Stateflow例程。模型中包含了一个Chart模块,以及若干输入输出。
在这里插入图片描述
2.点击Simulink上方工具栏中的Model Explorer,再选中左边的Security System,就可以看到该Chart中的所有内容信息。
在这里插入图片描述
3.选中Chart中的某个参数,就会显示出该参数的具体配置。在配置界面中可以手动修改。后文会说明如何通过脚本修改这些参数。
在这里插入图片描述

2 通过Matlab脚本获取/修改Stateflow参数

Stateflow的API和一般的Simulink模块有所不同,接下来会一步一步研究如何用脚本找到例子中的Stateflow参数。

2.1 获取Stateflow操作句柄

由于Stateflow的策略都是在Chart模块中体现的,所以第一步是获取Simulink里面的Chart的句柄。

在Matlab中输入以下命令行:

>>rt = sfroot;
>>myState = rt.find('-isa','Stateflow.Chart');

然后,在Matlab工作区就会返回名为myState的Chart对象,这个Chart对象就是模型中的Security System。注意,如果模型中有多个Chart,就会返回一个包含所有Chart对象的数组。
在这里插入图片描述
获取了Stateflow句柄后,可以通过脚本修改这个Chart属性。例如下面的命令,可以将Stateflow语言设置为C语言:

>> myState.ActionLanguage = 'C'

属性就改成了如下所示:
在这里插入图片描述

2.2 获取Data对象

在Matlab命令行中输入以下代码,就可以返回所有该Chart中包含的所有Data。

>>StateData = myState.find('-isa','Stateflow.Data');

Matlab右侧的工作区:
在这里插入图片描述
对应的Model Explorer中的8个Data:
在这里插入图片描述
当然,在find函数中也可以加入查找的条件。譬如,查找Name为D_mode的Data,代码为:

>>StateData = myState.find('-isa','Stateflow.Data','Name','D_mode');

或者查找Scope为Input的Data,就会返回七个相应的Data:

>> StateData = myState.find('-isa','Stateflow.Data','Scope','Input');

2.3 修改Data对象

假如想要修改D_mode的Type为single,可以通过以下代码:

>>StateData = myState.find('-isa','Stateflow.Data','Name','D_mode');
>>StateData.DataType = 'single';

这样的话,Model Explorer中的Type就被改为了single,如图:
在这里插入图片描述
对于Stateflow中的Event和Message等其他类型的参数,也可以通过类似的方式用脚本调用API去修改,这里不再赘述。

3 关于<Matlab技巧>的总结

< Matlab编程技巧 >详细阐述了如何通过Matlab调用一些API接口修改模型。

实际上,通过Matlab可以调用的接口远不止于此,但这几个类型的脚本是最为实用的,能解决实际工作中遇到的大部分问题,因为在MBD开发中,模型无非就是由模块、信号线、数据字典和状态转移组成的。

在不同的公司,面对不同项目的过程中,经常会总结出一些适用于自己团队的模型建模规范。譬如,要求在某种情况下,需要指定模块的输出类型等等。如果将这一系列自定义的规范写成脚本,集成到Simulink的Model Advisor中,可以减少策略工程师开发脚本的时间,将会大大提高模型检查效率。后续将会以这几篇文章为基础,研究Model Advisor的应用。

>>返回个人博客总目录

最后

以上就是俭朴眼神为你收集整理的Matlab编程技巧:通过脚本获取/修改Stateflow参数1 手动获取/修改Stateflow参数2 通过Matlab脚本获取/修改Stateflow参数3 关于的总结的全部内容,希望文章能够帮你解决Matlab编程技巧:通过脚本获取/修改Stateflow参数1 手动获取/修改Stateflow参数2 通过Matlab脚本获取/修改Stateflow参数3 关于的总结所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(43)

评论列表共有 0 条评论

立即
投稿
返回
顶部