Давайте обсудим, как работает моделирование на 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 |