Структуры настройки параметров при помощи языка MATLAB

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

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

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

Signal Generator

Freq

spkp.sg_freq

20

Gain

Gain

spkp.g_gain

1000^2

Gain1

Gain

spkp.g1_gain

2*0.2*1000

Gain2

Gain

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'

Чтобы загрузить структуру параметра, когда вы откроете модель, добавьте a load команда к PreLoadFcn 'callback'. Чтобы удалить структуру параметра из рабочей области, когда вы закроете модель, добавьте a clear команда к CloseFcn 'callback'. Для получения дополнительной информации смотрите Коллбэки Модели.

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

  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.

Настройки параметров в структуре параметра

Если вы не завершились, шаги в Создают Структуру Параметра, Параметры блоков Замены с Полями Структуры Параметра, и Сохраняют и Структура Параметра Загрузки, можно запустить при помощи завершенной модели.

Чтобы открыть модель, в командном окне 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;

Похожие темы