Эта тема использует Нелинейную Электромеханическую Схему с Разделением примера Решателя, чтобы обеспечить всесторонний взгляд в функциональность решателя Разделения. Это исследует различные типы разделов и их уравнений и объясняет, как решатель Разделения решает их, чтобы дать к более быстрой симуляции.
Чтобы разомкнуть Нелинейную Электромеханическую Цепь с Разделением модели Решателя в качестве примера, введите ssc_nonlinear_electromechanical_circuit
в командном окне MATLAB®.
Чтобы просмотреть статистику модели, в окне модели, на вкладке Debug, нажимают Simscape> Statistics Viewer. Нажмите кнопку Refresh на панели инструментов окна средства просмотра, при необходимости, чтобы заполнить средство просмотра с данными.
Расширьте узел Number of partitions.
Это показывает, что решатель делит систему на три раздела. Первый раздел решен с помощью Прямого Метода Эйлера, и другие два раздела решены с помощью Обратного Метода Эйлера.
Путем выбора Number of variables под каждым из узлов раздела вы видите имена переменных, которые принадлежат тому разделу.
Раздел 1 владеет Inerta.w
переменная, которая представляет вращательную скорость блока Inertia.
Раздел 2 владеет Diode.v
и Sensing.Ideal Rotational Motion Sensor.phi
, и Раздел 3 владеет Inerta.t
. Каждый раздел ответственен за обновление значений переменных состояния, которыми это владеет.
Statistics Viewer также содержит ссылки на уравнения в каждом разделе.
Например, если вы выбираете Number of equations под Разделом 1, и затем нажимаете ssc_nonlinear_electromechanical_circuit/Inertia
соединитесь под Source, исходный код для блоков Инерции открывается в редакторе MATLAB, указывая на это уравнение:
t == inertia * w.der;
Точно так же вы видите уравнения для других разделов.
Решатель Разделения собирает все эти уравнения в систему уравнений, требуемую симулировать модель:
Здесь, Sensor.phi является сокращением Sensing.Ideal Rotational Motion Sensor.phi
переменная (раньше делал представление системы уравнений более компактным). m0
булевская переменная, происходящая из уравнения в блоке Diode, где Diode.v
по сравнению с Forward voltage:
if v > Vf i == (v - Vf*(1-Ron*Goff))/Ron; else i == v*Goff; end
Сравнивая эту систему уравнений с данными Statistics Viewer, вы видите, что первая строка системы находится в Разделе 3, потому что Раздел 3 владеет Inerta.t
переменная состояния. Точно так же вторые и третьи строки находятся в Разделе 2, и четвертая строка находится в Разделе 1.
Тип уравнения раздела зависит только на условиях, включающих принадлежавшие состояния, и не затронут функцией связи. Например, Раздел 3 списка, его Equation Type как Linear time-invariant, несмотря на наличие нелинейности в связи функционируют термин, потому что это линейно независимый от времени относительно его находящихся в собственности состояний.
В процессе моделирования решатель Разделения решает разделы в том же порядке, в котором они перечислены в Statistics Viewer (то есть, вверх дном в системе уравнений), с помощью заданного метода (Передайте Эйлеровому или Обратному Эйлеру). Решатель использует обновленные значения состояния, полученные после решения каждого раздела, чтобы выполнить обновление состояния для восходящих разделов.