Upload
elyar-aireti
View
216
Download
0
Embed Size (px)
Citation preview
7/30/2019 Control Theory Project Writeup
1/13
Control Theory - Project
Modeling and Control of 1 DOF Robot with
Flexible Link
Submitted on August 13, 2010
Barbar Moawad
102713284Brendan Dills
102724578
Juan Palacio
102352351
Lee Mitch Tome
102719640
7/30/2019 Control Theory Project Writeup
2/13
2
Given
Figure 1 shows an electro-mechanical system of a Single Joint robot model with flexible link.
Figure 1: Single Joint Robot with Flexible Link
It can be seen in the figure above that the dynamics of the robot are controlled by the torqueoutput of the armature-controlled DC motor. The mechanical component of this system is
characterized by a gear system that connects the driving shaft to the link.
Graph 1 shows the torque-speed curve of the systems DC motor.
Graph 1: Torque-Speed Curve of the Motor
It can be understood from the graph above that when the motor reaches its stall torque, it stopsspinning. It also reaches its maximum rotational speed at no-load condition.
7/30/2019 Control Theory Project Writeup
3/13
3
The following list of nomenclature will be needed in order to understand the different
annotations for different components of this project:
Ja [kgm2 ] - Armature Inertia
Da [radNms ] - Armature Damping Coefficient
Ra [ohm] - Armature ResistanceLa [sohm ] - Armature Inductance
aI[A ] - Armature Current
Va [V] - Armature VoltageTstall[Nm] - Stall Torque
noload[srad] - No-load angular velocity
JL [kgm2 ] - Load Inertia
DL [radNms ] - Load Damping Coefficient
Nm - Number of teeth of the input gear (motor gear)NL - Number of teeth of the output gear (load gear)
kL[mN] - Spring Coefficient
Table 1 shows the useful given values:
Table 1: Useful Values
The purpose of this project is: To design a controller that will monitor the robot armsdynamics. Fine tuning was made to obtain the desired output.
7/30/2019 Control Theory Project Writeup
4/13
7/30/2019 Control Theory Project Writeup
5/13
5
The same equation applies to the link shaft except for a small variation:
()
()
In order to get rid of any confusion, link components will have the transcript m.
Part 3:The transfer function for the output shaft is the following:
The transfer function for the link shaft is as shown below:
Part 4:
Figure 2 is the block diagram for the unity feedback control system:
Figure 2: Block Diagram of the System
Part 5:
km could be found at the stall torque:
which becomes:
7/30/2019 Control Theory Project Writeup
6/13
7/30/2019 Control Theory Project Writeup
7/13
7
a0 = den(1);a1 = den(2);a2 = den(3);a3 = kp + den(4);b1 =(a1*a2 - a0*a3)/a1;kcr = double(solve(b1));% kcr = 1.0046e+004i=sqrt(-1);eq1 = a0*(i*w)^3+a1*(i*w)^2+a2*i*w+a3+kcr;w_found = subs(subs(solve(eq1),kp,kcr),kp,kcr);w_cr = abs(w_found(1));% w_cr = 27.5503Pcr = 2*pi/w_cr;% Pcr = 0.2281
Part 8:%% Question 8%% P controllerkp1 = 0.5*kcr;% kp1 = 5.023028647379596e+03syscl_P = feedback(kp1*sys,1);step(syscl_P);S_P = stepinfo(syscl_P,'RiseTimeLimits',[0.1 0.9])
%{S_P =
RiseTime: NaNSettlingTime: NaNSettlingMin: NaNSettlingMax: NaN
Overshoot: NaNUndershoot: NaN
Peak: InfPeakTime: Inf
%}
7/30/2019 Control Theory Project Writeup
8/13
7/30/2019 Control Theory Project Writeup
9/13
9
Graph 3: Step Response from the PI-Controller
%% PID controller
kp3 = 0.6*kcr;
% kp3 = 6.027634376855515e+03Ti3 = 0.5*Pcr;Td3 = 0.125*Pcr;ki3 = kp3/Ti3;% ki3 = 5.285953900110588e+04kd3 = kp3*Td3;% kd3 = 1.718345300944181e+02control_PID = tf([kd3 kp3 ki3], [1 0]);syscl_PID = feedback(control_PID*sys,1);step(syscl_PID);S_PID = stepinfo(syscl_PID,'RiseTimeLimits',[0.1 0.9])
%{
S_PID =
RiseTime: 0.0270SettlingTime: 0.4346SettlingMin: 0.7904SettlingMax: 1.4796
Overshoot: 47.9589Undershoot: 0
Peak: 1.4796PeakTime: 0.0775
7/30/2019 Control Theory Project Writeup
10/13
10
%}
Graph 4: Step Response from the PID-Controller
Part 9:%% Question 9 (Tuned PID controller)
kp_t = 186;ki_t = 40;kd_t = 200;control_t = tf([kd_t kp_t ki_t],[1 0]);syscl_t = feedback(control_t*sys,1)step(syscl_t)S_t = stepinfo(syscl_t,'RiseTimeLimits',[0.1 0.9])
%{S_t =
RiseTime: 0.0586SettlingTime: 0.1052SettlingMin: 0.9047SettlingMax: 1.0000
Overshoot: 0.0024Undershoot: 0
Peak: 1.0000PeakTime: 0.2253
%}
7/30/2019 Control Theory Project Writeup
11/13
11
Graph 5: Step Response from the Tuned PID-Controller
Part 10:
%% Question 10
for i=0:1:20kl = i;k=kl;num=km;den=[Jm*La La*Dm+Ra*Jm La*k+Ra*Dm+km*kb Ra*k];sys=tf(num,den);[wn,Z,P] = damp(sys);eival = imag(P(1));eivaln = imag(P(2));plot(k,eival,'bx',k,eivaln,'rx')title('Immaginary roots as the value of kl is increased')
xlabel('Value of kl')ylabel('Immaginary value')hold on
endhold off
7/30/2019 Control Theory Project Writeup
12/13
12
Graph 6: Systems Roots for 0
7/30/2019 Control Theory Project Writeup
13/13
13
There are no imaginary roots up around a 2.5 value of kL, from there and on one of the roots
increases while the other decreases in a symmetric fashion along the horizontal axis as shown in
graph 7.
Conclusion
This project proved how an electro-mechanical problem link can be controlled using computer
programming. The process was done by first finding all the useful characteristics, thendeveloping the equations of motion and the transfer functions. The transfer functions were then
used in a Matlab code in which P, PI and PID controllers were developed.
It could be seen from the three graphs that the P and PI controllers were very unstable,
witnessing an exponential increase in oscillation. The PID controller, on the other hand, showed
a greater stability and followed a desired pattern, but fine tuning was needed to make
improvements in the response. The main purpose of the tuning was to only reduce the overshoot
since the rise time was satisfying in the pre-tuned controller. The relation between kL and theEigen values was found using a for-loop that yielded two comprehensive graphs. These graphs
showed that as kL increased the Eigen values become imaginary.
As a result the steps above reflected what controlling a robotic link using Control Theory and its
tools (Matlab and Simulink) looks like.