A Neutral Time-Delay System

Connecting a first-order-plus-time-delay model with a PID controller gives a neutral time-delay system. Neutral time-delay systems have delays on the highest-order term in the denominator.

 In[1]:= X{foptd, pid} = {TransferFunctionModel[ Unevaluated[{{(1. E^- s)/(1 + 0.125 s)}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], TransferFunctionModel[1 + 1/(10 s) + s/8, s]};
 In[2]:= Xnsys = SystemsModelFeedbackConnect[foptd, pid]
 Out[2]=

When the input has a discontinuity, it is repeated at each multiple of the delay.

 In[3]:= Xnsys = SystemsModelFeedbackConnect[foptd, pid]; OutputResponse[nsys, UnitStep[t - 1], {t, 0, 10}]; Plot[{%, UnitStep[t - 1]}, {t, 0, 10}, PlotStyle -> {Automatic, Dashed}]
 Out[3]=
 In[4]:= X{foptd, pid} = {TransferFunctionModel[ Unevaluated[{{(1. E^- s)/(1 + 0.125 s)}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], TransferFunctionModel[1 + 1/(10 s) + s/8, s]};; OutputResponse[nsys, UnitStep[t - 1], {t, 0, 10}]; Plot[{%, UnitStep[t - 1]}, {t, 0, 10}, PlotStyle -> {Automatic, Dashed}]; OutputResponse[nsys, Cos[t], {t, 0, 10}]; Plot[{%, Cos[t]}, {t, 0, 10}, PlotStyle -> {Automatic, Dashed}]
 Out[4]=
 In[5]:= X{foptd, pid} = {TransferFunctionModel[ Unevaluated[{{(1. E^- s)/(1 + 0.125 s)}}], s, SamplingPeriod ->None, SystemsModelLabels -> None], TransferFunctionModel[1 + 1/(10 s) + s/8, s]};; OutputResponse[nsys, Cos[t], {t, 0, 10}]; Plot[{%, Cos[t]}, {t, 0, 10}, PlotStyle -> {Automatic, Dashed}]; OutputResponse[nsys, SquareWave[t/8.5], {t, 0, 10}]; Plot[{%, SquareWave[t/4]}, {t, 0, 10}, PlotStyle -> {Automatic, Dashed}]
 Out[5]=