[Simulink] 配置集(一)什么是配置集

说明:本文基于 MATLAB 2016a


配置集(Configuration Set)就是模型的参数配置集合,simulink 建模十分灵活强大,所以需要众多的参数设置,常用有几个方面(MathWorks 自称为 componets,即“组件”):


• Solver // 解算器

• Data Import/Export // 数据输入输出

• Optimization // 优化

• Diagnostics // 诊断

• Hardware Implementation // 硬件实现

• Model Referencing // 模型参考

• Simulation Target // 模拟目标


ps. 不同的 MathWorks 产品,配置集中会显示不同的默认组件

ps. 上述组件的中文翻译都是直译,一般使用时直呼英文名称,翻译的不准仅作参考


示例

[Simulink] 配置集(一)什么是配置集_第1张图片

任意模型界面,通过 Ctrl + H 可以打开 Model Explorer,如下图,包含三个模型,demo_model1~3,所有模型的 Configuration 处于激活状态

选中某个 Configuration,可以在 Contents 中看到内容(只显示 Default 内容,即上述常用组件),在最右 Dialog 中更改配置集名称、添加备注等

可以右键单击某个 Configuration,使其处于激活状态

一个模型可以有多个 Configuration,但只能有一个处于激活状态,通过激活不同的配置集,快速对模型参数进行配置

选中 Contents 中的某个组件,最右 Dialog 中显示其具体内容,和在模型中 Ctrl + E 显示的内容一致


导出配置集


可以在 Model Explorer 中的模型右击,Configuration → Export Active Configuration 导出配置集:

[Simulink] 配置集(一)什么是配置集_第2张图片

• 导出的配置集可以是 .m 文件或 .mat 文件

• 前者包含创建配置集的函数

• 后者包含配置集对象

• 如果要在模型中导入配置集,必须是配置集对象,即 .mat 文件

以上操作也可以通过 Matlab 代码实现,在 Command Window 中:

cs = getConfigSet('demo_model1','Configuration1'); // 将模型 demo_model1 中的 Configuration1 保存成 ConfigSet 对象,名为 cs
save('Config_model1_1.mat','cs'); // 这里也可以保存成 .m 文件


配置集 .m 文件


function cs = Config_model1()
%---------------------------------------------------------------------------
%  MATLAB function for configuration set generated on 15-Jul-2018 17:24:58
%  MATLAB version: 9.0.0.341360 (R2016a)
%---------------------------------------------------------------------------

cs = Simulink.ConfigSet;

% Original configuration set version: 1.16.2
if cs.versionCompare('1.16.2') < 0
    error('Simulink:MFileVersionViolation', 'The version of the target configuration set is older than the original configuration set.');
end

% Original environment character encoding: GBK
if ~strcmpi(get_param(0, 'CharacterEncoding'), 'GBK')
    warning('Simulink:EncodingUnMatched', 'The target character encoding (%s) is different from the original (%s).',  get_param(0, 'CharacterEncoding'), 'GBK');
end

% Original configuration set target is ert.tlc
cs.switchTarget('ert.tlc','');

% Do not change the order of the following commands. There are dependencies between the parameters.
cs.set_param('Name', 'Configuration1'); % Name
cs.set_param('Description', ''); % Description

% Solver
cs.set_param('StartTime', '0.0');   % Start time
cs.set_param('StopTime', '11');   % Stop time
cs.set_param('SolverType', 'Fixed-step');   % Type
cs.set_param('EnableConcurrentExecution', 'off');   % Show concurrent execution options
cs.set_param('SampleTimeConstraint', 'Unconstrained');   % Periodic sample time constraint
cs.set_param('Solver', 'FixedStepDiscrete');   % Solver
cs.set_param('FixedStep', '0.01');   % Fixed-step size (fundamental sample time)
cs.set_param('SolverMode', 'Auto');   % Tasking mode for periodic sample times
cs.set_param('AutoInsertRateTranBlk', 'off');   % Automatically handle rate transition for data transfer
cs.set_param('PositivePriorityOrder', 'off');   % Higher priority value indicates higher task priority

% Data Import/Export
cs.set_param('LoadExternalInput', 'off');   % Load external input
cs.set_param('LoadInitialState', 'off');   % Load initial state

上述为部分配置集的 .m 代码,可以看出,主要是通过代码对参数进行设置,好处:

1. 众多参数中,常用配置不多,其他都保持默认,默认的可以删除,只保留需变更的配置项即可

2. 直接将其他模型的 .m 文件价拷贝过来即可

你可能感兴趣的:(Simulink)