Рассмотрим, как работает моделирование на Simscape™ языке, используя в качестве примера линейный резистор.
Линейный резистор - простая электрическая составляющая, описываемая следующим уравнением:
· R
где
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 (для + и - клемм соответственно).
Сквозные и поперечные переменные, текущие i и напряжение v, для подключения к переменным Через (Through) и Поперек (Across) электрической области в дальнейшем в файле. Переменные компонента и домена соединяются путем указания соединения между переменными компонента и узлами.
Все открытые переменные компонента отображаются на вкладке «Переменные» диалогового окна блока, созданного из файла компонента. Чтобы указать, как имя переменной отображается в диалоговом окне, используйте комментарий сразу после объявления переменной (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описывает работу линейного резистора на основании закона Ома. Он определяет математическую связь между переменными «Через» и «Поперек» компонента, текущий i и напряжение vи параметр R.
== операнд, используемый в этих уравнениях, определяет непрерывное математическое равенство между левым и правым выражениями. Это означает, что уравнение представляет не назначение, а скорее симметричное математическое соотношение между левым и правым операндами. Это уравнение вычисляется непрерывно на протяжении всего моделирования.
На следующем рисунке показан результирующий пользовательский блок, созданный из этого файла компонента.



Дополнительные сведения о записи файлов Simscape и преобразовании текстовых компонентов в пользовательские блоки Simscape см. в следующей таблице.
| Для... | Видишь... |
|---|---|
| Семантика, правила и примеры объявления | Объявление доменов и компонентов |
| Подробная информация о написании уравнений компонентов | Определение уравнений компонентов |
| Аннотирование файла компонента для улучшения косметики и удобства использования созданного блока | Настройка имени и внешнего вида блока |
| Создание блоков Simscape из файлов компонентов | Создание пользовательских блоков из файлов компонентов Simscape |