Чтобы уменьшить количество переменных рабочей области, которые необходимо поддерживать, и избежать конфликтов имен, можно сгруппировать тесно связанные параметры в структуры. См. раздел Организация определений связанных параметров блоков в структурах.
В этом примере начальная модель slrt_ex_osc имеет четыре параметра, которые определяют форму выходного сигнала.
| Блок | Параметр | Выражение структурного поля | Начальное значение |
|---|---|---|---|
| Частота |
|
|
| Выгода |
|
|
| Выгода |
|
|
| Выгода |
|
|
Эта процедура группирует некоторые тесно связанные параметры в структуры.
Открытая модель slrt_ex_osc и сохраните копию в рабочей папке.
Для создания структуры параметров в окне команд MATLAB ® введите:
kp = struct(... 'sg_freq', 20, ... 'g2_gain',1000^2, ... 'g1_gain', 2*0.2*1000, ... 'g_gain',1000^2)
kp =
struct with fields:
sg_freq: 20
g2_gain: 1000000
g1_gain: 400
g_gain: 1000000
Чтобы сделать структуру параметров настраиваемой на целевом компьютере:
spkp = Simulink.Parameter(kp);
spkp.StorageClass = 'ExportedGlobal';
spkp.Valueans =
struct with fields:
sg_freq: 20
g2_gain: 1000000
g1_gain: 400
g_gain: 1000000Сохранение структуры параметров spkp для последующего использования введите:
save 'slrt_ex_osc_struct.mat', 'spkp'
Чтобы загрузить структуру параметров при открытии модели, добавьте load для перехода к PreLoadFcn обратный вызов. Чтобы удалить структуру параметров из рабочего пространства при закрытии модели, добавьте clear для перехода к CloseFcn обратный вызов. Дополнительные сведения см. в разделе Обратные вызовы модели.
В Signal Generator блок, замените значение параметра Frequency на spkp.sg_freq.
В Gain блок, замените значение параметра Gain на spkp.g_gain.
В Gain1 блок, замените значение параметра Gain на spkp.g1_gain.
В Gain2 блок, замените значение параметра Gain на spkp.g2_gain.
Если шаги в разделах Создать структуру параметров (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'));
Постройте и загрузите модель на целевой компьютер.
slbuild('slrt_ex_osc_struct'); tg = slrealtime('TargetPC1'); load(tg,'slrt_ex_osc_struct');
Установить время остановки на inf.
setStopTime(tg,inf);
Протянуть Gain значение Gain1 блок из 200 кому 800.
start(tg); for g = 200 : 200 : 800 setparam(tg, 'spkp.g1_gain', g); pause(1); end stop(tg);
Просмотрите сигналы в инспекторе данных моделирования.
Simulink.sdi.view;