Выражения повторного использования в уравнениях компонента и в объявлениях элемента областей и компонентов
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
.
Файлы функции Simscape могут находиться непосредственно на пути MATLAB® или в директориях пакета. Для получения дополнительной информации смотрите Организацию Ваших файлов Simscape.
Можно использовать исходную защиту, как описано в Использовании Исходной Защиты для файлов Simscape.
Импорт пакета импортирует все функции Simscape в этом пакете. Для получения дополнительной информации смотрите Область Импорта и Классы Компонента.
Если функция MATLAB и функция Simscape имеют то же имя, функция MATLAB имеет более высокий приоритет.
Объявите функцию, которая вычисляет квадрат суммы двух чисел:
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.