function

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

Резюме

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

Описание

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

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

Тело функции должно быть заключено в definitions блок, который завершается end ключевое слово. The 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 section, вы получите ошибку.

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

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

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

    o == FunctionName(5,2);

    затем in1 5 и in2 равен 2.

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

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

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

  • The 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 Functions.

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

См. также

Введенный в R2017b