Ball & Beam Control - Root Locus
코딩과 교육/전문코딩 2008. 7. 26. 01:00The open-loop transfer function of the plant for the ball and beam experiment is given below:
To see the derivation of the equations for this problem refer to the ball and beam modeling page. A schematic of the closed loop system with a controller is given below:
.....K = (m*g*d)/(L*(J/R^2+m)); %simplifies input
.....num = [-K];
.....den = [1 0 0];
.....rlocus(num,den)
Now, run the m-file and you should see the following root locus plot:
The design criteria can also be plotted onto the root locus using the sgrid command. This command generates a grid of constant damping ratio and natural frequency. The damping ratio and natural frequency were found using the following equation, which relates the them to our percent overshoot (PO) and settling time (Ts) requirements:
.....sgrid(0.70, 1.9)
.....axis([-5 5 -2 2])
Lead Controller
A first order lead compensator tends to shift the root locus into the left-hand plane. For a more detailed description of lead compensators refer to the Lead & Lag Compensator Design page. A lead compensator has the form given below:
Now, let us add the controller to the plant and view the root locus. We will position the zero near the origin to cancel out one of the poles. The pole of our compensator will be placed to the left of the origin to pull the root locus further into the left-hand plane. Add the following lines of Matlab code to your m-file.
.....zo = 0.01;
.....po = 5;
.....numlead = [1 zo];
.....denlead = [1 po];
.....numl = conv(num,numlead);
.....denl = conv(den,denlead);
.....rlocus(numl,denl)
.....sgrid(0.70, 1.9)
Run your m-file in the Matlab command window and you should see the following:
Selecting a Gain
Now that we have moved the root locus into the left-hand plane, we may select a gain that will satisfy our design requirements. We can use the rlocfind command to help us do this. Add the following onto the end of your m-file.
.....[kc,poles]=rlocfind(numl,denl)
Go to the plot and select a point near those indicated by the cross mark on the plot below:
.....selected_point =
..... -2.4988+ 1.2493i
.....kc =
..... 37.3131
.....poles =
..... -2.4950+ 1.2493i
..... -2.4950- 1.2493i
..... -0.0101
Now, we can plot the response with this gain.
Plotting the Closed-loop Response
This value of kc can be put into the system and the closed-loop response to a step input of 0.25 m can be obtained. Add the following lines to your m-file to perform this analysis.
.....numl2 = kc*numl;
.....[numcl,dencl] = cloop(numl2,denl);
.....t=0:0.01:5;
.....figure
.....step(0.25*numcl,dencl,t)
Run your m-file and you select a point on the root locus similar to the selected point above. The step response should look like the following: