/// <summary> /// Optimize a controller for a specific control loop /// </summary> /// <param name="control_loop">The PT2-control (with damping bigger 1) loop in your Schematic</param> /// <param name="controller">The PI-controller you want to optimize</param> public static void Controller(PT2_wdb1 control_loop, Controller_PI controller) { if((control_loop._T1 / control_loop._T2)<=4.0f) //Absolute Optimum (BO) { controller._Vr = control_loop._T1 / (2 * control_loop._T2 * control_loop._Vs); controller._Tn = control_loop._T1; } else //Symmetry Optimum (SO) { controller._Vr = control_loop._T1 / (2 * control_loop._T2 * control_loop._Vs); controller._Tn = 4*control_loop._T2; } controller.recalc_coefficients(); }
/// <summary> /// Optimize a controller for a specific control loop /// </summary> /// <param name="control_loop">The PT2-control (with damping bigger 1) loop in your Schematic</param> /// <param name="controller">The P-controller you want to optimize</param> public static void Controller(PT2_wdb1 control_loop, Controller_P controller) { controller._Vr = control_loop._T1 / (2 * control_loop._T2*control_loop._Vs); controller.recalc_coefficients(); }