Моделируйте линейный резистор на языке Simscape

Давайте обсудим, как работает моделирование на Simscape™ языке, используя линейный резистор в качестве примера.

Линейный резистор является простым электрическим компонентом, описанным следующим уравнением:

V=I·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 (для терминалов + и - соответственно).

  • Переменные 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

Похожие примеры

Подробнее о