Решатель Разделения является фиксированным шагом Simscape™ локальный решатель, который улучшает производительность для определенных моделей путем сокращения вычислительной стоимости симуляции. Уменьшенная вычислительная стоимость приводит к более быстрым уровням симуляции для настольной симуляции и уменьшенное время выполнения задачи (TET) для развертывания. Решатель преобразовывает целую систему уравнений для присоединенной сети Simscape в несколько меньших наборов коммутируемых линейных уравнений, которые соединяются через нелинейные функции. Вычислительная стоимость уменьшается, потому что более эффективно вычислить решения для нескольких меньших систем уравнения, чем это должно вычислить решение для одной большой системы уравнений.
Решатель Разделения не делит модели, который является им, не разделяет модель в отдельные подсистемы для многожильной обработки. Чтобы изучить, как разделить модель Simscape, смотрите Раздел Модель.
Чтобы использовать решатель Разделения, откройте диалоговое окно Блока Configuration Решателя и:
Установите флажок Use local solver.
Установите параметр Solver type на Partitioning
.
Снимите флажок Start simulation from steady state.
Установите параметр Equation formulation на Time
.
Для симуляции в реальном времени также установите флажок Use fixed-cost runtime consistency iterations. Для получения дополнительной информации смотрите, Делают Вашу Модель В реальном времени Жизнеспособный.
Не все сети могут моделировать с решателем Разделения. Симуляция, которая использует результаты решателя Разделения по ошибке, если сеть Simscape не может быть представлена коммутируемыми линейными уравнениями, соединенными через нелинейные функции. Симуляция с решателем Разделения также приводит к ошибке для сетей, которые содержат:
Собственный компонент, который использует язык Simscape оператор delay
.
Блок, который использует дискретный шаг расчета для периодических событий. Примеры включают Счетчик, Случайное число, Повторяя Последовательность или Универсальные блоки Случайных чисел от Simscape / библиотека Physical Signals / Sources.
Определенные настройки Блока Configuration Решателя не совместимы с решателем Разделения. Симуляция, которая использует решатель Разделения, приводит к ошибке, если модель содержит Блок Configuration Решателя с:
Start simulation from steady state выбран
Набор Equation formulation к Frequency and time
Чтобы далее улучшать производительность симуляции, можно установить параметр Partition storage method на Exhaustive
и задать значение для параметра Partition memory budget [kB], на основе данных Total memory estimate в Средстве просмотра Статистики. Для получения дополнительной информации смотрите Настройку Решателя и Образцовую Статистику, Доступную при использовании Решателя Разделения.
Этот пример показывает, как сравнить скорость и точность симуляции, которая использует решатель Разделения для базовых результатов. Это также показывает, как сравнить скорости решателя Разделения и Обратного Эйлерового решателя.
Откройте модель. В командной строке MATLAB® введите код.
Чтобы возвратить всю симуляцию выходные параметры в одном объекте Simulink.SimulationOutput
так, чтобы можно было позже сравнить времена симуляции, включите одно выходной формат команды sim
.
% Enable single-output format set_param(model,'ReturnWorkspaceOutputs', 'on')
Включите сигнал, который переходит к блоку scope Motor RPM для регистрации данных Simulink® и просматривающий с Data Inspector 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]
Время симуляции на вашей машине может отличаться, потому что скорость симуляции зависит от вычислительной мощности машины и вычислительной стоимости параллельных процессов.
Локальное Разделение фиксированного шага и Обратные Эйлеровы решатели быстрее, чем базовый решатель переменного шага. Решатель Разделения обычно, но не всегда, быстрее, чем Обратный Эйлеров решатель.
Чтобы сравнить результаты, откройте Data Inspector Simulink.
Чтобы видеть сравнение, нажмите Compare и затем нажмите Sensing 1.
Первый график показывает наложение базовой линии и результатов симуляции решателя Разделения. Второй график показывает, как они отличаются. Допуском по умолчанию к различиям является 0
. Чтобы определить, удовлетворяет ли точность результатов ваши требования, можно настроить относительное, абсолютное, и допуски времени. Для получения дополнительной информации смотрите, Сравнивают Данные моделирования (Simulink).