exponenta event banner

Настройка модели из командной строки

Генератор кода предоставляет параметры конфигурации модели для настройки сгенерированного кода. В зависимости от способа использования и взаимодействия с сгенерированным кодом принимаются решения о конфигурации. Вы выбираете конфигурацию, которая наилучшим образом соответствует вашим потребностям в отладке, отслеживании, эффективности кода и мерах безопасности.

Процесс конфигурирования модели обычно автоматизируется с помощью скрипта MATLAB ® после выбора требуемой конфигурации.

Пример описывает:

  • Концепции работы с параметрами конфигурации

  • Документация для понимания вариантов создания кода

  • Инструменты и сценарии для автоматизации настройки модели

Рабочие процессы параметров конфигурации

Существует много рабочих процессов для параметров конфигурации, которые включают сохранение в одной модели или сохранение в нескольких моделях. В зависимости от потребностей можно работать с наборами конфигурации в виде копий или ссылок. В этом примере показаны основные шаги работы непосредственно с активным набором конфигурации модели. Подробное описание функций набора конфигурации и рабочих процессов см. в разделе Наборы конфигурации в документации Simulink ®.

Основные сведения о наборе конфигурации

Загрузите модель в память.

model='rtwdemo_configwizard';
load_system(model)

Получение активного набора конфигурации модели.

cs = getActiveConfigSet(model);

Simulink ® Coder™ предоставляет подмножество опций генерации кода. При использовании Simulink ® Coder™ выберите целевой объект Generic Real-Time (GRT).

switchTarget(cs,'grt.tlc',[]);

Embedded Coder ® предоставляет полный набор опций генерации кода. При использовании Embedded Coder ® выберите целевой объект Embedded Real-Time (ERT).

switchTarget(cs,'ert.tlc',[]);

Для автоматизации конфигурирования моделей, построенных для целевых объектов на основе GRT и ERT, набор конфигурации IsERTTarget полезен атрибут.

isERT = strcmp(get_param(cs,'IsERTTarget'),'on');

С опциями генерации кода можно взаимодействовать через модель или набор конфигураций. Этот пример получает и задает опции косвенно через модель.

deftParamBehvr = get_param(model,'DefaultParameterBehavior');  % Get
set_param(model,'DefaultParameterBehavior',deftParamBehvr)     % Set

Этот пример получает и устанавливает опции непосредственно через набор конфигурации.

if isERT
    lifespan = get_param(cs,'LifeSpan');  % Get LifeSpan
    set_param(cs,'LifeSpan',lifespan)     % Set LifeSpan
end

Сводка опций конфигурации

Полный список вариантов создания кода документирован компромиссами по отладке, отслеживанию, эффективности кода и мерам безопасности.

Используйте Code Generation Advisor, чтобы получить конфигурацию модели, оптимизированную для ваших целей. В диалоговом окне Задать цели (Set Targets) можно задать и определить приоритеты целей.

Документацию по Code Generation Advisor можно найти в документации Simulink Coder и в дополнительной документации по Embedded Coder ®.

Сценарии конфигурации параметров

Simulink ® Coder™ предоставляет пример сценария конфигурации, который можно использовать в качестве отправной точки для приложения. Список наиболее актуальных вариантов генерации кодов GRT и ERT содержится в rtwconfiguremodel.m.

Кроме того, можно создать функцию MATLAB, которая содержит полный список параметров конфигурации модели, используя набор конфигурации. saveAs функция.

% Go to a temporary writable directory.
currentDir = pwd;
rtwdemodir();

% Save the model's configuration parameters to file 'MyConfig.m'.
saveAs(cs,'MyConfig')

% Display the first 50 lines of MyConfig.m.
dbtype MyConfig 1:50
1     function cs = MyConfig()
2     % MATLAB function for configuration set generated on 27-Jan-2021 10:07:37
3     % MATLAB version: 9.10.0.1584584 (R2021a)
4     
5     cs = Simulink.ConfigSet;
6     
7     % Original configuration set version: 21.0.0
8     if cs.versionCompare('21.0.0') < 0
9         error('Simulink:MFileVersionViolation', 'The version of the target configuration set is older than the original configuration set.');
10    end
11    
12    % Character encoding: UTF-8
13    
14    % Do not change the order of the following commands. There are dependencies between the parameters.
15    cs.set_param('Name', 'Configuration'); % Name
16    cs.set_param('Description', ''); % Description
17    
18    % Original configuration set target is ert.tlc
19    cs.switchTarget('ert.tlc','');
20    
21    cs.set_param('HardwareBoard', 'None');   % Hardware board
22    
23    cs.set_param('TargetLang', 'C');   % Language
24    
25    cs.set_param('CodeInterfacePackaging', 'Nonreusable function');   % Code interface packaging
26    
27    cs.set_param('GenerateAllocFcn', 'off');   % Use dynamic memory allocation for model initialization
28    
29    cs.set_param('Solver', 'FixedStepDiscrete');   % Solver
30    
31    % Solver
32    cs.set_param('StartTime', '0.0');   % Start time
33    cs.set_param('StopTime', '48');   % Stop time
34    cs.set_param('SampleTimeConstraint', 'STIndependent');   % Periodic sample time constraint
35    cs.set_param('SolverType', 'Fixed-step');   % Type
36    cs.set_param('ConcurrentTasks', 'off');   % Allow tasks to execute concurrently on target
37    
38    % Data Import/Export
39    cs.set_param('Decimation', '1');   % Decimation
40    cs.set_param('LoadExternalInput', 'off');   % Load external input
41    cs.set_param('SaveFinalState', 'off');   % Save final state
42    cs.set_param('LoadInitialState', 'off');   % Load initial state
43    cs.set_param('LimitDataPoints', 'off');   % Limit data points
44    cs.set_param('SaveFormat', 'StructureWithTime');   % Format
45    cs.set_param('SaveOutput', 'off');   % Save output
46    cs.set_param('SaveState', 'off');   % Save states
47    cs.set_param('SignalLogging', 'on');   % Signal logging
48    cs.set_param('DSMLogging', 'on');   % Data stores
49    cs.set_param('InspectSignalLogs', 'off');   % Record logged workspace data in Simulation Data Inspector
50    cs.set_param('SaveTime', 'off');   % Save time

Каждая настройка параметров в созданном файле включает комментарий для соответствующей строки параметров в диалоговом окне Параметры конфигурации (Configuration Parameters).

% Return to previous working directory.
cd(currentDir)

Блоки мастера настройки

Embedded Coder ® предоставляет набор блоков мастера настройки для получения начальной конфигурации модели для конкретной цели. Предопределенные блоки обеспечивают конфигурацию для:

  • ERT оптимизирован для фиксированной точки

  • ERT оптимизирован для плавающей точки

  • GRT оптимизирован для фиксированной и плавающей точки

  • Параметры отладки GRT для фиксированной и плавающей точки

  • Пользовательский (вы предоставляете сценарий)

Поместите блок в модель и дважды щелкните его, чтобы настроить модель. Откройте rtwdemo_configwizard модели и щелкните Открыть библиотеку мастера настройки (Open Configuration Wizard Library) для взаимодействия с блоками.

open_system(model)

Чтобы использовать блоки мастера настройки в модели rtwdemo_configwizard, выполните следующие действия.

  • Откройте библиотеку мастера настройки, щелкнув ссылку, представленную в модели.

  • Откройте окно Параметры конфигурации модели (Model's Configuration Parameters), щелкнув ссылку, представленную в модели.

  • Перетащите блок мастера настройки, например ERT (оптимизированный для фиксированной точки), из библиотеки мастера в модель.

  • Дважды щелкните на блоке мастера.

Опции Параметр конфигурации (Configuration Parameter) изменяются автоматически.

% cleanup
rtwdemoclean;
close_system(model,0)

Резюме

Simulink предоставляет богатый набор функций MATLAB для автоматизации настройки модели для моделирования и генерации кода. Simulink Coder и Embedded Coder ® предоставляют дополнительные функциональные возможности для создания кода. Code Generation Advisor оптимизирует конфигурацию модели на основе набора приоритетных целей. Оптимальную конфигурацию можно сохранить в файле MATLAB с помощью функции «set» набора конфигурации, а затем повторно использовать ее в моделях и проектах.

Связанные темы