exponenta event banner

Общие сведения о работе решателя секционирования

В этом разделе используется пример нелинейной электромеханической цепи с решателем разбиения для более глубокого изучения функциональных возможностей решателя разбиения. В нем рассматриваются различные типы секций и их уравнения, а также объясняется, как решатель секционирования решает их для ускорения моделирования.

  1. Чтобы открыть пример модели нелинейной электромеханической цепи с разделительным решателем, введите ssc_nonlinear_electromechanical_circuit в окне команд MATLAB ®.

    Block diagram of the model

  2. Для просмотра статистики модели в окне модели на вкладке Отладка выберите Simscape > Statistics Viewer. При необходимости нажмите кнопку Refresh на панели инструментов окна Viewer для заполнения Viewer данными.

  3. Разверните узел Число разделов.

    Statistics Viewer showing the Partitioning details

    Это показывает, что решатель делит систему на три раздела. Первый раздел решается методом прямого Эйлера, а два других раздела решаются методом обратного Эйлера.

  4. Выбрав Число переменных в каждом узле секции, можно увидеть имена переменных, которые принадлежат этой секции.

    Statistics Viewer showing the variable name for the first partition

    Разделу 1 принадлежит Inerta.w переменная, представляющая скорость вращения блока инерции.

    Владелец раздела 2 Diode.v и Sensing.Ideal Rotational Motion Sensor.phi, а раздел 3 является владельцем Inerta.t. Каждый раздел отвечает за обновление значений переменных состояния, которыми он владеет.

  5. Средство просмотра статистики также содержит ссылки на уравнения в каждом разделе.

    Statistics Viewer showing the equation link for the first partition

    Например, если в разделе 1 выбрано Число уравнений, а затем щелкните значок ssc_nonlinear_electromechanical_circuit/Inertia ссылка в разделе Источник (Source), исходный код для блоков Инерция (Inertia) открывается в редакторе MATLAB, указывая на следующее уравнение:

    t == inertia * w.der;
    

    Аналогично, можно увидеть уравнения для других разделов.

Решатель секционирования собирает все эти уравнения в систему уравнений, необходимых для моделирования модели:

System of equations

Здесь Sensor.phi - аббревиатура Sensing.Ideal Rotational Motion Sensor.phi переменная (используется для того, чтобы сделать представление системы уравнений более компактным). m0 - логическое значение, полученное из уравнения в блоке диода, где Diode.v сравнивается с прямым напряжением:

    if v > Vf
      i == (v - Vf*(1-Ron*Goff))/Ron;
    else
      i == v*Goff;
    end

Сравнивая эту систему уравнений с данными программы просмотра статистики, можно увидеть, что первая строка системы находится в разделе 3, поскольку раздел 3 владеет Inerta.t переменная состояния. Аналогично, вторая и третья строки находятся в разделе 2, а четвертая строка находится в разделе 1.

Тип уравнения разбиения зависит только от членов с участием собственных состояний и не зависит от функции соединения. Например, раздел 3 перечисляет свой тип уравнения как линейный инвариант времени, несмотря на наличие нелинейностей в члене функции соединения, поскольку он является линейным инвариантом времени относительно его собственных состояний.

Во время моделирования решатель секционирования решает секции в том же порядке, в котором они перечислены в средстве просмотра статистики (то есть снизу вверх в системе уравнений), используя указанный метод (прямой эйлер или обратный эйлер). Решатель использует обновленные значения состояния, полученные после решения каждого раздела, для выполнения обновления состояния для родительских разделов.

Связанные темы