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

Демонстрация влияния коэффициентов ПИД регулятора на выходной сигнал системы управления

Рассмотрим САУ из модели pid_demo_mask.engee. Она стостоит из объекта управления и ПИД регулятора. В этом примере мы покажем, как можно управлять значениями коэффициентов ПИД регулятора из скрипта и анализировать результаты моделирования.

image.png

Для настройки ПИД регулятора существуют различные методики. Однако, иногда подстраивать коэффициенты приходится вручную, чтобы достичь технических требований предъявляемых к системе. Для реализации изменения параметров мы воспользовались инструментом Engee - маски ячеек.

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

Загрузите модель и попробуйте изменить какой-либо параметр.

In [ ]:
modelName = "pid_demo_mask";
PID_model = modelName in [m.name for m in engee.get_all_models()] ? engee.open( modelName ) : engee.load( "$(@__DIR__)/$(modelName).engee");
In [ ]:
K_p = 29.59 # @param {type:"slider", min:0, max:50, step:0.01}
K_i = 1.23 # @param {type:"slider", min:0, max:5, step:0.01}
K_d = 0.49 # @param {type:"slider", min:0, max:3, step:0.01}

results = engee.run( modelName )

PID_res_e_t = results["out"].time;
PID_res_e_d = results["out"].value;
PID_ref_e_d = results["ref"].value;

plot(PID_res_e_t , [PID_res_e_d PID_ref_e_d], legend = false)
plot!(title = "Результаты моделирования в Engee", ylabel = "Отклик", xlabel="Время, c")
xlims!(0,20)
Out[0]:

Автоматическое обновление результата можно отключить, нажав на image.png рядом с кнопкой запуска ячейки. Также вы можете менять максимальное, минимальное значение и шаг изменения параметра в коде под маской ячейки.

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