Решатель Разделения является фиксированным шагом Simscape™ локальный решатель, который улучшает производительность для определенных моделей путем сокращения вычислительной стоимости симуляции. Уменьшенная вычислительная стоимость дает к более быстрым уровням симуляции для настольной симуляции и уменьшенное время выполнения задачи (TET) для развертывания. Решатель преобразует целую систему уравнений для присоединенной сети Simscape в несколько меньших наборов коммутируемых линейных уравнений, которые соединяются через нелинейные функции. Вычислительная стоимость уменьшается, потому что более эффективно вычислить решения для нескольких меньших систем уравнения, чем это должно вычислить решение для одной большой системы уравнений.
Решатель Разделения не делит модели, который является им, не разделяет модель в отдельные подсистемы для многожильной обработки. Чтобы изучить, как разделить модель Simscape, смотрите Раздел Модель.
Чтобы использовать решатель Разделения, откройте настройки блока Solver Configuration и:
Установите флажок Use local solver.
Установите параметр Solver type на Partitioning
.
Снимите флажок Start simulation from steady state.
Установите параметр Equation formulation на Time
.
Для симуляции в реальном времени также установите флажок Use fixed-cost runtime consistency iterations. Для получения дополнительной информации смотрите, Делают Вашу Модель В реальном времени Жизнеспособный.
Не все сети могут симулировать с решателем Разделения. Симуляция, которая использует результаты решателя Разделения по ошибке, если сеть Simscape не может быть представлена коммутируемыми линейными уравнениями, соединенными через нелинейные функции. Симуляция с решателем Разделения также дает к ошибке для сетей, которые содержат:
Собственный компонент, который использует язык Simscape delay
оператор.
Блок, который использует дискретный шаг расчета в периодических событиях. Примеры включают Counter, Random Number, Repeating Sequence или блоки Uniform Random Number из Simscape / библиотека Physical Signals / Sources.
Определенные настройки блока Solver Configuration не совместимы с решателем Разделения. Симуляция, которая использует решатель Разделения, приводит к ошибке, если модель содержит блок Solver Configuration с:
Start simulation from steady state выбран
Набор Equation formulation к Frequency and time
Чтобы далее улучшать производительность симуляции, можно установить параметр Partition storage method на Exhaustive
и задайте значение для параметра Partition memory budget [kB], на основе данных Total memory estimate в Statistics Viewer. Для получения дополнительной информации смотрите Solver Configuration и Статистику Модели, Доступную при использовании Решателя Разделения.
В этом примере показано, как сравнить скорость и точность симуляции, которая использует решатель Разделения для базовых результатов. Это также показывает, как сравнить скорости решателя Разделения и Обратного Эйлерового решателя.
Откройте модель. В командной строке 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).