(Не рекомендуемый), Готовят компонент к симуляции
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
разделите, объявите этого участника с атрибутом, который препятствует тому, чтобы он появился в диалоговом окне блока, таком как (ExternalAccess=observe)
. В противном случае присвоение сделано в setup
раздел заменит значения, заданные в диалоговом окне пользователем блока. См. Списки атрибутов для получения дополнительной информации.
Локальные переменные MATLAB могут быть введены в setup
функция. Они ограничены по объему только к setup
функция.
Следующие ограничения применяются:
Синтаксис команд не поддержан в setup
функция. Необходимо использовать синтаксис функций. Для получения дополнительной информации смотрите Сравнение синтаксиса команд и функций (MATLAB).
Персистентные и глобальные переменные не поддержаны. Для получения дополнительной информации смотрите Персистентные Переменные (MATLAB) и Глобальные переменные (MATLAB).
Системные команды 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