(Не рекомендуемый) Подготовьте компонент к симуляции
setup
не рекомендуется. Для получения дополнительной информации см. раздел Вопросов совместимости.
function setup
[...]
end
function setup %#simple
[...]
end
function setup
[...]
end
Раздел настройки файла Simscape™ состоит из функции с именем setup
. setup
функция выполняется один раз для каждого образца компонента во время компиляции модели. Он не принимает аргументов и не возвращает аргументов.
Примечание
Setup не является конструктором; он подготавливает компонент к симуляции.
Тело setup
функция может содержать операторы назначения, if
и error
операторы, и across
и through
функций. setup
функция выполняется один раз для каждого образца компонента во время компиляции модели. Он не принимает аргументов и не возвращает аргументов.
Используйте setup
функция для следующих целей:
Валидация параметров
Вычисление выведенных параметров
Установка начальных условий
Применяются следующие правила:
setup
функция выполняется как регулярный MATLAB® код.
Все параметры и переменные, объявленные в компоненте, доступны по их имени, например:
component MyComponent parameters p = {1, 'm' }; end [...] function setup disp( p ); % during compilation, prints value of p % for each instance of MyComponent in the model [...] end
Вы можете использовать имена переменных только в левой части назначений в setup
раздел. Имена параметров могут использоваться с любой стороны.
Все параметры и переменные, которые могут быть записаны извне, можно записать в процессе настройки.
В случае коллизии - назначения в setup
раздел переопределяет те, что сделаны в разделе объявления. Чтобы гарантировать соответствие операции блока, если вы присваиваете значение представителю setup
section, объявите этот представитель с атрибутом, который препятствует его появлению в диалоговом окне блока, таком как (ExternalAccess=observe)
. В противном случае присвоение выполняется в setup
раздел переопределяет значения, заданные в диалоговом окне пользователем блока. Для получения дополнительной информации см. списки атрибутов».
Локальные переменный MATLAB могут быть введены в setup
функция. Они охватываются только setup
функция.
Действуют следующие ограничения:
Синтаксис команды не поддерживается в setup
функция. Необходимо использовать синтаксис функции. Для получения дополнительной информации смотрите Выбор синтаксиса команды или Синтаксиса функции.
Постоянные и глобальные переменные не поддерживаются. Для получения дополнительной информации см. Раздел «Постоянные переменные и глобальные переменные».
Системные команды MATLAB, использующие !
оператор не поддерживается.
try-end
и try-catch-end
конструкции не поддерживаются.
Вложенные функции не поддерживаются.
Передача представителей объявления во внешние функции MATLAB, например my_function(param1)
, не поддерживается. Можно, однако, передать значения представителей во внешние функции, например, my_function (param1.value
.('unit
'))
В целом, вы не можете назначить параметры блоков как время выполнения, если базовый компонент использует его в функции настройки. Однако, если настройка ограничена простыми операциями, такими как проверка ошибок, можно объявить setup
функция как простая:
function setup %#simple
[...]
end
В этом случае многие параметры, используемые в setup
функция может быть обозначена как параметры во время выполнения.
Когда вы заявляете setup
функционирование как простое, применяются следующие правила:
Все выражения, используемые в простом виде setup
функция должна ограничиваться теми, которые поддерживаются в других местах языка Simscape. Полный список поддерживаемых функций см. в разделе equations
.
Значение, параметр или переменная могут быть назначены только один раз на любом заданном пути через setup
функция.
Все чтения из параметра должны появиться после того, как он назначен в setup
функция.
Все назначения должны заканчиваться точкой с запятой.
Все представители, которым назначены, должны быть частными параметрами или переменными текущего компонента. Программа простой настройки не может назначать представителям дочерних компонентов или представителям базового класса.
Вы можете объявить локальные переменный MATLAB в простом виде setup
функция, но эти переменные не могут быть структурами.
Аргументы error
и warning
функции должны быть буквальными строками.
В целом, делая setup
функция простых способов получения, что все параметры активны во время выполнения. Исключение составляют те параметры, которые управляют условным назначением:
if p1 > 0 p3 = f1(p2); else p3 = f2(p2); end
В этом случае p1
должно быть во время компиляции. Однако время компиляции имеют только те параметры, которые влияют на условное назначение. Те, которые влияют на условия ошибки, активны во время выполнения.
Следующая setup
функция проверяет параметры с помощью if
оператор и error
функция.
component MyComponent parameters LowerThreshold = {1, 'm' }; UpperThreshold = {1, 'm' }; end [...] function setup if LowerThreshold > UpperThreshold error( 'LowerThreshold is greater than UpperThreshold' ); end end [...] end
Чтобы избежать использования setup
, перепишите этот пример следующим образом:
component MyComponent parameters LowerThreshold = {1, 'm' }; UpperThreshold = {1, 'm' }; end [...] equations assert(LowerThreshold<UpperThreshold,'LowerThreshold is greater than UpperThreshold'); [...] end [...] end