Решите проблемы симуляции решателя секционирования для моделей Simscape Driveline

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

Решение проблем для блоков с жесткостью или трением

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

Чтобы решить числовые трудности в моделях, которые содержат эти блоки, используйте один или несколько методов:

  • Настройте настройки решателя.

  • Удалите высокоприоритетные избыточности переменных.

  • Разблокируйте начальные условия муфты.

  • Ослабьте допуски, связанные с трением.

  • Устраните блоки высокой жесткости.

  • Исключить степени свободы.

Использование решателя секционирования

При симуляции моделей с помощью решателя Разбиение:

  1. Симулируйте модель с помощью решателя глобального шага-переменной, чтобы захватить результаты базового плана, которые согласуются с вашей математической моделью или эмпирическими данными.

  2. Сконфигурируйте локальный решатель для симуляции решателя секционирования.

  3. Запустите симуляцию решателя разбиения. Если симуляция:

    • Выполняется до завершения - сравните результаты симуляции решателя разбиения с результатами опорной структуры. Если результаты не согласны, настройте настройки решателя или компоненты модели и повторите симуляцию. Для примера уменьшите размер шага или упростите динамику модели. Дополнительные сведения см. в разделах Уменьшение числовой жесткости, Выбор размера шага и количества итераций и Сокращение быстрой динамики.

      Повторяйте, пока симуляция не вернётты результаты, которые согласуются с результатами базовой линии.

    • Не моделирует до завершения из-за численных проблем - Решает проблемы, применяя один или несколько методов, перечисленных в разделе «Решение проблем для блоков с жесткостью или трением». Перезапустите симуляцию. Повторяйте, пока симуляция не запустится своего завершения, затем сравните результаты с результатами базовой линии. Если результаты не согласны, настройте настройки решателя или компоненты модели и перезапустите симуляцию. Повторяйте, пока симуляция решателя разбиения не возвраты результаты, которые согласуются с результатами базовой линии.

Решение ошибок начального условия и предупреждений

В этом примере показано, как решить числовые трудности, которые генерируют ошибки начального условия и предупреждения. Когда начальная проблема с условием препятствует инициированию или выполнению симуляции, MATLAB® останавливает симуляцию и генерирует ошибку. Когда симуляция не может удовлетворить высокоприоритетным целям, симуляция продолжает запускаться, но MATLAB генерирует предупреждение.

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

    %% Open the Model
    model = 'sdl_transmission_helicopter_base';
    open_system(model)
    

    Окно модели указывает, что Simulink® глобальный решатель является решателем переменного шага.

  2. Чтобы изучить строение локального решателя Simscape, откройте настройки Solver Configuration блока.

     См. Код

    Модель сконфигурирована для симуляции с помощью глобального решателя Simulink, потому что флажок Use local solver снят.

  3. Симулируйте модель, а затем, чтобы изучить результаты базовой линии из симуляции переменного шага, откройте блок Scope.

     См. Код

  4. Сконфигурируйте модель для симуляции решателя секционирования. В настройках Solver Configuration блоков установите флажок Use local solver.

     См. Код

    При установке флажка Use local solver активируются связанные параметры. По умолчанию параметры в блоке Solver Configuration устанавливаются в:

    1. Solver typePartitioning

    2. Sample time0.05

    3. Partition methodRobust simulation

    4. Partition storage methodExhaustive

    5. Use fixed-cost runtime consistency iterations - Выбран

    6. Nonlinear iterations3

  5. Симулируйте модель.

     См. Код

    Warning: Simscape succeeded in finding consistent states with which to start the simulation, 
    but the states found may deviate from requested initial conditions.
    

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

  6. Предупреждение вызвано проблемами начального условия. Исследуйте проблемы, исследуя переменные в модели. Чтобы открыть Средство Просмотра, в окне модели, на вкладке Debug, нажмите Simscape > Variable Viewer. Чтобы фильтровать переменные, которые имеют цели, которым симуляция не может удовлетворить, щелкните стреле справа от заголовка Status столбца и в раскрывающемся списке снимите флажок OK.

    Существует несколько переменных, которые имеют High приоритетные цели, которым симуляция не может удовлетворить.

  7. Исключить предупреждение путем разблокировки начального состояния муфты. Откройте блок Unidirectional Clutch и установите параметр Initial state равным Unlocked. Затем моделируйте модель, исследуйте переменные и просмотрите результаты.

     См. Код

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

Решите болтовню из-за жесткости

Этот пример также показывает, как решить числовые трудности, которые приводят к болтовне в симуляциях Simscape Driveline, которые используют решатель Partitioning. В этом случае болтовня вызвана жесткостью. Жесткая модель является такой, которая содержит как быструю, так и медленную динамику.

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

    %% Open the Model
    model = 'sdl_vehicle_dual_clutch';
    open_system(model)
    

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

  2. Сконфигурируйте модель для логгирования данных. В этом примере проскальзывание шин является интересующими данными, и логгирование дополнительных данных увеличивает вычислительные затраты на симуляцию. Включите регистрацию данных для проскальзывания шины и отключите регистрацию данных для состояния передачи.

    1. В подсистеме Vehicle блок Tire LF Tire (Magic Formula) представляет собой левую переднюю шину транспортного средства. Порт Tire LF S, который передает данные о проскальзывании шины, является портом физического сигнала. Логгировать данные физического сигнала можно с помощью логгирования данных Simulink. Адресатом сигнала является блок Tire slip Scope, который находится в подсистеме Scopes.

      1. Откройте Scopes подсистему.

      2. Данные о скольжении шины находятся в сигнале, который FrontSlip From блок передает блоку Tire slip Scope. Выберите сигнал и на панели инструментов Simulink, на вкладке Signal, щелкните стреле в правой части Monitor раздела. В категории Signal Monitoring нажмите Log Signals.

       См. Код

    2. В подсистеме Transmission Controller, в подсистеме Shift state, блок z3 Unit Delay передает состояние передачи.

      1. Откройте Transmission Controller подсистему.

      2. Откройте Shift state подсистему.

      3. Подсистема Gear state G передает состояние передачи на блок Unit Delay, который, в свою очередь, передает данные на блок Gear state Outport. Сигнал, который соединяет блок Unit Delay с блоком Gear state Outport, отмечен для логгирования данных . Выберите сигнал и на панели инструментов Simulink, на вкладке Signal, щелкните стреле в правой части Monitor раздела. В категории Signal Monitoring нажмите Log Signals.

       См. Код

  3. Получите и исследуйте базовые результаты. Симулируйте с помощью глобального решателя переменной-шага и просмотрите результаты в Данные моделирования Inspector.

    1. Запустите симуляцию. На панели инструментов Simulink, на вкладке Simulation, в разделе Simulate, нажмите Run.

       См. Код

    2. Откройте Данные моделирования Inspector. На панели инструментов Simulink, на вкладке Simulation, щелкните стреле в правой части раздела Review Results и, в категории Signal Logging Results, нажмите Signal Logging Results. Чтобы просмотреть данные о проскальзывании шины, установите флажок From8:1.

       См. Код

  4. Сконфигурируйте локальный решатель для симуляции с фиксированным шагом с помощью решателя Partitioning.

    1. В модели откройте настройки Solver Configuration блоков.

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

     См. Код

  5. Симулируйте с помощью решателя Секционирования.

     См. Код

  6. Сравните результаты опорной структуры и решателя секционирования в Данные моделирования Inspector.

    1. Откройте Данные моделирования Inspector.

    2. В верхней, левой панели выберите Compare.

    3. Настройте сравнение. В верхней, правой панели:

      1. В правой части настройки Baseline щелкните стреле вниз и выберите Run 1: sdl_vehicle_clutch.

      2. В правой части настройки Compare to щелкните стреле вниз и выберите Run 2: sdl_vehicle_clutch.

      3. Нажмите Compare.

    4. Чтобы изменить решатель разбиения результатов цвет линии, на панели Properties, в столбце Compare to, щелкните цветной Line, выберите другой цвет, например желтый, и нажмите Set.

     См. Код

    Результаты симуляции решателя Partitioning содержат значительную болтовню.

  7. Болтовня в проскальзывании передней шины обусловлена параметрами, заданными для блока Tire (Magic Formula). Чтобы разрешить болтовню сигналов и предупреждение о начальном условии, упростите динамику шин:

    1. Откройте Vehicle подсистему.

    2. Откройте настройки Tire LF блоков.

    3. В настройках Dynamics установите Inertia равным No Inertia.

    4. Используя тот же процесс, опустите инерцию для блоков Tire RF, Tire LR и Tire RR.

     См. Код

  8. Чтобы лучше изучить причину предупреждения, исследуйте переменные в модели. Чтобы открыть Средство Просмотра, на вкладке Apps, в категории Physical Modeling, нажмите Simscape Variable Viewer. Чтобы фильтровать переменные, которые имеют цели, которым симуляция не может удовлетворить, щелкните стреле справа от заголовка Status столбца и в раскрывающемся списке снимите флажок OK.

    Средство просмотра переменных показывает, что несколько высокоприоритетных переменных не удовлетворены. Для некоторых моделей привода с сцеплениями эта проблема решается путем разблокировки любых сцеплений, которые изначально заблокированы. Для муфты заблокированное начальное состояние более численно ограничивает. Для получения дополнительной информации см. раздел Fundamental Friction Clutch.

    Чтобы устранить предупреждение:

    1. Откройте Dual Clutch Transmission подсистему.

    2. Откройте Gears подсистему.

    3. Откройте настройки Dog Clutch 1 блоков. В настройках Initial Conditions установите Clutch initial state равным Unlocked.

     См. Код

  9. Моделируйте, а затем исследуйте и сравните результаты в Данные моделирования Inspector.

    1. Запустите симуляцию.

       См. Код

    2. Откройте Данные моделирования Inspector и сравните результаты симуляции решателя Partitioning с фиксированным шагом с результатами базовой линии симуляции с переменным шагом. Чтобы сконфигурировать сравнение, на верхней, правой панели:

      1. В правой части настройки Baseline щелкните стреле вниз и выберите Run 1: sdl_vehicle_clutch.

      2. В правой части настройки Compare to щелкните стреле вниз и выберите Run 3: sdl_vehicle_clutch.

      3. Нажмите Compare.

     См. Код

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

См. также

Похожие примеры

Подробнее о