функция

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

Синтаксис

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

Описание

Ключевое слово function начинает объявление функции Simscape™, которое отключено ключевым словом end. Только пустые строки и комментарии могут предшествовать function. Необходимо поместить объявление функции в файл того же имени с расширением файла .ssc.

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

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

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

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

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

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

Синтаксические правила

  • Имя файла должно совпадать с именем функции. Например, функциональный foo должен быть в файле под названием foo.ssc.

  • Один или несколько выходных параметров позволены.

  • Если выходной параметр не используется на левой стороне раздела 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.

Смотрите также

Введенный в R2017b