exponenta event banner

установка

(Не рекомендуется) Подготовка компонента к моделированию

setup не рекомендуется. Дополнительные сведения см. в разделе Вопросы совместимости.

Синтаксис

function setup
[...]
end

function setup %#simple
[...]
end

Описание

function setup
[...]
end

Раздел настройки файла Simscape™ состоит из функции с именем 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 с использованием ! оператор не поддерживается.

  • 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   

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

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

Не рекомендуется начинать с R2019a

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