exponenta event banner

Настройка структур параметров с использованием языка MATLAB

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

В этом примере начальная модель slrt_ex_osc имеет четыре параметра, которые определяют форму выходного сигнала.

БлокПараметрВыражение структурного поляНачальное значение

Signal Generator

Частота

spkp.sg_freq

20

Gain

Выгода

spkp.g_gain

1000^2

Gain1

Выгода

spkp.g1_gain

2*0.2*1000

Gain2

Выгода

spkp.g2_gain

1000^2

Создать структуру параметров

Эта процедура группирует некоторые тесно связанные параметры в структуры.

Открытая модель 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.Value
ans = 

  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 обратный вызов. Дополнительные сведения см. в разделе Обратные вызовы модели.

Заменить параметры блока полями структуры параметров

  1. В Signal Generator блок, замените значение параметра Frequency на spkp.sg_freq.

  2. В Gain блок, замените значение параметра Gain на spkp.g_gain.

  3. В Gain1 блок, замените значение параметра Gain на spkp.g1_gain.

  4. В 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;

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