Выражения повторного использования в уравнениях компонента и в объявлениях элемента областей и компонентов
function out = FunctionName(in1,in2)
definitions
out = Expression1(in1,in2);
end
endfunction ключевое слово начинает объявление функции 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.