Документация Engee
Notebook

Пружинно-депферная система с регулятором

Построим систему, в которой на массу действует усилие от источника силы, управляемого регулятором, и к которой подключены пружина и демпфер, что создает сложный режим движения системы.

Особенности модели

На вход системе подается импульсный сигнал с периодом 5 с, после которого находится PID регулятор, передающий в систему сигнал управления.

Изначальная скорость блока массы равна 10 м/с.

image.png

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

Запуск модели и анализ результатов

In [ ]:
model_name = "mass-spring-damper-with-controller";
model_name in [m.name for m in engee.get_all_models()] ? engee.open(model_name) : engee.load( "$(@__DIR__)/$(model_name).engee");
res = engee.run( model_name );
In [ ]:
Fпружина = collect( res["Пружина.F"] );
Fдемпфер = collect( res["Демпфер.F"] );
ctrl = collect( res["PID Controller.1"] );
Fисточник = collect( res["Force Source.F"] );
Pмасса = collect( res["Relative Translational Motion Sensor.2"] );
In [ ]:
gr()
plot(
    plot( Pмасса.time, Pмасса.value, label="Положение" ),
    ( plot( Fисточник.time, Fисточник.value, label="Источник" ); 
      plot!( Fпружина.time, Fпружина.value, label = "Пружниа" ); 
      plot!( Fдемпфер.time, Fдемпфер.value, label="Демпфер" ) ),
      layout=(2,1), lw=3
)
Out[0]:

Заключение

Параметры этого PID регулятора можно настраивать вручную или в ходе автоматизированной процедуры. Можно также менять параметры механической части, но ориентир остается одинаковым: снизить расхождение реакции системы и сигнала управления.

Блоки, использованные в примере