Функции Simscape

Функции Simscape™ моделируют класс чистых математических функций первого порядка с явным отношением ввода - вывода. Эти функции явным образом сопоставляют входные параметры численных значений в выходные параметры численных значений при помощи декларативных выражений. Когда компонент вызывает функцию Simscape, числовые входные значения передаются функции, которая затем выполняет эти декларативные выражения, чтобы вычислить выходные значения.

Файловая структура и синтаксис

Каждая функция должна быть в отдельном файле Simscape. Имя файла должно совпадать с именем функции. Например, функциональный foo должен быть в файле под названием foo.ssc.

Файл функции Simscape должен запустить с ключевого слова function, сопровождаемый функциональным заголовком, который включает имя функции, входные параметры и выходные параметры. Например:

function out = MyFunction(in1,in2)

Если функция имеет несколько возвращаемых значений, синтаксис:

function [out1,out2] = MyFunction(in1,in2)

Тело функции должно быть заключено в разделе definitions, например:

function out = SumSquared(in1,in2)
   definitions
      out = in1^2 + 2*in1*in2 + in2^2;
   end
end

Правила и ограничения

Синтаксические правила:

  • Имя файла должно совпадать с именем функции. Например, функциональный foo должен быть в файле под названием foo.ssc.

  • Один или несколько выходных параметров позволены.

  • Если выходной параметр не используется на левой стороне раздела definitions, вы получаете ошибку.

  • Нуль или более входные параметры позволены.

  • Когда функция вызвана, количество входных параметров должно совпадать с количеством входных параметров.

  • Входные параметры позиционны. Это означает, что первый входной параметр во время вызова функции передается первому входному параметру и так далее. Например, если вы пишете уравнение:

    o == SumSquared(5,2);

    затем in1 равняется 5, и in2 равняется 2.

  • Если функция имеет несколько возвращаемых значений, они также позиционны. Таким образом, первый выходной параметр присвоен первому возвращаемому значению и так далее.

  • Если функция имеет несколько возвращаемых значений, правила и ограничения эквивалентны для функций объявления. Для получения дополнительной информации смотрите Несколько Возвращаемых значений.

  • Раздел definitions может содержать операторы if-elseif-else и средние сроки. Те же синтаксические правила как в разделе объявления оператора let применяются. Для получения дополнительной информации смотрите использующие Средние термины в уравнениях.

  • Раздел definitions не может содержать выражения с динамической семантикой, такие как integ, time, der, edge, initialevent или delay.

Упаковка правил:

Используя функции Simscape

Цель функций Simscape состоит в том, чтобы снова использовать выражения в уравнениях нескольких компонентов, а также в объявлениях элемента доменных или файлов компонента.

Например, экспоненциальные диодные уравнения часто используют выражение, которое является модификацией exp(i), чтобы обеспечить защиту для больших значений i. Для получения дополнительной информации смотрите страницы с описанием блока Diode и NPN Bipolar Transistor. Пример Функций Simscape показывает, как можно записать функцию Simscape, чтобы снова использовать это выражение, вместо того, чтобы повторить его в каждом блоке:

function out = userFunction(x,y,z)
definitions
    out = if x > y
        (x-z)*exp(y);
    elseif x < -z
        (x+y)*exp(-z);
    else
        exp(x)
    end
end
end

Затем блок Diode может вызвать эту функцию с y и значениями z 80 и 79, соответственно:

equations
   o == SimscapeFunction.Use.Functions.userFunction(i,80,79);
end

и блок NPN Bipolar Transistor может вызвать ту же функцию со значениями 40 и 39:

equations
   o == SimscapeFunction.Use.Functions.userFunction(i,40,39);
end

Рекомендуемые способы повторного использования кода

Язык Simscape имеет множество инструментов, которые упрощают повторное использование кода. Функции Simscape и функции объявления позволяют вам выражения повторного использования. Разделение на подклассы и составные компоненты позволило вам уравнения повторного использования.

К выражениям повторного использования через несколько компонентов:

  • Используйте функции Simscape, чтобы снова использовать выражения в уравнениях и объявлениях элемента.

  • Используйте функции объявления в объявлениях элемента, чтобы снова использовать выражения, которые являются вне возможности выражения Simscape. Для получения дополнительной информации смотрите Функции Объявления.

ФункциональностьАвторская разработка языкаРасширение файлаИспользование Аргументы поддержек с модулями

Функция Simscape

Simscape

.ssc или .sscp

Объявление элемента и уравнения

Да

Функция объявления

MATLAB

.m или.p

Объявление элемента только

Нет

К уравнениям повторного использования через несколько компонентов:

  • Используйте разделение на подклассы, чтобы смоделировать отношение "isa" между основным компонентом и выведенным компонентом. Уравнения в основном компоненте снова используются в выведенном компоненте. Для получения дополнительной информации смотрите Разделение на подклассы и Наследование.

  • Используйте составные компоненты для модели, "имеет -" отношение между контейнерным компонентом и субкомпонентами. Уравнения в членских компонентах снова используются в составном компоненте. Для получения дополнительной информации займитесь Составными Компонентами.

Смотрите также

Связанные примеры

Больше о