Project - Speed Control of a Direct Current (DC) motor
we create a DC machine model and connect it to a control where we take the speed of the armature as reference and compare it with the output speed of the rotor.
We consider the motor parameters as given below for a natural working condiotion.
moment of inertia of rotor J as 0.01 Kgm^2
Motor viscous friction constant B1 as 0.1 NMs
Back emf constant Km as 0.01 V/rad/s
motor torque constant Kt 0.01 NM/Ampere
Armature resistance Ra = 1.000 ohm
Armature inductance La = 0.5 Henry
We also consider the DC Motor parameters to
m = 100, k = 3944 and we set frequency Fn = 1.
Wn = 2*pi*Fn = 6.28
we evaluate Wn for the spring coefficient and mass terms,
Wn^2 = k/m = 39.44
Now Wn = sqrt Wn^2 = 6.28
Design paramters of spring mass system
zeta = 0.5
A = [0 1 ; -k/m 0]
B = [0 ; 0.01 ]
Now using roots command, we evaluate the poles and create the poles matrix as shown below
P = [-3.141592653589793 + 5.441398092702653i;-3.141592653589793 - 5.441398092702653i]
We get the propotional and derivate gain from the place command,
ie,
K = place (A,B,P)
which gives Kp = 3.841760435743424 , Kd = 6.283185307179585e+02
After deriving all the required parameters we create the model as shown below.

Now we set the Ki value as Zero and run the simulation. and plot 6 graphs to understand the system. The graph is given below.

As we can see there is no remarkable change in the overall graphs, we change the Ki to 5000 and simulate again.

Now we can see the output angular velocity reaching the desired output. so we increase the Ki to 10,000 and simulate.

Now the settling time decreased to 3.5 sec , inorder to achieve optimum solution we increase Ki again and find the results
We set Ki to 30,000 .

Now the settling time decreased to 1.5 sec and the slight overshoot is visible . We further increase the Ki to 35,000 , Kd to 680 and Kp to 3 and study the outcome.

Now this can be considered as optimum solution where the settling time is 1.5 sec the overshoot is inside the 5% of output and the steady state error is below 1% of Output.