Выражения повторного использования в уравнениях компонента и в объявлениях элемента областей и компонентов
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
.
Файлы функции 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.
Для подробного примера объявления и использования локальной функции Simscape, смотрите Локальные Функции Simscape.