Программное обеспечение Simscape™ расширяет линейку продуктов Simulink® с инструментами для моделирования и симуляции многодоменных физических систем, таких как те с механическим устройством, гидравлическими, пневматическими, тепловыми, и электрическими компонентами. В отличие от других блоков Simulink, которые представляют математические операции или работают с сигналами, блоки Simscape представляют физические компоненты или отношения непосредственно. С блоками Simscape вы создаете модель системы так же, как вы собрали бы физическую систему. Для получения дополнительной информации о программном обеспечении Simscape смотрите Simscape.
Можно расширить среду моделирования Simscape путем создания собственных компонентов. Когда вы зададите компонент, используйте раздел уравнения файла компонента, чтобы установить математические отношения среди переменных компонента, параметров, входных параметров, выходных параметров, время и производные времени каждой из этих сущностей. Программное обеспечение Symbolic Math Toolbox™ и Simscape позволило вам выполнить символьные расчеты и использовать результаты этих расчетов в разделе уравнения. simscapeEquation
функция переводит результаты символьных расчетов к уравнениям языка Simscape.
Если вы работаете в MuPAD® Notebook, смотрите, Создают уравнения Simscape из Выражений MuPAD.
Предположим, вы хотите сгенерировать уравнение Simscape из решения следующего обыкновенного дифференциального уравнения. Как первый шаг, используйте dsolve
функция, чтобы решить уравнение:
syms a y(t) Dy = diff(y); s = dsolve(diff(y, 2) == -a^2*y, y(0) == 1, Dy(pi/a) == 0); s = simplify(s)
Решение:
s = cos(a*t)
Затем используйте simscapeEquation
функционируйте, чтобы переписать решение на языке Simscape:
simscapeEquation(s)
simscapeEquation
генерирует следующий код:
ans = 's == cos(a*time);'
Переменная time заменяет все экземпляры переменной t за исключением производных относительно t. Чтобы использовать сгенерированное уравнение, скопируйте уравнение и вставьте его к разделу уравнения файла компонента Simscape. Не копируйте автоматически сгенерированную переменную ans
и знак "равно", который следует за ним.
simscapeEquation
преобразует любую производную относительно переменной t к обозначению Simscape, X.der
, где X
зависящая от времени переменная. Например, преобразуйте следующее дифференциальное уравнение в уравнение Simscape. Кроме того, здесь вы явным образом задаете левые и правые стороны уравнения при помощи синтаксиса simscapeEquation(LHS, RHS)
:
syms a x(t) simscapeEquation(diff(x), -a^2*x)
ans = 'x.der == -a^2*x;'
simscapeEquation
также переводит кусочные выражения в язык Simscape. Например, результатом следующего преобразования Фурье является кусочно-линейная функция:
syms v u x assume(x, 'real') f = exp(-x^2*abs(v))*sin(v)/v; s = fourier(f, v, u)
s = piecewise(x ~= 0, atan((u + 1)/x^2) - atan((u - 1)/x^2))
От этого символьного кусочного уравнения, simscapeEquation
генерирует допустимый код для раздела уравнения файла компонента Simscape:
simscapeEquation(s)
ans = 'if (x ~= 0.0) s == -atan(1.0/x^2*(u-1.0))+atan(1.0/x^2*(u+1.0)); else s == NaN; end'
Очистите предположение, что x действителен путем воссоздания его с помощью syms
:
syms x
Раздел уравнения файла компонента Simscape поддерживает ограниченное количество функций. Для получения дополнительной информации и список поддерживаемых функций, смотрите Simscape equations
. Если символьное выражение содержит функции, которые не поддерживаются Simscape, то simscapeEquation
не может представлять символьное выражение как уравнение Simscape и выдает предупреждение вместо этого. Всегда проверяйте результат преобразования. Выражения с бесконечностями подвержены недопустимому преобразованию.