- 3. A simulation environment.
- 4. Step length considerations.
- 5. Modelling a second order system.
- 6. The complication of motor drive limits.
- 7. Practical controller design.
- 8. Adding dynamics to the controller.
- 9. Sensors and actuators.
- 12. Putting it into practice.
- 13. Observers.
- 14. More about the mathematics.
- 16. Solving the state equations.
- 17. Discrete time and the z operator.
- 18. Root locus.
- 19. More about the phase plane.
- 20. Optimisation and an experiment.
- 21. Problem systems.
18. Root locus.
npoles=3;
poles[0]= [ 0,0];
poles[1]= [ 0,0];
poles[2]= [-1,0];
nzeros=1;
zeros[0]= [-1/3,0];
var ds=.02;
var dw=.02;
function Blob(x,c){
Colour(c);
BoxFill(x[0]-ds/2,x[1]+dw/2,x[0]+ds/2,x[1]-dw/2);
}
function Blip(x,c){
Colour(c);
BoxFill(x[0]-ds/4,x[1]+dw/4,x[0]+ds/4,x[1]-dw/4);
}
function Showroots(){
for(i=0;i<npoles;i++){
Blob(poles[i],"black");
}
for(i=0;i<nzeros;i++){
Blob(zeros[i],"black");
Blip(zeros[i],"white");
}
}
ScaleWindow(-1.6,-1,1.6,1);
for(s[1]=-.98;s[1]<1;s[1]+=dw){
for(s[0]=-1.58;s[0]<1.6;s[0]+=ds){
getgain(s);
if(gain[1]>0){
Blob(s,"red");
}
if(gain[1]<0){
Blob(s,"yellow");
}
if(gain[0]>0){
Blip(s,"white");
}
}
}
DrawAxes(-1.5,-1,1.5,1);
Showroots();
Colour("black");
Label('Root locus - gain map',.5,.5);