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 section, объявите этот представитель с атрибутом, который препятствует его появлению в диалоговом окне блока, таком как (ExternalAccess=observe). В противном случае присвоение выполняется в setup раздел переопределяет значения, заданные в диалоговом окне пользователем блока. Для получения дополнительной информации см. списки атрибутов».

  • Локальные переменный MATLAB могут быть введены в setup функция. Они охватываются только setup функция.

Действуют следующие ограничения:

  • Синтаксис команды не поддерживается в setup функция. Необходимо использовать синтаксис функции. Для получения дополнительной информации смотрите Выбор синтаксиса команды или Синтаксиса функции.

  • Постоянные и глобальные переменные не поддерживаются. Для получения дополнительной информации см. Раздел «Постоянные переменные и глобальные переменные».

  • Системные команды 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