setup

(Не рекомендуемый), Готовят компонент к симуляции

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

В общем случае вы не можете определять параметры блоков как время выполнения, если базовый компонент использует его в функции настройки. Однако, если настройка ограничивается простыми операциями как проверка ошибок, можно объявить 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   

Вопросы совместимости

развернуть все

Не рекомендуемый запуск в R2019a

Представленный в R2008b