Увеличьте скорость симуляции Используя решатель разделения

Решатель Разделения является фиксированным шагом Simscape™ локальный решатель, который улучшает производительность для определенных моделей путем сокращения вычислительной стоимости симуляции. Уменьшенная вычислительная стоимость приводит к более быстрым уровням симуляции для настольной симуляции и уменьшенное время выполнения задачи (TET) для развертывания. Решатель преобразовывает целую систему уравнений для присоединенной сети Simscape в несколько меньших наборов коммутируемых линейных уравнений, которые соединяются через нелинейные функции. Вычислительная стоимость уменьшается, потому что более эффективно вычислить решения для нескольких меньших систем уравнения, чем это должно вычислить решение для одной большой системы уравнений.

Решатель Разделения не делит модели, который является им, не разделяет модель в отдельные подсистемы для многожильной обработки. Чтобы изучить, как разделить модель Simscape, смотрите Раздел Модель.

Чтобы использовать решатель Разделения, откройте диалоговое окно Блока Configuration Решателя и:

  1. Установите флажок Use local solver.

  2. Установите параметр Solver type на Partitioning.

  3. Снимите флажок Start simulation from steady state.

  4. Установите параметр Equation formulation на Time.

Для симуляции в реальном времени также установите флажок Use fixed-cost runtime consistency iterations. Для получения дополнительной информации смотрите, Делают Вашу Модель В реальном времени Жизнеспособный.

Ограничения

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

Определенные настройки Блока Configuration Решателя не совместимы с решателем Разделения. Симуляция, которая использует решатель Разделения, приводит к ошибке, если модель содержит Блок Configuration Решателя с:

  • Start simulation from steady state выбран

  • Набор Equation formulation к Frequency and time

Опции

Чтобы далее улучшать производительность симуляции, можно установить параметр Partition storage method на Exhaustive и задать значение для параметра Partition memory budget [kB], на основе данных Total memory estimate в Средстве просмотра Статистики. Для получения дополнительной информации смотрите Настройку Решателя и Образцовую Статистику, Доступную при использовании Решателя Разделения.

Моделируйте модель Simscape Используя решатель разделения

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

  1. Откройте модель. В командной строке MATLAB® введите код.

     См. код

  2. Чтобы возвратить всю симуляцию выходные параметры в одном объекте Simulink.SimulationOutput так, чтобы можно было позже сравнить времена симуляции, включите одно выходной формат команды sim.

    % Enable single-output format 
    set_param(model,'ReturnWorkspaceOutputs', 'on')
  3. Включите сигнал, который переходит к блоку scope Motor RPM для регистрации данных Simulink® и просматривающий с Data Inspector Simulink.

     См. код

    Значок журналирования отмечает сигнал в модели.

  4. Запустите синхронизированные симуляции для каждого из этих решателей:

    • Глобальный решатель переменного шага, исходный решатель для модели

    • Фиксированный шаг локальный Обратный Эйлеров решатель

    • Фиксированный шаг локальный решатель Разделения

     См. код

    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]        

    Время симуляции на вашей машине может отличаться, потому что скорость симуляции зависит от вычислительной мощности машины и вычислительной стоимости параллельных процессов.

    Локальное Разделение фиксированного шага и Обратные Эйлеровы решатели быстрее, чем базовый решатель переменного шага. Решатель Разделения обычно, но не всегда, быстрее, чем Обратный Эйлеров решатель.

  5. Чтобы сравнить результаты, откройте Data Inspector Simulink.

     См. код

    Чтобы видеть сравнение, нажмите Compare и затем нажмите Sensing 1.

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

Связанные примеры

Больше о

Для просмотра документации необходимо авторизоваться на сайте