/// <summary> /// Converting Interactive to Noninteractive Controller Algorithm. /// Only for P or PI controller. /// </summary> /// <param name="ctr">Interactive Controller Algorithm </param> public void Convert(ControllerInteractive ctr) { if (ctr.D == 0) { P = ctr.P; I = ctr.I; D = 0; } }
/// <summary> /// Converting Interactive to CentumPID Controller Algorithm. /// </summary> /// <param name="ctr">Interactive Controller Algorithm </param> public void Convert(ControllerInteractive ctr) { P = 100 * ctr.I / (ctr.P * (ctr.I + ctr.D)); I = ctr.I + ctr.D; D = ctr.I * ctr.D / (ctr.I + ctr.D); }
/// <summary> /// Converting Interactive to Parallel Controller Algorithm. /// </summary> /// <param name="ctr">Interactive Controller Algorithm </param> public void InterToParallelr(ControllerInteractive ctr) { P = ctr.P * (1 + ctr.D / ctr.I); I = ctr.P / ctr.I; D = ctr.P * ctr.D; }
/// <summary> /// Converting Interactive to Noninteractive Controller Algorithm. /// </summary> /// <param name="ctr">Interactive Controller Algorithm </param> public void Convert(ControllerInteractive ctr) { P = ctr.P * (1 + ctr.D / ctr.I); I = ctr.I + ctr.D; D = ctr.I * ctr.D / (ctr.I + ctr.D); }