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

Советы и методы по поиску и устранению проблем

Simscape™ симуляции могут остановиться перед завершением с одним или несколькими сообщениями об ошибке. В этом разделе рассматриваются типовые типы ошибок и стратегии исправления ошибок. Можно найти предыдущий раздел «Как работает Симуляция», полезный для идентификации и трассировки ошибок.

Если не удалось выполнить симуляцию:

  • Проверьте строение модели. Если ваше сообщение об ошибке содержит список блоков, сначала проверьте эти блоки. Также проверьте:

    • Неправильные соединения - Проверьте, что модель имеет смысл как физическая система. Например, найдите приводы, соединенные друг с другом, чтобы они пытались двигаться в противоположных направлениях или неправильные соединения с ссылочными узлами, которые препятствуют движению. В электрических схемах проверьте полярность и соединения с землей.

    • Неправильные модули - Simscape unit manager предлагает большую гибкость в использовании физических единиц измерения. Однако необходимо проявлять осторожность при определении правильных модулей, особенно в блоках Simulink-PS Converter и PS-Simulink Converter. Начните анализировать схему, открывая все блоки конвертера и проверяя правильность заданных модулей.

  • Попытайтесь упростить схему. Ненужная сложность схемы является наиболее распространенной причиной ошибок симуляции.

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

  • Создайте систему, постепенно увеличивая ее сложность.

Рекомендуется создание, моделирование и тестирование вашей модели пошагово. Начните с идеализированной, упрощенной модели своей системы, промоделируйте ее, проверьте, что она работает должным образом. Затем пошагово улучшайте свои модели более реалистичными эффектами, такие как потери на трение, податливость вала мотора, жёсткие упоры и другие вещи, описывающие явления реального мира. Моделируйте и тестируйте свою модель на каждом инкрементном шаге. Используйте подсистемы, чтобы захватить иерархию модели, и моделировать и тестировать свои подсистемы отдельно перед тестированием всего строения модели. Этот подход помогает вам держать ваши модели хорошо организованными и облегчает их устранение.

Ошибки строения системы

Отсутствующий блок Solver Configuration

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

Если вы получите сообщение об ошибке о отсутствующем блоке Solver Configuration, откройте библиотеку Simscape Utilities и добавьте блок Solver Configuration в любом месте схемы.

Блок дополнительных свойств жидкости или газа

Если ваша модель содержит гидравлические элементы, каждая топологически отличная гидравлическая схема в схеме требует, чтобы к ней был подключен Custom Hydraulic Fluid блок (или Hydraulic Fluid блок, доступный с Simscape Fluids™ библиотеками блоков). Эти блоки определяют свойства жидкости, которые действуют как глобальные параметры для всех блоков, соединенных с гидравлической схемой. Если ни один блок гидравлической жидкости не присоединен к циклу, блоки Гидравлики в этом цикле используют жидкость по умолчанию. Однако более одного блока гидравлической жидкости в цикле генерирует ошибку.

Точно так же более одного блока Thermal Liquid Settings (TL) в тепловой гидравлической схеме, Two-Phase Fluid Properties (2P) блока в двухфазной гидравлической схеме или Gas Properties (G) блока в газовой схеме генерирует ошибку.

Если вы получите сообщение об ошибке о слишком большом количестве доменных блоков глобальных параметров, присоединенных к сети, найдите дополнительный блок Hydraulic Fluid, Custom Hydraulic Fluid блок, Thermal Liquid Settings (TL) блок, Two-Phase Fluid Properties (2P) блок или Gas Properties (G) блок и удалите его.

Отсутствующий ссылочный блок

Библиотеки Simscape содержат специфичные для домена опорные блоки, которые представляют опорные точки для портов сохранения соответствующего типа. Например, каждая топологически отличная электрическая цепь должна содержать по крайней мере один блок Electrical Reference, который представляет соединение с землей. Точно так же гидравлические порты всех блоков, которые относятся к атмосфере (для примера, порты всасывания гидравлических насосов или порты возврата клапанов, цилиндров, трубопроводов, если они считаются непосредственно соединенными с атмосферой), должны быть соединены с блоком Гидравлической Ссылки, который представляет связь с атмосферным давлением. Механические переводные порты, жестко зажатые к системе координат (земле), должны быть соединены с блоком Механической Ссылки и так далее.

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

Основные ошибки в представлении физической системы

Физические системы представлены в среде моделирования Simscape как Физические сети в соответствии с обобщенными законами схем Кирхгофа. Определенные модели строений нарушают эти законы и поэтому являются незаконными. Существует два широких нарушения:

  • Источники специфичных для области переменных Across, соединенных параллельно (для примера, источников напряжения, источников гидравлического давления или источников скорости)

  • Источники специфичных для области переменных Through, соединенных последовательно (для примера, источников электрического тока, гидравлических источников скорости потока жидкости, источников силы или крутящего момента)

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

Пример.  Модель, показанная на следующем рисунке, содержит два Идеальных Источника Поступательной Скорости, соединенных параллельно. Это создает цикл из независимых источников скорости, и решатель не может создать последовательную систему уравнений для схемы.

Когда вы пытаетесь симулировать модель, решатель выдает сообщение об ошибке со ссылками на Идеальный Источник Переводной Скорости и Идеальная Скорость Source1 блоков. Чтобы исправить схему, можно либо заменить два источника скорости на один Идеальный Источник Поступательной Скорости, либо добавить между ними блок Поступательного Демпфера.

Проблемы численной симуляции

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

Зависимые динамические состояния

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

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

Разрывы параметров

Нелинейные параметры, зависимые от времени или других переменных, могут также привести к проблемам численной симуляции в результате разрыва параметра. Эти проблемы обычно проявляются на переходном этапе инициализации (см. Transient Simulation Issues).

Начальные условия решают отказ

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

  • Ошибка строения системы. В этом случае окно Simulation Diagnostics обычно содержит дополнительные, более конкретные, сообщения об ошибке, такие как отсутствующий ссылочный узел или предупреждение о уравнениях компонента, далее список задействованных компонентов. Для получения дополнительной информации см. ошибки строения системы».

  • Зависимое динамическое состояние. В этом случае окно Simulation Diagnostics также может содержать дополнительные, более конкретные, сообщения об ошибке, такие как предупреждение о уравнениях компонента, далее список задействованных компонентов. Смотрите Зависимые Динамические Состояния для получения дополнительной информации.

  • Остаточный допуск может быть слишком плотным, чтобы создать последовательное решение алгебраических ограничений в начале симуляции. Можно попытаться увеличить Consistency Tolerance значения параметров (то есть ослабить допуск) в блоке Solver Configuration.

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

Переходные проблемы симуляции

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

Переходная инициализация, не сходящаяся

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

Можно также попытаться уменьшить значение параметров Consistency Tolerance (то есть ужесточить допуск) в блоке Solver Configuration.

Ошибки, связанные с размером шага - Зависимые состояния - высокая жесткость

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

  • Затяните допуск решателя (уменьшите Relative Tolerance значения параметров в диалоговом окне Параметров конфигурации)

  • Задайте значение, кроме autoдля параметра Absolute Tolerance в диалоговом окне Параметров конфигурации. Экспериментируйте с этим значением параметров.

  • Затяните остаточный допуск (уменьшите значение параметров Consistency Tolerance в блоке Solver Configuration)

  • Увеличьте значение параметра Number of consecutive min step size violations allowed в диалоговом окне Параметров конфигурации (установите его на значение, больше, чем количество последовательных нарушений размера шага, заданных в сообщении об ошибке)

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