Я строю модель Modelica, но при проверке модели ( Вот ссылка для скачивания модели ), она показывает локальную особенность, как на следующем скриншоте. ![enter image description here](https://i.stack.imgur.com/yoUHy.jpg)
, поэтому я удаляю код, показанный в сообщении об ошибке.
h[3]=(hout+hl)/2
, но, хотя модель проверяется нормально, существует серьезная проблема нелинейности, которая вызывает ошибка инициализации.
![enter image description here](https://i.stack.imgur.com/CuS3d.jpg)
Поэтому я пытаюсь удалить следующую строку кода:
h[1]=(hin+hv)/2
и модель не только проверяет, но и не вызывает проблем инициализации.
![enter image description here](https://i.stack.imgur.com/bovvH.jpg)
Мои вопросы:
- При отладке сингулярности модели сообщение об ошибке, показанное Димолой, может быть не источником сингулярности модели? Есть ли общий способ найти источник проблемы сингулярности? Или я должен анализировать уравнения в модели вручную?
Как минимизировать нелинейность модели Modelica и обеспечить сходимость? Я обнаружил, что эта проблема существует во многих областях, особенно в термогидравлических моделях c, и обнаружил, что одним из способов решения этой проблемы является способ, используемый в Thermao Power Library от Modelon и ThermoSysPro для EDF , эти две библиотеки делят модели или разъемы на два типа: поток и объем. Для обеспечения конвергенции необходимо использовать схему смещенной сетки, как показано на следующем снимке экрана.
Так есть ли другой способ решения проблемы нелинейности в моделях термогидравлики c? Есть ли общее мнение о том, как решить проблему нелинейности в моделях термогидравлики c?
![enter image description here](https://i.stack.imgur.com/nVAMW.jpg)