Повторно используйте выражения в уравнениях компонента и в объявлениях представителей областей и компонентов
function out = FunctionName(in1,in2)
definitions
out = Expression1(in1,in2);
end
endThe 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.
Файлы функции 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 Functions.
Подробный пример объявления и использования локальной функции Simscape см. в Local Simscape Functions.