PID Tuning Rules

The process disturbance response using the Ziegler-Nichols tuning rule.

 In[1]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "ZieglerNichols"}, "DisturbanceOutput"]
 Out[1]=
 In[2]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "ZieglerNichols"}, "DisturbanceOutput"]; Plot[Evaluate@{OutputResponse[%, UnitStep[t - 5], {t, 0, 50}], UnitStep[t - 5]}, {t, 0, 50}, PlotRange -> All, Exclusions -> None]
 Out[2]=

Use the Kappa-Tau rule.

 In[3]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "KappaTau"}, "DisturbanceOutput"]
 Out[3]=
 In[4]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "KappaTau"}, "DisturbanceOutput"]; Plot[Evaluate@{OutputResponse[%, UnitStep[t - 5], {t, 0, 50}], UnitStep[t - 5]}, {t, 0, 50}, PlotRange -> All, Exclusions -> None]
 Out[4]=

Use the AMIGO rule.

 In[5]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "AMIGO"}, "DisturbanceOutput"]
 Out[5]=
 In[6]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "AMIGO"}, "DisturbanceOutput"]; Plot[Evaluate@{OutputResponse[%, UnitStep[t - 5], {t, 0, 50}], UnitStep[t - 5]}, {t, 0, 50}, PlotRange -> All, Exclusions -> None]
 Out[6]=

Use the Chien-Hrones-Reswick rule.

 In[7]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "ChienHronesReswick"}, "DisturbanceOutput"]
 Out[7]=
 In[8]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "ChienHronesReswick"}, "DisturbanceOutput"]; Plot[Evaluate@{OutputResponse[%, UnitStep[t - 5], {t, 0, 50}], UnitStep[t - 5]}, {t, 0, 50}, PlotRange -> All, Exclusions -> None]
 Out[8]=

Use the Cohen-Coon rule.

 In[9]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "CohenCoon"}, "DisturbanceOutput"]
 Out[9]=
 In[10]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "CohenCoon"}, "DisturbanceOutput"]; Plot[Evaluate@{OutputResponse[%, UnitStep[t - 5], {t, 0, 50}], UnitStep[t - 5]}, {t, 0, 50}, PlotRange -> All, Exclusions -> None]
 Out[10]=

Use the Lambda Tuning rule.

 In[11]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "LambdaTuning"}, "DisturbanceOutput"]
 Out[11]=
 In[12]:= XPIDTune[TransferFunctionModel[Unevaluated[{{1.0/(s + 1)^3}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], {Automatic, "LambdaTuning"}, "DisturbanceOutput"]; Plot[Evaluate@{OutputResponse[%, UnitStep[t - 5], {t, 0, 50}], UnitStep[t - 5]}, {t, 0, 50}, PlotRange -> All, Exclusions -> None]
 Out[12]=