Генератор кода обеспечивает образцовые параметры конфигурации для настройки сгенерированного кода. В зависимости от того, как вы используете и взаимодействуете со сгенерированным кодом, вы принимаете решения настройки. Вы выбираете настройку что лучшие соответствия ваши потребности в отладке, трассируемости, эффективности кода и мерах безопасности.
Распространено автоматизировать образцовый процесс настройки при помощи скрипта MATLAB®, если вы выбрали желаемую настройку.
Пример описывает:
Концепции работы с параметрами конфигурации
Документация, чтобы понять опции генерации кода
Инструменты и скрипты, чтобы автоматизировать настройку модели
Существует много рабочих процессов для Параметров конфигурации, которые включают персистентность в одной модели или персистентность через многоуровневые модели. В зависимости от ваших потребностей можно работать с конфигурациями модели как копии или ссылки. Этот пример показывает шаги основ для работы непосредственно с активной конфигурацией модели модели. Для всестороннего описания функций конфигурации модели и рабочих процессов, смотрите Конфигурации модели в документации Simulink®.
Загрузите модель в память.
model='rtwdemo_configwizard';
load_system(model)
Получите активную конфигурацию модели модели.
cs = getActiveConfigSet(model);
Simulink® Coder™ представляет подмножество опций генерации кода. Если вы используете Simulink® Coder™, выберите цель Типичного в реальном времени (GRT).
switchTarget(cs,'grt.tlc',[]);
Embedded Coder® представляет полный набор опций генерации кода. Если вы используете Embedded Coder®, выберите цель Встроенного в реальном времени (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
Полный список опций генерации кода документируется с компромиссами для отладки, трассируемости, эффективности кода и мер безопасности.
Используйте Советника Генерации кода, чтобы получить настройку модели, оптимизированную для ваших целей. В диалоговом окне Set Objectives можно установить и приоритизировать цели.
Можно найти документацию о Советнике Генерации кода в документации 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 11-Jan-2019 04:47:53 3 % MATLAB version: 9.6.0.1035872 (R2019a) Prerelease Update 6 4 5 cs = Simulink.ConfigSet; 6 7 % Original configuration set version: 19.0.0 8 if cs.versionCompare('19.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 % Original environment character encoding: UTF-8 13 if ~strcmpi(get_param(0, 'CharacterEncoding'), 'UTF-8') 14 warning('Simulink:EncodingUnMatched', 'The target character encoding (%s) is different from the original (%s).', get_param(0, 'CharacterEncoding'), 'UTF-8'); 15 end 16 17 % Do not change the order of the following commands. There are dependencies between the parameters. 18 cs.set_param('Name', 'Configuration'); % Name 19 cs.set_param('Description', ''); % Description 20 21 % Original configuration set target is ert.tlc 22 cs.switchTarget('ert.tlc',''); 23 24 cs.set_param('HardwareBoard', 'None'); % Hardware board 25 26 cs.set_param('Solver', 'FixedStepDiscrete'); % Solver 27 28 % Solver 29 cs.set_param('StartTime', '0.0'); % Start time 30 cs.set_param('StopTime', '48'); % Stop time 31 cs.set_param('SampleTimeConstraint', 'STIndependent'); % Periodic sample time constraint 32 cs.set_param('SolverType', 'Fixed-step'); % Type 33 34 % Data Import/Export 35 cs.set_param('Decimation', '1'); % Decimation 36 cs.set_param('LoadExternalInput', 'off'); % Load external input 37 cs.set_param('SaveFinalState', 'off'); % Save final state 38 cs.set_param('LoadInitialState', 'off'); % Load initial state 39 cs.set_param('LimitDataPoints', 'off'); % Limit data points 40 cs.set_param('SaveFormat', 'StructureWithTime'); % Format 41 cs.set_param('SaveOutput', 'off'); % Save output 42 cs.set_param('SaveState', 'off'); % Save states 43 cs.set_param('SignalLogging', 'on'); % Signal logging 44 cs.set_param('DSMLogging', 'on'); % Data stores 45 cs.set_param('InspectSignalLogs', 'off'); % Record logged workspace data in Simulation Data Inspector 46 cs.set_param('SaveTime', 'off'); % Save time 47 cs.set_param('ReturnWorkspaceOutputs', 'off'); % Single simulation output 48 cs.set_param('SignalLoggingName', 'sigsOut'); % Signal logging name 49 cs.set_param('DSMLoggingName', 'dsmout'); % Data stores logging name 50 cs.set_param('LoggingToFile', 'off'); % Log Dataset data to file
Каждая установка параметра в сгенерированном файле включает комментарий для соответствующей строки параметров в диалоговом окне 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 модели выполняют эти шаги:
Откройте Библиотеку Мастера Настройки путем щелчка по ссылке, обеспеченной в модели.
Откройте Параметры конфигурации Модели путем щелчка по ссылке, обеспеченной в модели.
Перетащите мышью Блок Мастера Настройки, например, ERT (оптимизированный для фиксированной точки), от библиотеки мастера в модель.
Дважды кликните блок мастера.
Опции Параметра конфигурации изменяются автоматически.
% cleanup
rtwdemoclean;
close_system(model,0)
Simulink обеспечивает богатый набор функций MATLAB, чтобы автоматизировать конфигурирование модели для симуляции и генерации кода. Simulink Coder и Embedded Coder® обеспечивают дополнительную функциональность, специфичную для генерации кода. Советник Генерации кода оптимизирует настройку модели на основе набора приоритизированных целей. Можно сохранить оптимальную настройку в файл MATLAB при помощи конфигурации модели saveAs функция и снова использовать его через модели и проекты.