Понимание, как работы решателя разделения

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

  1. Чтобы разомкнуть Нелинейную Электромеханическую Цепь с Разделением модели Решателя в качестве примера, введите ssc_nonlinear_electromechanical_circuit в MATLAB® Командное окно.

    Block diagram of the model

  2. Чтобы просмотреть статистику модели, в окне модели, на вкладке Debug, нажимают Simscape> Statistics Viewer. Нажмите кнопку Refresh на панели инструментов окна средства просмотра, при необходимости, чтобы заполнить средство просмотра с данными.

  3. Расширьте узел Number of partitions.

    Statistics Viewer showing the Partitioning details

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

  4. Путем выбора Number of variables под каждым из узлов раздела вы видите имена переменных, которые принадлежат тому разделу.

    Statistics Viewer showing the variable name for the first partition

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

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

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

    Statistics Viewer showing the equation link for the first partition

    Например, если вы выбираете Number of equations под Разделом 1, и затем нажимаете ssc_nonlinear_electromechanical_circuit/Inertia соединитесь под Source, исходный код для блоков Инерции открывается в редакторе MATLAB, указывая на это уравнение:

    t == inertia * w.der;
    

    Точно так же вы видите уравнения для других разделов.

Решатель Разделения собирает все эти уравнения в систему уравнений, требуемую симулировать модель:

System of equations

Здесь, Sensor.phi является сокращением Sensing.Ideal Rotational Motion Sensor.phi переменная (раньше делал представление системы уравнений более компактным). m0 boolean, происходящий из уравнения в блоке Diode, где Diode.v по сравнению с Forward voltage:

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

Сравнивая эту систему уравнений с данными Statistics Viewer, вы видите, что первая строка системы находится в Разделе 3, потому что Раздел 3 владеет Inertia.t переменная состояния. Точно так же вторые и третьи строки находятся в Разделе 2, и четвертая строка находится в Разделе 1.

Тип уравнения раздела зависит только от терминов, включающих принадлежавшие состояния, и не затронут функцией связи. Например, Раздел 3 списка, его Equation Type как Linear time-invariant, несмотря на наличие нелинейности в связи функционируют термин, потому что это линейно независимый от времени относительно его находящихся в собственности состояний.

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

Похожие темы