DASSL - неявный решатель, и поэтому он должен уметь хорошо работать с жесткими системами. Тем не менее кажется, что за <2 с нужно выполнить более 500 шагов, так как это ваш выходной интервал (который вызывает сообщение). В вашем случае это может быть связано с быстрой динамикой, которая происходит внутри модели. </p>
По поводу ваших вопросов:
- Если модель имитирует до конца, проверьте контролируемые переменные и посмотрите, имеют место быстрые колебания (частота> 100 Гц). Это может произойти при увеличении пропорционального усиления контроллера, что делает всю систему «менее стабильной».
- Общие рекомендации по этому вопросу довольно трудны, но библиотека
linearSystems2
может помочь. Создание «Полного линейного анализа» дает список состояний и то, как они соотносятся с полюсами. Полюса с самой высокой частотой обычно отвечают за жесткость и от наблюдения, какие состояния относятся к полюсам интереса, указывает, какие состояния исследовать. Путь от состояния к параметру зависит от разработчика моделей - по крайней мере, я не знаю общего совета по этому поводу.
Для 2. применительно к Modelica.Blocks.Examples.PID_Controller
результат выглядит следующим образом: Видя, что, вероятно, пружина вызывает самые быстрые состояния в системе.