function

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

Резюме

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Время, 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