Чтобы изменить поведение приложения реального времени, можно настроить настраиваемые параметры Simulink® Real-Time™. В режиме external mode Simulink можно изменить параметры непосредственно в блоке или косвенно при помощи переменных MATLAB®, чтобы создать настраиваемые глобальные параметры. Simulink Real-Time Explorer и язык MATLAB позволяют вам изменить значения параметров и переменные MATLAB, когда ваше приложение реального времени выполняется.
Simulink Real-Time не поддерживает параметры типов данных многословных.
Simulink Coder™ задает два вида параметров, которые могут быть изменены во время выполнения: настраиваемые параметры блоков и настраиваемые глобальные параметры.
Настраиваемые параметры блоков являются литералом, на который вы ссылаетесь в диалоговом окне блока Simulink.
Предположим, что вы присваиваете значение 5/2
к параметру Amplitude блока Signal Generator. Amplitude является настраиваемым параметром.
Настраиваемый глобальный параметр является переменной в рабочем пространстве MATLAB, на которое вы ссылаетесь в диалоговом окне блока Simulink.
Предположим, что вы вводите A
в параметре Amplitude блока Signal Generator. Переменный A
настраиваемый параметр.
Можно настроить значения переменных MATLAB, которые сгруппированы в структуре параметра. Например:
Присвойте структуру параметра, которая содержит поле Ampl
к переменной A
.
Введите A.Ampl
в параметре Amplitude блока Signal Generator.
Измените амплитуду генератора сигнала путем настройки значения A.Ampl
в рабочем пространстве MATLAB в процессе моделирования.
Чтобы оптимизировать КПД выполнения, можно изменить опцию Default parameter behavior от Tunable
к Inlined
на Code Generation> панель Optimization.
Вы не можете настроить встроенные параметры блоков. Можно задать настраиваемый глобальный параметр или Simulink.Parameter
возразите, введите его в параметр в диалоговом окне блока и настройте переменную MATLAB или объект.
Для получения дополнительной информации о встроенных параметрах, смотрите поведение параметра По умолчанию (Simulink Coder).
В режиме external mode Simulink Real-Time соединяет вашу модель Simulink с вашим приложением реального времени. Блок-схема становится пользовательским интерфейсом для приложения реального времени.
Можно изменить значение параметров блоков во время выполнения в диалоговом окне блока. Когда вы нажимаете OK, Simulink передает новое значение приложению реального времени.
Можно также изменить настраиваемый глобальный параметр во время выполнения путем присвоения нового значения рабочему пространству MATLAB. Необходимо затем явным образом управлять, чтобы Simulink передал данные также:
Нажмите Ctrl+D.
На вкладке Real-Time нажмите Prepare> Signal Table. На вкладке Parameters отредактируйте параметры и нажмите Update Diagram.
Во время выполнения в реальном времени Simulink Real-Time Explorer становится пользовательским интерфейсом для приложения реального времени.
Чтобы получить доступ к значению параметров блоков, перейдите с блоком в иерархии модели Проводника. Можно изменить значение в поле ввода текста в окне параметра. Когда вы применяете новое значение, Simulink Real-Time передает новое значение приложению реального времени.
Можно получить доступ к настраиваемому глобальному параметру в верхнем уровне иерархии модели. Измените его тот же путь, как вы были бы настраиваемые параметры блоков.
Можно также использовать инструментальные панели Simulink Real-Time Explorer, чтобы настроить параметры блоков и глобальные параметры.
Чтобы изменить значения настраиваемых параметров блоков и настраиваемых глобальных параметров во время выполнения, используйте команду Simulink Real-Time setparam
. Следующие примеры кода используют модель xpcosc
.
Чтобы изменить значение параметров блоков, используйте непустой блок path и название параметра. Например, чтобы изменить амплитуду генератора сигнала:
tg = slrt; setparam(tg, 'Signal Generator', 'Amplitude', 4.57)
Чтобы изменить настраиваемый глобальный параметр, используйте имя переменной. Например, чтобы изменить амплитуду генератора сигнала через поле A.Ampl
структуры параметра:
tg = slrt;
setparam(tg, 'A.Ampl', 4.57)