CTMS Example - Motor Position Control Modeling
CTMS Example - Motor Position Control Modeling
htm
Physical Setup
A common actuator in control systems is the DC motor. It
directly provides rotary motion and, coupled with wheels or
drums and cables, can provide transitional motion. The electric
circuit of the armature and the free body diagram of the rotor are
shown in the following figure:
For this example, we will assume the following values for the physical parameters. These values were
derived by experiment from an actual motor in Carnegie Mellon's undergraduate controls lab.
System Equations
The motor torque, T, is related to the armature current, i, by a constant factor Kt. The back emf, e, is
related to the rotational velocity by the following equations:
From the figure above we can write the following equations based on Newton's law combined with
Kirchhoff's law:
1. Transfer Function
By eliminating I(s) we can get the following transfer function, where the rotating speed is the output and
the voltage is an input.
However during this example we will be looking at the position, as being the output. We can obtain the
position by integrating Theta Dot, therefore we just need to divide the transfer function by s.
2. State Space
These equations can also be represented in state-space form. If we choose motor position, motor speed,
and armature current as our state variab, we can write the equations as follows:
Design requirements
We will want to be able to position the motor very precisely, thus the steady-state error of the motor
position should be zero. We will also want the steady-state error due to a disturbance, to be zero as well.
The other performance requirement is that the motor reaches its final position very quickly. In this case,
we want it to have a settling time of 40ms. We also want to have an overshoot smaller than 16%.
If we simulate the reference input (R) by a unit step input, then the motor speed output should have:
No steady-state error
No steady-state error due to a disturbance
We can put the transfer function into MATLAB by defining the numerator and denominator as vectors:
Now let's see how the original open-loop system performs. Add the following command onto the end of
the m-file and run it in the MATLAB command window:
step(motor,0:0.001:0.2)
From the plot we see that when 1 volt is applied to the system, the motor position changes by 6 radians,
six times greater than our desired position. For a 1 volt step input the motor should spin through 1 radian.
Also, the motor doesn't reach a steady state which does not satisfy our design criteria
2. State Space
We can put the state space equations into MATLAB by defining the system's matrices as follows:
J=3.2284E-6;
b=3.5077E-6;
K=0.0274;
R=4;
L=2.75E-6;
A=[0 1 0
0 -b/J K/J
0 -K/L -R/L];
B=[0 ; 0 ; 1/L];
C=[1 0 0];
D=[0];
motor=ss(A,B,C,D);
Modeling Examples
Cruise Control | Motor Speed | Motor Position | Bus Suspension | Inverted Pendulum | Pitch
Controller | Ball and Beam
Tutorials
MATLAB Basics | MATLAB Modeling | PID Control | Root Locus | Frequency Response | State Space
| Digital Control | Simulink Basics | Simulink Modeling | Examples