Я столкнулся с проблемой в моей 1D механической модели в OpenModelica, где очень небольшое изменение значения параметра трения кулона ниже определенного порога вызывает резко отличающееся поведение, и я получаю «Предупреждение: максимальное количество итераций достигнуто, но нет root найдено "в этом случае. Кажется, что оба связаны.
Конкретно в этом случае этот параметр является постоянным c моментом трения, который приводит к (как представляется, правдоподобным) результатам для значений> = 0,097524 Нм против <= 0,097523. , которые приводят к сильным колебаниям и предупреждению «нет root» (см. изображения ниже) </p>
Вопрос: Как я могу попытаться решить этот тип проблемы в целом в OpenModelica? Какие инструменты / журналы я могу посмотреть, чтобы помочь найти причину? Я не знаю, в какой момент появляется предупреждение, но у меня есть подозрение - есть ли способ проверить подробности?
Модель слишком сложна, чтобы публиковать здесь (imo), поскольку он имитирует протягивание гибкой веревки / фольги через несколько буферных элементов -> 975 уравнений, включая множество пользовательских компонентов (в основном элементы трения / контакта, использующие непрерывно дифференцируемые уравнения / сигмоидальные функции, а не условия if) - я хотел бы попытаться найти сначала вопрос сам, но я не знаю точно, с чего начать
Пример характера различной реакции (красный - крутящий момент двигателя, зеленый - скорость каната)
«Правдоподобный результат» для> = 0,097524 Нм момента трения
«Невероятный результат» для <= 0,097523 Нм момента трения <a href="https://i.stack.imgur.com/VnkMc.png" rel="nofollow noreferrer">
Теперь пороговые значения не кажутся точными значениями - если я изменю другие параметры, это немного изменит поведение. Для другого набора параметров, например, я получаю это поведение (и 6x нет root предупреждение, тогда как раньше было только 1 предупреждение)