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

Для настройки ПИД регулятора существуют различные методики. Однако, иногда подстраивать коэффициенты приходится вручную, чтобы достичь технических требований предъявляемых к системе. Для реализации изменения параметров мы воспользовались инструментом Engee - маски ячеек.
Когда вы меняете значение любого коэффициента, код, скрывающийся под маской, запускается с новыми параметрами автоматически. После исполнения вы получаете новый результат. В нашем случае результатом будет график реакции системы на единичное ступенчатое воздействие.
Загрузите модель и попробуйте изменить какой-либо параметр.
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");
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)
Автоматическое обновление результата можно отключить, нажав на рядом с кнопкой запуска ячейки. Также вы можете менять максимальное, минимальное значение и шаг изменения параметра в коде под маской ячейки.