Давайте обсудим, как моделирование на языке Simscape™ работает, с помощью линейного резистора в качестве примера.
Линейный резистор является простой электрической деталью, описанной следующим уравнением:
где
V | Напряжение через резистор |
I | Текущий через резистор |
R | Сопротивление |
Файл Simscape, который реализует такой линейный резистор, может посмотреть можно следующим образом:
component my_resistor % Linear Resistor % The voltage-current (V-I) relationship for a linear resistor is V=I*R, % where R is the constant resistance in ohms. % % The positive and negative terminals of the resistor are denoted by the % + and - signs respectively. nodes p = foundation.electrical.electrical; % +:left n = foundation.electrical.electrical; % -:right end variables i = { 0, 'A' }; % Current v = { 0, 'V' }; % Voltage end parameters R = { 1, 'Ohm' }; % Resistance end branches i : p.i -> n.i; end equations assert(R>0) v == p.v - n.v; v == i*R; end end
Давайте исследуем структуру файла Simscape my_resistor.ssc
.
Первая линия указывает, что это - файл компонента, и именем компонента является my_resistor
.
После этой линии существуют дополнительные комментарии, которые настраивают имя блока и предоставляют краткое описание в диалоговом окне блока. Комментарии запускаются с %
символ.
Следующий раздел файла Simscape является разделом объявления. Для линейного резистора это объявляет:
Два электрических узла, p
и n
(для + и – терминалы, соответственно).
Через и переменные Across, текущий i
и напряжение v
, быть соединенным с электрическими доменными переменными Through и Across позже в файле. Вы соединяете и доменные переменные компонента путем определения связи между переменными компонента и узлами.
Все общедоступные переменные компонента появляются на вкладке Variables диалогового окна блока, сгенерированного из файла компонента. Чтобы задать, как имя переменной появляется в диалоговом окне, используйте комментарий сразу после объявления переменной (Current
и Voltage
).
Параметр R
, со значением по умолчанию 1 Ohm
, определение значения сопротивления. Этот параметр появляется в диалоговом окне блока, сгенерированного из файла компонента, и может быть изменен при создании и симуляции модели. Комментарий сразу после объявления параметра, Resistance
, задает, как имя параметров блоков появляется в диалоговом окне.
branches
раздел устанавливает отношение между переменной Through компонента и узлами компонента (и поэтому доменной переменной Through). i : p.i -> n.i
оператор указывает, что ток через резистор течет из узла p
к узлу n
.
Итоговый раздел содержит уравнения:
assert
построение выполняет валидацию параметра путем проверки, что значение сопротивления больше нуля. Если параметры блоков установлены неправильно, assert
инициировал ошибку времени выполнения.
Первое уравнение, v == p.v - n.v
, устанавливает отношение между переменной Across компонента и узлами компонента (и поэтому доменной переменной Across). Это задает напряжение через резистор как различие между напряжениями узла.
Второе уравнение, v == i*R
, описывает операцию линейного резистора на основе закона Ома. Это задает математическое отношение между переменными Through и Across компонента, текущим i
и напряжение v
, и параметр R
.
==
операнд, используемый в этих уравнениях, задает непрерывное математическое равенство между лево-и правыми выражениями стороны. Это означает, что уравнение не представляет присвоение, а скорее симметричное математическое отношение между лево-и правыми операндами. Это уравнение оценивается постоянно в течение симуляции.
Следующий рисунок показывает получившийся пользовательский блок, сгенерированный из этого файла компонента.
Чтобы узнать больше о записи файлов Simscape и преобразовании ваших текстовых компонентов в пользовательские блоки Simscape, обратитесь к следующей таблице.
Для... | Смотрите... |
---|---|
Семантика объявления, правила и примеры | Объявление областей и компонентов |
Подробная информация о записи уравнений компонента | Определение уравнений компонента |
Аннотирование файла компонента, чтобы улучшить сгенерированную косметику блока и удобство пользования | Настройка имени блока и внешнего вида |
Генерация Simscape блокируется из файлов компонента | Генерация пользовательских блоков из файлов компонента Simscape |