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