Manipulate[ (*by Nasser M. Abbasi, oct 21, 2015*) Module[{sol,out1,out0,kLow,kHigh,sys1,sys0,t,p,x,y}, sol=Reduce[f[k,Rationalize@z,Rationalize@gamma]<=1&&g[k]<=Rationalize@eps&&k>0,k,Reals]; If[sol===False, out1={}; sol=Style[Text["No K was found, please try again"],12] , {kLow,kHigh}=N@sol/.Inequality[x_,LessEqual,k,LessEqual,y_]->{x,y}; (*sys=TransferFunctionModel[ kLow/(1+kLow) wNew[wn,kLow]^2/(s^2+2*zNew[z,kLow]*wNew[z,kLow]*s+wNew[z,kLow]^2),s];*) sys1=TransferFunctionModel[ kLow wn^2/(s^2+2*z*wn *s+wn^2(1+kLow)),s]; out1=OutputResponse[sys1,UnitStep[t],{t,0,timeRange}]; sol=N@sol ]; sys0=TransferFunctionModel[ wn^2/(s^2+2*z*wn *s+wn^2),s]; out0=OutputResponse[sys0,UnitStep[t],{t,0,timeRange}]; If[out1==={}, p=Plot[{1,out0},{t,0,timeRange},PlotRange->All,GridLines->Automatic, GridLinesStyle->LightGray, ImageSize->400, PlotStyle->{Dashed,Red} ,Frame->True,FrameLabel->{{"y(t)",None},{"time (sec)","Step response (G(s) only)"}} ,ImagePadding->All ] , p=Plot[{1,out1,out0},{t,0,timeRange},PlotRange->All,GridLines->Automatic, GridLinesStyle->LightGray, ImageSize->400, PlotStyle->{Dashed,Blue,{Dashed,Thin,Red}} ,Frame->True,FrameLabel->{{"y(t)",None},{"time (sec)","Step response (Blue is T(s), red is G(s)))"}} ,ImagePadding->All ] ]; Grid[{ {Pane[sol,ImageSize->{400,20},Alignment->Center]}, {Pane[Row[{"(open loop) G(s)=Subsuperscript[\[Omega], n, 2]/(s^2+2Subscript[\[Xi]\[Omega], n]s+Subsuperscript[\[Omega], n, 2])=",wn^2/(s^2+2 z wn s+wn^2)}],ImageSize->{400,40},Alignment->Center]}, If[out1==={}, {Pane[Row[{"(closed loop) T(s)=( k Subsuperscript[\[Omega], n, 2])/(s^2+2Subscript[\[Xi]\[Omega], n]s+(1+k)Subsuperscript[\[Omega], n, 2])= ??"}],ImageSize->{400,40},Alignment->Center]}, {Pane[Row[{"(closed loop) T(s)=( k Subsuperscript[\[Omega], n, 2])/(s^2+2Subscript[\[Xi]\[Omega], n]s+(1+k)Subsuperscript[\[Omega], n, 2])=",(kLow*wn^2)/(s^2+2 z wn s+kLow* wn^2)}],ImageSize->{400,40},Alignment->Center]} ], {Pane[p,ImageSize->400,Alignment->Center]}},Frame->All,Alignment->Center ] ], {{z,0.1,Row[{"damping (",\[Xi],")"}]},0.01,0.99,0.01,Appearance->"Labeled",ImageSize->Small}, {{gamma,1.4,Row[{ "Subscript[y, max] (",\[Gamma],") \[LessSlantEqual] "}]},1,2,.01,Appearance->"Labeled",ImageSize->Small}, {{eps,0.29,Row[{"|Subscript[y, ss]-1| (",\[Epsilon],") \[LessTilde]"}]},0.01,0.4,.01,Appearance->"Labeled",ImageSize->Small}, {{wn,0.1,Subscript[\[Omega], n]},0.01,0.4,.01,Appearance->"Labeled",ImageSize->Small}, {{timeRange,400,"range"},10,1000,1,Appearance->"Labeled",ImageSize->Small}, ContinuousAction->False, SynchronousUpdating->False,ControlPlacement->Left,Alignment->Center,ImageMargins->0,FrameMargins->0, TrackedSymbols:>{z,gamma,eps,wn,timeRange}, Initialization:> { zNew[z_,k_]:=z/Sqrt[1+k]; wNew[wn_,k_]:=wn*Sqrt[1+k]; f[k_,z_,gamma_]:=Module[{}, Log[k/(gamma *(1+k)-k)]1/Pi * Sqrt[1-zNew[z,k]^2]/zNew[z,k] ]; g[k_]:=1/(1+k); } ]