Remotely Control a Cooling Fan
Remotely Control a Cooling Fan
{fan, sensing, actuator, com, controller} = {StateSpaceModel[{{{-(1/10)}}, {{1}}, {{(1/10)}}, {{0}}}, SamplingPeriod -> None, SystemsModelLabels -> None], TransferFunctionModel[Unevaluated[{{E^-s δ}}], s, SamplingPeriod -> None, SystemsModelLabels -> None], TransferFunctionModel[{{{E^(-1/10*s)}}, 1}, s, SamplingPeriod -> None, SystemsModelLabels -> None], TransferFunctionModel[{{{E^(-1/2*s)}}, 1}, s, SamplingPeriod -> None, SystemsModelLabels -> None], TransferFunctionModel[Unevaluated[{{(25 + 22s/s)}}], s, SamplingPeriod -> None, SystemsModelLabels -> None]};y0 = OutputResponse[SystemsModelFeedbackConnect[SystemsModelSeriesConnect[controller, fan]], UnitStep[t - 2], {t, 0, 20}];
Plot[y0, {t, 0, 20}, PlotRange -> All]remotesys = SystemsModelSeriesConnect[actuator, SystemsModelSeriesConnect[fan, sensing]];
comsys = SystemsModelSeriesConnect[SystemsModelSeriesConnect[com, remotesys], com]y1 = OutputResponse[SystemsModelFeedbackConnect[SystemsModelSeriesConnect[controller, comsys /. δ -> 1 / 5]], UnitStep[t - 2], {t, 0, 10}];
Plot[%, {t, 0, 10}, PlotRange -> All]smith = SmithDelayCompensator[comsys, controller];
cl2 = SystemsModelFeedbackConnect[SystemsModelSeriesConnect[smith, comsys]];responses = Prepend[Table[OutputResponse[cl2 /. {δ -> del}, UnitStep[t - 2], {t, 0, 20}], {del, {1 / 5, 5, 10, 15}}], y0];Plot[responses, {t, 0, 20}, PlotRange -> All, PlotStyle -> Prepend[Table[Dashed, {4}], Thick], ImageSize -> Medium]