Можно использовать parameter data arguments в блоках MATLAB Function, чтобы использовать переменные, заданные в MATLAB® рабочая область, рабочее пространство модели, рабочая область подсистемы маскированная или Simulink® словарь данных как входные параметры. Simulink ищет и выбирает переменные, используемые аргументами данных о параметре при помощи тех же правил для разрешения символа. Смотрите Разрешение Символа. Если переменная того же имени существует в больше чем одной из рабочих областей, видимых с блоком, блок использует переменную, самую близкую к блоку в иерархии рабочей области. Если блок MATLAB Function находится в подсистеме маскированной, блок использует переменную в рабочей области подсистемы. В противном случае блок использует переменную в рабочем пространстве модели, сопровождаемом при помощи переменной в базовом рабочем пространстве MATLAB и в связанном словаре данных Simulink, в том порядке.
Чтобы задать аргументы данных о параметре, в Model Explorer или Портах и Менеджере данных, создают или выбирают существующие данные и устанавливают свойство Scope на Parameter
. Для получения дополнительной информации о создании аргументов и данных в блоках MATLAB Function, смотрите, Задают Данные о блоке MATLAB function. Аргументы данных о параметре не создают порты блока.
Можно непосредственно присвоить значения аргументам данных о параметре в блоке MATLAB Function путем добавления маски в блок, создания параметра в маске и давания параметру того же имени в качестве аргумента данных о параметре. Для получения дополнительной информации о создании масок для блоков, смотрите Основы маскирования. После того, как вы замаскируете блок, можно настроить свойства аргумента данных о параметре при помощи Портов и Менеджера данных, но не Model Explorer.
Этот пример использует блок MATLAB function маскированный с аргументом данных о параметре.
Функция MATLAB умножает аргумент const
данных о параметре значением блока-сигнала Sine wave. Кликните по значку стрелки на блоке MATLAB function, чтобы просмотреть код.
function y = fcn(u, const)
y = const*u;
Можно настроить значение const
путем двойного клика по блоку MATLAB function. Маска блока задает параметр множителя синусоиды Набора, который можно отредактировать в Редакторе Маски. Блок MATLAB function задает const
как данные с набором Осциллографа к Parameter
.
Аргумент данных о параметре и параметр маски должны иметь то же имя. В этом примере, изменяя имя аргумента данных о параметре, не изменяя название параметра вызывает ошибку.
Если вы хотите, чтобы несколько блоков MATLAB Function получили доступ к той же переменной в модели, можно задать переменную в рабочем пространстве модели и добавить аргументы данных о параметре в каждую функцию MATLAB, которая указывает на ту переменную. Можно задать переменную непосредственно в рабочем пространстве модели, загрузить переменную в MAT-файле или файле MATLAB, или создать переменную с пользовательским кодом MATLAB. Для получения дополнительной информации смотрите, Задают Источник для Данных в Рабочем пространстве модели.
Если вы хотите использовать переменную в блоках MATLAB Function в многоуровневых моделях, можно задать переменную в базовом рабочем пространстве MATLAB путем определения переменной в Командном окне или путем загрузки MAT-файла. MATLAB Function блокирует переменные доступа, заданные в рабочем пространстве MATLAB, пока вы не закрываете MATLAB.
Можно также задать переменные с помощью словаря данных Simulink. Для получения дополнительной информации смотрите то, Что Словарь Данных?.