Давайте обсудим, как работает моделирование на 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
(для терминалов + и - соответственно).
Переменные Through и Across, текущие i
и напряжения v
, чтобы соединиться с переменными электрической области Through и Across позже в файле. Вы соединяете переменные компонента и области путем определения соединения между переменными компонента и узлами.
Все общие переменные компонента появляются на вкладке Variables диалогового окна блока, сгенерированного из файла компонента. Чтобы указать, как имя переменной появляется в диалоговом окне, используйте комментарий сразу после объявления переменной (Current
и Voltage
).
Параметрический R
, со значением по умолчанию 1 Ohm
, определение значения сопротивления. Этот параметр появляется в диалоговом окне блока, сгенерированного из файла компонента, и может быть изменен при построении и симуляции модели. Комментарий, непосредственно следующий за объявлением параметра, Resistance
, определяет, как имя параметров блоков появляется в диалоговом окне.
The branches
раздел устанавливает связь между переменной Through компонента и узлами компонента (и, следовательно, переменной Through области). The i : p.i -> n.i
оператор указывает, что ток через резистор течет от узла p
к узлу n
.
Итоговый раздел содержит уравнения:
The assert
конструкция выполняет валидацию параметра, проверяя, что значение сопротивления больше нуля. Если параметры блоков установлены неправильно, assert
инициирует ошибку времени выполнения.
Первое уравнение, v == p.v - n.v
, устанавливает связь между переменной Across компонента и узлами компонента (и, следовательно, переменной Across области). Он определяет напряжение на резисторе как различие между узлом напряжениями.
Второе уравнение, v == i*R
, описывает операцию линейного резистора, основанного на законе Ом. Он определяет математическую связь между переменными Through и Across компонента, текущими i
и напряжения v
, и параметр R
.
The ==
операнд, используемый в этих уравнениях, задает непрерывное математическое равенство между левым и правым выражениями. Это означает, что уравнение представляет не присвоение, а скорее симметричную математическую связь между левым и правым операндами. Это уравнение оценивается постоянно в течение всей симуляции.
Следующий рисунок показывает полученный пользовательский блок, сгенерированный из этого файла компонента.
Дополнительные сведения о записи файлов Simscape и преобразовании текстовых компонентов в пользовательские блоки Simscape см. в следующей таблице.
Для... | Видите... |
---|---|
Семантика, правила и примеры декларации | Объявление областей и компонентов |
Подробная информация о записи уравнений компонента | Определение уравнений компонента |
Аннотирование файла компонента для улучшения сгенерированным блоком косметики и удобства использования | Настройка имени и внешнего вида блока |
Генерация блоков Simscape из файлов компонентов | Генерация пользовательских блоков из файлов компонентов Simscape |