Если вы не используете константы для параметров блоков в вашей модели, они появляются в сгенерированном коде как переменные. Можно выбрать, как эти переменные появляются в сгенерированном коде. Для получения дополнительной информации смотрите Параметры блоков в Сгенерированный код.
Чтобы контролировать, как параметры блоков появляются в сгенерированном коде:
Используйте переменные вместо констант для параметров блоков.
Определите эти параметры в MATLAB® рабочая область одним из следующих способов:
Используйте скрипт MATLAB, чтобы создать Simulink.Parameter
объект. Запускайте скрипт каждый раз, когда модель загружается.
Simulink® хранит Simulink.Parameter
объекты вне модели. Затем можно делиться Simulink.Parameter
объекты между несколькими моделями.
Используйте диалоговое окно Model Параметры Конфигурации, чтобы сделать параметры настраиваемыми.
Simulink хранит глобальные настраиваемые параметры, заданные в диалоговом окне Параметров конфигурации с моделью. Вы не можете совместно использовать эти параметры между несколькими моделями.
Примечание
Рабочие пространства MATLAB значения параметров должны быть совпадающим типом данных, как используется в модели. В противном случае значение переменной в сгенерированном коде устанавливается равным нулю. Смотрите Ограничения типа данных параметра рабочей области.
Simulink.Parameter
ОбъектыВ этом примере показано, как создать и изменить Simulink.Parameter
объект.
Модель plcdemo_tunable_params_slparamobj
иллюстрирует эти шаги. Модель содержит блок Subsystem SimpleSubsystem
который имеет три блока Gain с настраиваемыми параметрами, K1
, K2
, и K3
.
Написание скрипта MATLAB, который определяет настраиваемые параметры.
Следующий скрипт setup_tunable_params.m
создает константы K1
, K2
, и K3
как Simulink.Parameter
объекты, присвоения значения и устанавливают классы памяти для этих констант. Для получения дополнительной информации о классах памяти смотрите Параметры блоков в Сгенерированный код.
% tunable parameter mapped to local variable K1 = Simulink.Parameter; K1.Value = 0.1; K1.CoderInfo.StorageClass = 'Model default'; % tunable parameter mapped to global variable K2 = Simulink.Parameter; K2.Value = 0.2; K2.CoderInfo.StorageClass = 'ExportedGlobal'; % tunable parameter mapped to global const K3 = Simulink.Parameter; K3.Value = 0.3; K3.CoderInfo.StorageClass = 'Custom'; K3.CoderInfo.CustomStorageClass = 'Const';
Задайте, что скрипт setup_tunable_params.m
необходимо выполнить перед загрузкой модели, и чтобы Рабочее пространство MATLAB было очищено до закрытия модели.
В окне модели перейдите на вкладку Modeling и выберите Model Properties из раскрывающегося списка Model Settings.
В диалоговом окне Свойств модели» на вкладке «Callbacks» выберите PreLoadFcn
. Введите setup_tunable_params
для Model pre-load function.
На вкладке Callbacks выберите CloseFcn
. Введите clear K1 K2 K3;
для Model close function.
Каждый раз, когда вы открываете модель, переменные K1
, K2
, и K3
загружаются в базовое рабочее пространство. Вы можете просмотреть переменные и их классы памяти в Model Explorer.
Сгенерируйте код и осмотрите его.
Переменная | Класс памяти | Сгенерированный код (3S CoDeSys 2.3) |
---|---|---|
K1 | Model default |
FUNCTION_BLOCK SimpleSubsystem . . VAR K1: LREAL := 0.1; . . END_VAR . . END_FUNCTION_BLOCK |
K2 | ExportedGlobal |
VAR_GLOBAL K2: LREAL := 0.2; END_VAR |
K3 | CoderInfo.CustomStorageClass установлено на Const . |
VAR_GLOBAL CONSTANT SS_INITIALIZE: SINT := 0; K3: LREAL := 0.3; SS_STEP: SINT := 1; END_VAR |
В этом примере показано, как сделать параметры настраиваемыми с помощью диалогового окна Параметры конфигурации модели (Model Configuration Parameters).
Модель plcdemo_tunable_params
иллюстрирует эти шаги. Модель содержит блок Subsystem SimpleSubsystem
который имеет три блока Gain с настраиваемыми параметрами, K1
, K2
, и K3
.
Задайте, что переменные K1
, K2
, и K3
необходимо инициализировать перед загрузкой модели и очистить рабочее пространство MATLAB до закрытия модели.
На вкладке Modeling и выберите Model Properties из раскрывающегося списка Model Settings.
В диалоговом окне Свойств модели» на вкладке «Callbacks» выберите PreLoadFcn
. Введите K1=0.1; K2=0.2; K3=0.3;
для Model pre-load function.
На вкладке Callbacks выберите CloseFcn
. Введите clear K1 K2 K3;
для Model close function.
На вкладке Modeling и выберите Model Settings, чтобы открыть диалоговое окно Параметров конфигурации.
Перейдите к Optimization панели. Укажите, что все параметры должны быть вставлены в сгенерированный код. Выберите Inlined
для Default Parameter Behavior.
Чтобы переопределить встраивание и сделать отдельные параметры настраиваемыми, нажмите Configure. В диалоговом окне Параметр модели Configuration из Source list выберите Referenced workspace variables
.
Ctrl + выберите параметры и нажмите Add to table >>.
По умолчанию это диалоговое окно устанавливает все параметры в SimulinkGlobal
класс памяти. Установите Storage class и Storage type qualifier как показано на этом рисунке. Для получения дополнительной информации о классах памяти смотрите Параметры блоков в Сгенерированный код.
Сгенерируйте код и осмотрите его.
Переменная | Класс памяти | Сгенерированный код (3S CoDeSys 2.3) |
---|---|---|
K1 | Model default |
FUNCTION_BLOCK SimpleSubsystem . . VAR K1: LREAL := 0.1; . . END_VAR . . END_FUNCTION_BLOCK |
K2 | ExportedGlobal |
VAR_GLOBAL K2: LREAL := 0.2; END_VAR |
K3 | CoderInfo.CustomStorageClass и Storage type qualifier установлено на Const . |
VAR_GLOBAL CONSTANT SS_INITIALIZE: SINT := 0; K3: LREAL := 0.3; SS_STEP: SINT := 1; END_VAR |