(Не рекомендуемый), Готовят компонент к симуляции
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 функция. Необходимо использовать синтаксис функций. Для получения дополнительной информации смотрите, Выбирают Command Syntax или Function Syntax.
Персистентные и глобальные переменные не поддерживаются. Для получения дополнительной информации смотрите Персистентные Переменные и Глобальные переменные.
Системные команды 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 функция.
Все чтения от параметра должны появиться после того, как он будет присвоен в a setup функция.
Все присвоения должны закончиться в точке с запятой.
Все члены, которые присвоены, должны быть частными параметрами или переменными текущего компонента. Простая настройка не может присвоить членам дочерних компонентов или членам базового класса.
Можно объявить локальные переменные MATLAB в простом setup функция, но эти переменные не может быть структурами.
Аргументы error и warning функции должны быть литеральными строками.
В общем случае создание a 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