exponenta event banner

функция

Повторное использование выражений в уравнениях компонентов и в объявлениях членов областей и компонентов

Резюме

function out = FunctionName(in1,in2)
   definitions
      out = Expression1(in1,in2);
   end
end

Описание

function ключевое слово начинает объявление функции Simscape™, которое завершается end ключевое слово.

Ключевое слово function за ним должен следовать заголовок функции, который включает имя функции, входы и выходы.

Тело функции должно быть заключено внутри definitions блок, который завершается end ключевое слово. definitions блок содержит уравнения, которые выражают выходные аргументы функции в терминах ее входных аргументов. Этот блок является обязательным.

Следующий синтаксис объявляет простую функцию.

function out = FunctionName(in1,in2)
   definitions
      out = Expression1(in1,in2);
   end
end

Если функция имеет несколько возвращаемых значений, синтаксис:

function [out1,out2] = FunctionName(in1,in2)

В зависимости от того, является ли функция Simscape основной или локальной:

  • Главная функция - необходимо поместить объявление функции в файл с тем же именем и расширением имени файла .ssc. Имя файла должно совпадать с именем функции. Например, функция foo должен находиться в файле с именем foo.ssc. Файл должен начинаться с function ключевое слово. Только пустые строки и комментарии могут предшествовать function.

  • Локальная функция - включение объявления функции в файл компонента, домена или функции после завершения end ключевое слово, которое завершает описание компонента, домена или основной функции. Локальная функция доступна только для этого компонента, домена или основной функции.

Правила синтаксиса

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

  • Если выходной параметр не используется в левой части definitions раздел, вы получаете ошибку.

  • Допускаются нулевые или более входных параметров.

  • При вызове функции количество входных аргументов должно соответствовать количеству входных параметров.

  • Входные параметры позиционные. Это означает, что первый входной аргумент во время вызова функции передается первому входному параметру и т.д. Например, при записи уравнения:

    o == FunctionName(5,2);

    тогда in1 равно 5 и in2 равно 2.

  • Если функция имеет несколько возвращаемых значений, они также являются позиционными. То есть первому выходному параметру присваивается первое возвращаемое значение и так далее.

  • Если функция имеет несколько возвращаемых значений, правила и ограничения совпадают с правилами для функций объявления. Дополнительные сведения см. в разделе Несколько возвращаемых значений.

  • definitions раздел может содержать промежуточные термины и if-elseif-else заявления. Те же самые правила синтаксиса, что и в разделе объявления let заявление применяется. Дополнительные сведения см. в разделе Использование промежуточных членов в уравнениях.

  • definitions раздел не может содержать выражения с динамической семантикой, например integ, time, der, edge, initialevent, или delay.

Правила упаковки файлов функций

Примеры

Объявите функцию, вычисляющую квадрат суммы двух чисел:

function out = SumSquared(in1,in2)
   definitions
      out = in1^2 + 2*in1*in2 + in2^2;
   end
end

Сохранение функции в файле с именем SumSquared.ssc, на пути MATLAB.

Этот компонент вызывает SumSquared функция для вычисления квадрата суммы его параметров p1 и p2.

component MyComp
   outputs
      o = 0;
   end
   parameters
      p1 = 5;
      p2 = 2;
   end
   equations
      o == SumSquared(p1,p2);
   end
end

Более подробный пример объявления и использования основной функции Simscape см. в примере Функции Simscape.

Подробный пример объявления и использования локальной функции Simscape см. в разделе Локальные функции Simscape.

См. также

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