Чтобы уменьшить количество переменных рабочей области, которые вы должны поддерживать и избегать конфликтов по совпадению имен, можно сгруппировать тесно связанные параметры в структуры. См. «Организация определений параметров связанных блоков в структурах».
В этом примере исходная модель slrt_ex_osc
имеет четыре параметра, которые определяют форму выхода волны.
Блок | Параметр | Структурное выражение поля | Начальное значение |
---|---|---|---|
| Freq |
|
|
| Gain |
|
|
| Gain |
|
|
| Gain |
|
|
Эта процедура группирует некоторые тесно связанные параметры в структуры.
Откройте slrt_ex_osc
модели, и сохраните копию модели в рабочую папку.
Откройте Базовое Рабочее пространство в Model Explorer. На вкладке Modeling нажмите Base Workspace.
Нажмите Add Simulink Parameter.
В столбце Name введите имя spkp
.
В Storage class поле выберите ExportedGlobal
.
В поле Value введите как одну линию:
struct('sg_freq',20, 'g2_gain',1000^2, 'g1_gain',2*0.2*1000, 'g_gain',1000^2)
Значения полей дублируют буквальные значения в диалоговых окнах. Для изменения значений полей в строке spkp
Щелкните ячейку Value и нажмите Edit.
Нажмите Apply.
Сохраните модель как slrt_ex_osc_struct
. На вкладке Simulation, из Save, нажмите Save As.
В Signal Generator
блокируйте, замените значение параметра Frequency на spkp.sg_freq
.
В Gain
блокируйте, замените значение параметра Gain на spkp.g_gain
.
В Gain1
блокируйте, замените значение параметра Gain на spkp.g1_gain
.
В Gain2
блокируйте, замените значение параметра Gain на spkp.g2_gain
.
В Model Explorer щелкните правой кнопкой мыши по строке spkp
.
Нажмите Export selected и сохраните переменную как slrt_ex_osc_struct.mat
.
Чтобы загрузить структуру параметра, когда вы откроете модель, добавьте a load
команду в PreLoadFcn
коллбэк. Чтобы удалить структуру параметра из рабочей области, когда вы закроете модель, добавьте clear
команду в CloseFcn
коллбэк. Для получения дополнительной информации см. Раздел «Обратные коллбэки модели».
Если вы не завершили шаги в Create Parameter Structure, Replace Block Parameters with Parameter Structure Fields, и Save and Load Parameter Structure, можно начать с использования завершенной модели.
Чтобы открыть модель, в Командном Окне MATLAB, введите:
open_system(fullfile(matlabroot, 'toolbox', 'slrealtime', ... 'examples', 'slrt_ex_osc_struct')); load(fullfile(matlabroot, 'toolbox', 'slrealtime', ... 'examples', 'slrt_ex_osc_struct.mat'));
Создайте и загрузите модель на целевой компьютер.
Откройте Simulink Real-Time Explorer. На вкладке Real-Time щелкните Prepare > SLRT Explorer.
Установите значение Stop Time приложения реального времени Inf
.
Перейдите на вкладку Parameters.
Запустите приложение реального времени.
Откройте Данные Моделирования Inspector и просмотрите сигналы от приложения реального времени.
В Values текстовом поле для spkp(1).g1_gain
, измените значение на 800
и нажмите Enter.
Наблюдайте изменение сигналов в Данных моделирования Inspector.
Остановите приложение реального времени.