首页 资讯 应用 高压 设计 行业 低压 电路图 关于

嵌入式

旗下栏目: PLC 嵌入式 单片机 DCS

Simulink小技巧:用脚本创建模型

嵌入式 | 发布时间:2018-10-17 | 人气: | #评论# | 本文关键字:MBD,Simulink,脚本
摘要:“模型的创建主要是设计算法实现的过程,手动从Library拖动模块并不会浪费多少时间,敢问您抛出这么个话题是炫技呢还是装13呢还是兼而有之?” 其实这是对MBD开发的误区,在开发过程中,

“模型的创建主要是设计算法实现的过程,手动从Library拖动模块并不会浪费多少时间,敢问您抛出这么个话题是炫技呢还是装13呢还是兼而有之?”其实这是对MBD开发的误区,在开发过程中,最重要最核心的诚然是算法模型,但是同时我们也需要一些其它的起支持和辅助作用的模型,比如测试用例模型,比如MIL/SIL测试的框架模型都需要依托于算法模型,其原型的搭建往往都是简单重复劳动,而这些劳动用脚本来做的话往往可以取到事半功倍的效果。下面举个小小的例子的来说明是怎样实现的。

(一)创建TestCase模型

sys = 'Testcase1';

new_system(sys) % 创建模型

open_system(sys) % 打开模型

x = 300;

y = 30;

w = 30;

h = 30;

offset = 60;

pos = [x y+h/4 x+w y+h*.75];

Out1Name='/VehSpeed'

add_block('built-in/Outport',[sys Out1Name],'Position',pos);

% 创建一个名为VehSpd的输出端口

x=x-200;

pos = [x y x+w y+h];

Source1Name='/SinWave';

add_block('built-in/Sin',[sys Source1Name],'Position',pos);

%创建一个名为Sinwave的正弦波信号源

add_line(sys,'SinWave/1','VehSpeed/1','autorouting','on');

%连接输出端口与信号源

于是,一个简单的TestCase就创建好了,,使用save(sys)将整个TestCase保存起来。

(二)创建MILTestFrame模型

在进行MIL仿真的时候,MIL的TestFrame中一般会放两个ReferenceModel,其中一个Reference Model指向刚才所创建的TestCase模型,另一个Reference Model指向算法模型。用脚本实现的方法大同小异。

sys = 'MIL_Test_Frame';

new_system(sys) % 创建模型

open_system(sys) % 打开模型

x = 100;

y = 30;

w = 200;

h = 400;

pos = [x y+h/4 x+w y+h*.75];

add_block('built-in/ModelReference',[sys '/TestCase'],'Position',pos);

% 在模型内创建一个名为“TestCase”的reference model

set_param([sys '/TestCase'],'ModelName','Testcase1');

%名为“TestCase”的reference model指向模型Testcase1.slx

x=x+400;

pos = [x y+h/4 x+w y+h*.75];

add_block('built-in/ModelReference',[sys '/Algorithm'],'Position',pos);

% 在模型内创建一个名为“Algorithm”的reference model

set_param([sys '/Algorithm'],'ModelName','AlgorithmModel');

%名为“Algorithm”的reference model指向模型AlgorithmModel.slx

add_line(sys,'TestCase/1','Algorithm/1','autorouting','on')

%用信号线连接两个Reference Model


责任编辑:Simulink小技巧
首页 | 电气资讯 | 应用技术 | 高压电器 | 电气设计 | 行业应用 | 低压电器 | 电路图 | 关于我们 | 版权声明

Copyright 2017-2018 电气自动化网 版权所有 辽ICP备17010593号-1

电脑版 | 移动版 原创声明:本站大部分内容为原创,转载请注明电气自动化网转载;部分内容来源网络,如侵犯您的权益请发送邮件到[email protected]联系我们删除。