1
votes

I'm trying to use sisotool to design a controller for a flight control class. G=1/((s+0.1)(s+0.5)) and H=1/(s+1). Steady state error must be 0, rise time must be < 10 seconds, and max overshoot must be < 10%. So I set it up as follows:

% set up dynamic
gNum = [1];
gDen = conv([1 .1],[1 .5]);
G = tf(gNum,gDen)

% set up sensor
hNum = [1];
hDen = [1 0];
H = tf(hNum,hDen)

% find poles
poles = roots(conv(gDen,hDen))

% plot
sisotool(G,1,H,1)

I loosely adjust the gain so that its stable. So right now I've got C = 0.00445. I pull up the step response plot and see that my final value is 0 and I need it at 1. I've fiddled with adding and adjusting real poles and integrators but nothing moves the final value. I'm confident I can get the rise time and overshoot parameters met but I have no idea how to get the final value to 1. The second problem in this assignment gives a final value of 10. I know I can set F = 0.1 to get that one down to 1, but I don't think we're supposed to do that.

1

1 Answers

0
votes

You are specifying your sensor (H) to be an integrator. That is highly unusual, and by its very nature says that at steady state, the value of output y must be 0.

You'll never get it to track a step, unless F is also an integrator. However in that case two of your signals will integrate up to infinity, which may work in simulation, but can't be done in any practical system.

Of course, careful comparison of your text description of what H should be, and what you actually have in your code, would also overcome the problem.