Лучшие практики для симуляции с daessc Решатель

The daessc Simulink с переменным шагом® решатель предоставляет алгоритмы, специально разработанные для моделирования дифференциальных алгебраических уравнений (ДАУ), возникающих из моделирования физических систем.

The daessc решатель доступен только с Simscape™ лицензией.

Использование daessc Решатель

Для новых моделей, если ваша модель содержит блоки Simscape и ДАУ, VariableStepAuto решатель по умолчанию равен daessc. Можно также выбрать daessc решатель явно:

  1. В окне модели откройте вкладку Modeling и нажмите Model Settings. Откроется диалоговое окно Параметры конфигурации (Configuration Parameters), в котором отображается панель Solver.

  2. В разделе Solver selection установите Type равным Variable-stepи затем в раскрывающемся списке Solver выберите daessc (DAE solver for Simscape).

  3. Разверните Solver details и установите Daessc mode на одну из следующих опций, чтобы подстроить эффективность решателя:

    • auto - Автоматически выбирает оптимальную daessc режим решателя. Это значение по умолчанию.

    • Fast - Самый эффективный режим с точки зрения вычислительной стоимости, но менее устойчивый.

    • Balanced - Обеспечивает баланс между вычислительными затратами и робастностью.

    • Robust - Более прочный, но и более затратный.

    • Quick debug - Обновляет решатель Jacobian на каждом шаге интегрирования, и поэтому даже дороже Robust. Рекомендуется только для разработки интерактивной модели, чтобы быстро найти проблемы с уравнениями.

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

The daessc решатель использует следующие настройки допуска для состояний Simscape в модели:

  • Устанавливает AutoScaleAbsTol на off

  • Если Absolute tolerance задано как auto, устанавливает AbsTol на то же значение, что и RelTol

Эти изменения не отражаются в диалоговом окне Параметров конфигурации и не влияют на другие (нефизические) состояния в модели. Другими словами, если ваша модель содержит контроллер Simulink и объект Simscape, когда вы симулируете его с daessc решатель, контроллер использует параметры допуска, указанные в диалоговом окне Параметры конфигурации (Configuration Parameters), но объект использует AutoScaleAbsTol = off и AbsTol = RelTol.

The daessc решатель принимает, что модель хорошо масштабирована. Для получения дополнительной информации см. «Масштабирование системы по номинальным значениям» и «Использование масштабирования по номинальным значениям для повышения эффективности».

The daessc решатель не поддерживает Rsim. Можно использовать этот решатель с другими целями симуляции в реальном времени.

Для получения дополнительной информации о рекомендуемых настройках и лучших практиках использования daessc, см. «Поиск и устранение проблем с моделями».

Поиск и устранение проблем с моделями

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

  • Relative tolerance1e-3

  • Absolute tolerance1e-3

  • Auto scale absolute tolerance off

ssc_new и шаблоны Simscape используют эти настройки. Если для создания модели используется другой метод, можно задать все три с помощью этой команды:

set_param(bdroot,'AbsTol','1e-3','RelTol','1e-3','AutoScaleAbsTol','off')

Для улучшения масштабирования модели:

  1. В диалоговом окне Параметры конфигурации на панели Simscape убедитесь, что установлен флажок Normalize using nominal values.

  2. Симулируйте модель с помощью Solver Profiler и проверьте вкладку States Below Absolute Tolerance.

    The States Below Absolute Tolerance pane, showing one state called massSpringDamperNominal.k.x.

  3. Для каждой переменной, перечисленной на этой вкладке, определите, важна ли эта переменная для симуляции. Если это так, откройте Property Inspector для блока, содержащего эту переменную, и задайте номинальное значение для переменной.

  4. Можно также добавить или отредактировать пары единица значения для модели, при необходимости, с помощью кнопки Задать номинальные значения (Specify niminal values) на панели Simscape диалогового окна Параметры конфигурации (Configuration Parameters).

Для получения дополнительной информации смотрите Использование масштабирования по номинальным значениям для повышения эффективности.

Обновление моделей до использования daessc Решатель

Для моделей Simscape с ДАУ, созданными до R2021a, значение по умолчанию VariableStepAuto решатель ode23t, и этот выбор решателя не меняется автоматически, когда вы открываете такую существующую модель в текущей версии программного обеспечения. Используйте проверку Check integration method used by 'auto' solver for Simscape DAEs в Upgrade Advisor, чтобы идентифицировать модели, которые все еще используют ode23t в качестве автоматического решателя с переменным шагом и обновить их для использования daessc, который разработан специально для физического моделирования.

Перед обновлением моделей убедитесь, что они хорошо масштабированы, и следуйте другим лучшим практикам, описанным в разделе «Поиск и устранение проблем с вашими моделями».

The daessc решатель имеет тенденцию быть более устойчивым для большинства моделей Simscape, но некоторые модели могут испытывать неблагоприятные эффекты из-за этого изменения. После обновления модели моделируйте ее и проверяйте результаты и эффективность. Если вы решили, что хотите восстановить предыдущее поведение симуляции, измените параметр конфигурации модели Solver с auto (Automatic solver selection) на ode23t (mod.stiff/Trapezoidal).

См. также

Похожие темы