Образцовый линейный резистор на языке 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 (для + и – терминалы, соответственно).

  • Через и переменные 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

Связанные примеры

Больше о