Решатель секционирования - это Simscape™ локальный решатель с фиксированным шагом, который повышает производительность некоторых моделей за счет снижения вычислительных затрат на моделирование. Снижение вычислительных затрат приводит к увеличению скорости моделирования для моделирования рабочего стола и сокращению времени выполнения задач (TET) для развертывания. Решатель преобразует всю систему уравнений для присоединенной сети Simscape в несколько меньших наборов коммутируемых линейных уравнений, которые связаны нелинейными функциями. Вычислительные затраты снижаются, поскольку более эффективно вычислять решения для нескольких меньших систем уравнений, чем вычислять решение для одной большой системы уравнений.
Решатель секционирования не секционирует модели, то есть не разбивает модель на отдельные подсистемы для многоядерной обработки. Сведения о разделении модели Simscape см. в разделе Разделение модели.
Чтобы использовать решатель секционирования, откройте настройки блока конфигурации решателя и выполните следующие действия.
Установите флажок Использовать локальный решатель (Use local solver).
Задайте для параметра типа решателя значение Partitioning.
Снимите флажок Начать моделирование из устойчивого состояния (Start simulation from steading state).
Задайте для параметра формулирования уравнения значение Time.
Для моделирования в реальном времени также установите флажок Использовать итерации непротиворечивости среды выполнения с фиксированной стоимостью. Дополнительные сведения см. в разделе Обеспечение жизнеспособности модели в реальном времени.
Не все сети могут моделировать с помощью решателя разбиения. Моделирование с использованием решателя секционирования приводит к ошибке, если сеть Simscape не может быть представлена коммутируемыми линейными уравнениями, связанными через нелинейные функции. Моделирование с помощью решателя разбиения также приводит к ошибке для сетей, содержащих:
Пользовательский компонент, использующий язык Simscape delay оператор.
Блок, использующий время дискретной выборки для периодических событий. Примеры включают в себя блоки PS Counter, PS Random Number, PS Repeating Sequence или PS Uniform Random Number из библиотеки Simscape/Physical Signals/Sources.
Некоторые параметры блока конфигурации решателя несовместимы с решателем секционирования. Моделирование с использованием решателя секционирования приводит к ошибке, если модель содержит блок конфигурации решателя с:
Запуск моделирования из установившегося состояния
Формула уравнения установлена в Frequency and time
Для дальнейшего повышения производительности моделирования можно задать для параметра Метод хранения разделов значение Exhaustive и укажите значение для параметра Бюджет памяти раздела [kB] на основе данных оценки общего объема памяти в средстве просмотра статистики. Дополнительные сведения см. в разделе Конфигурация решателя и статистика модели, доступные при использовании решателя секционирования.
В этом примере показано, как сравнить скорость и точность моделирования, использующего решатель секционирования, с результатами базовой линии. Также показано, как сравнивать скорости решателя секционирования и решателя обратного эйлера.
Откройте модель. В командной строке MATLAB ® введите код.
Возврат всех выходных данных моделирования в пределах одного Simulink.SimulationOutput чтобы впоследствии можно было сравнить время моделирования, включите формат одиночного вывода sim команда.
% Enable single-output format set_param(model,'ReturnWorkspaceOutputs', 'on')
Включите сигнал, который поступает в блок объема RPM двигателя для регистрации и просмотра данных Simulink ® с помощью инспектора данных моделирования.
Значок регистрации
помечает сигнал в модели.

Выполните моделирование по времени для каждого из следующих решателей:
Глобальный решатель с переменным шагом, исходный решатель для модели
Локальный решатель обратного Эйлера с фиксированным шагом
Локальный решатель с фиксированным шагом
compTimeDiffTable =
3×2 table
Solver Sim_Duration
________________ ____________
'Baseline' [0.0319]
'Partitioning' [0.0204]
'Backward Euler' [0.0291]
compPctDiffTable =
3×2 table
Comparison Percent_Difference
____________________________________ __________________
'Partitioning versus Baseline' [35.9128]
'Backward Euler versus Baseline' [ 8.6623]
'Partitioning versus Backward Euler' [29.8349] Время моделирования на вашей машине может отличаться, поскольку скорость моделирования зависит от вычислительной мощности машины и вычислительной стоимости параллельных процессов.
Локальные решатели секционирования с фиксированным шагом и обратного эйлера работают быстрее, чем решатель базовой линии с переменным шагом. Решатель секционирования обычно, но не всегда, быстрее решателя обратного Euler.
Чтобы сравнить результаты, откройте инспектор данных моделирования.
Чтобы просмотреть результаты сравнения, нажмите кнопку Сравнить (Compare), а затем нажмите кнопку Датчик (Sensing 1).

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