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