Project 2 - Speed Control of a Direct Current (DC) motor
Introduction:-
It seems like you have a project where you need to create a Simulink model for a DC motor based on a given schematic. You are also required to use your knowledge of proportional, integral, and derivative (PID) control to design, develop, and test a controller that will maintain a desired speed for the motor.
To begin, you can create a Simulink model for the DC motor based on the schematic shown in Figure 1. Once the model is created, you can then use the PID control design principles you have learned to design a controller.
The PID controller consists of three terms: the proportional term, the integral term, and the derivative term. These terms are combined to create an output signal that is used to control the motor's speed.
The proportional term adjusts the output signal based on the current error, which is the difference between the desired speed and the current speed of the motor. The integral term takes into account the past errors and adjusts the output signal accordingly. The derivative term predicts the future error based on the current rate of change and adjusts the output signal accordingly.
By combining these three terms, you can create a PID controller that will maintain the desired speed for the motor. Once the controller is designed, you can test it using the Simulink model you created earlier.
simulink model steps:-
- Open Simulink and create a new model.
- From the Simulink Library Browser, navigate to the "Simulink" section and drag a "Step" block into the model. Connect the output of the "Step" block to the input of the DC motor block in Figure 1.
- Add a "Scope" block to the model and connect the output of the DC motor block to the input of the "Scope" block. This will allow you to observe the motor speed in real-time.
- From the Simulink Library Browser, navigate to the "Simulink Control Design" section and drag a "PID Controller" block into the model.
- Double-click on the "PID Controller" block to open the block parameters. Here, you can set the proportional, integral, and derivative gains to values that will control the motor speed appropriately.
- Connect the output of the "PID Controller" block to the input of the DC motor block.
- In the "PID Controller" block parameters, you can also set the desired speed for the motor.
- Run the simulation and observe the motor speed using the "Scope" block. Adjust the gains in the "PID Controller" block until the motor speed is maintained at the desired value.
- Test the controller by changing the desired speed and observing how the controller responds.
- Figure 1.
Equation: Error = Reference speed - Motor speed
Equation: Output = KpError + KiIntegral(Error) + Kd*Derivative(Error)
Equation: Kp is the proportional gain, Ki is the integral gain, and Kd is the derivative gain
Modelling of a DC Motor:-
J = Moment of Inertia of Rotor.
B = Damping Coefficient.
R = Armature resistance
L = Armature Inductance
Vb = Back emf constant
KT = Motor Torque Constant
V = Supply Voltage
Motor Torque T = KT * I
Back EMF Vb = Kb * ω = Kb * dθ/dt
Steps to find equation:-
As per Kirchhoff’s Voltage Law:-
V = IR + L (di/dt) + Vb
L (di/dt) + IR = V - Kb (dθ/dt) ----equ-(a)
As per Newtons Law :-
J (d2θ/dt2) + B (dθ/dt) = KT * I ----equ-(b)
Converting above equations to S domain (Laplace Transform)
Laplace of equ – (a)
LsI(s) + RI(s) = V(s) - Kbsθ(s) ----equ-(c)
I(s) = V(s) - Kbsθ(s)/Ls + R ---- equ-(d)
Laplace of equ – (b)
Js2 θ(s) + Bs θ(s) = KT * I(s) ---equ-(e)
ωs = s θ(s) = KT * I(s)/Js+B ----equ-(f)
Substitute I(s) value in equ-(e)
Js2 θ(s) + Bs θ(s) = KT * I(s) ---equ-(e)
Js2 θ(s) + Bs θ(s) = KT * (V(s) – Kbsθ(s))/ (Ls + R) ---equ-(g)
s θ(s)[(Js+B) * (Ls+R)] = KTV(s) – KT * Kbsθ(s)
s θ(s)[(Js+B) * (Ls+R)] + KT * Kbsθ(s)= KTV(s)
s θ(s)[(Js+B) * (Ls+R) + (KT * Kb)]= KT V(s)
Transfer function of output angle θ(s) to the input angle V(s) given by
Ga(s) = θ(s)/V(s) = KT / s[(Ls+R) * (Js+B) + (KT * Kb)] ----equ-(h)
Transfer function of output angle ω(s) to the input angle V(s) given by
Ga(s) = (s)/V(s) = KT / [(Ls+R) * (Js+B) + (KT * Kb)] ----equ-(i)
Simulink Modelling of DC Motor with PID Controller
simulink_subsystem:-
DC Motor with PID Controller Parameters
Dc motor parameters:-
%This file contains the design parameters to model the DC motor.
Jm = 0.01; % Moment of Inertia of the Rotor in KG-m2
Bm=0.1; %Motor viscosity is a constant in NMS.
Km=0.01; %Back emf constant in volts/radians/sec
Kt=0.01; %Motor star constant in n/meter/amperes
Ra=1.0; %Armature resistance in ohms
La=0.5; %Armature inductance in Henry
Pid design parameters for speed control of a DC (direct current)
% A and B parameters
%A = [-Bm/Jm Kt/Jm; -Km/La -Ra/La];
%B=[0 1/La];
A=[-Bm/Jm Kt/Jm; -Km/La -Ra/La];
B=[0 ;1/La];
B=B(:);
Pole placement design
fn=1.0; %Natural frequency in Hz
wn=2*pi*fn; %Natural frequency in radiant/second
zeta=0.5;
Pole p1 and p2 placement
p1=-zeta*wn+wn*sqrt(zeta^2-1);
p2=-zeta*wn-wn*sqrt(zeta^2-1);
p=[p1;p2];
k=place(A,B,p);
%end
Modelling of a DC Motor with PID controller
State Space equations for the DC Motor
State equations will be derived from equations (a) and (b)
dI/dt = - (R/L) I + (1/L) V – (Kb/L) d/dt
dI/dt = - (R/L) I + (1/L) V – (Kb/L) ω dI/dt
dω/dt= - (B/J) ω + (1/J) KTI
Y(t) = ω = d/dt
A state space representation of the DC motor from above equations
Modelling of DC Motor with PID Controller
What is PID Controller?
A proportional-integral-derivative controller (PID controller or three-term controller) is a control loop mechanism employing feedback that is widely used in industrial control systems and a variety of other applications requiring continuously modulated control. The proportional integral derivative controller produces an output, which is the combination of the outputs of proportional, integral, and derivative controllers. The feedback from the plant whichever is a controllable parameter is given as input to the PID controller and the processed error is minimized to get the desired output if tuning of the parameter is done optimally. The mathematically PID controller can be defined by the following equation where e(t) is the error signal with respect to time, Kp, Ki and KD are PID constants.
Apply Laplace transform on both sides.
The parameter which is under control must have some properties or free from some properties such as rise time, settling time, overshoot and steady state error. The impact of PID parameters on such properties can be found in the below table.
Rise Time
Rise time is defined as the time taken for a signal to cross from a specified low value to a specified high value. In analog and digital electronics, the specified lower value and specified higher value are 10% and 90% of the final or steady-state value. So, the rise time is typically defined as how long it takes for a signal to go from 10% to 90% of its final value.
Settling Time
The settling time of a dynamic system is defined as the time required for the output to reach and steady within a given tolerance band. It is denoted as Ts. Settling time comprises propagation delay and time required to reach the region of its final value. It includes the time to recover the overload condition incorporated with slew and steady near to the tolerance band.
The tolerance band is a maximum allowable range in which the output can be settle. Generally, the tolerance bands are 2% or 5%.
Peak Over Shoot
(MP) is defined as the deviation of the response at the peak time from the final value of the response. it is also called the maximum overshoot. We can write it as
Steady State Error
Steady-state error is defined as the difference between the desired value and the actual value of a system output in the limit as time goes to infinity (i.e., when the response of the control system has reached steady-state).
Steady-state error is a property of the input/output response for a linear system. In general, a good control system will be one that has a low steady-state error.
Stability of the System
A system is stable if every bounded input yields a bounded output. We call this statement the bounded-input, bounded-output (BIBO) definition of stability.
The stability of a linear closed loop system can be determined from the locations of the closed loop poles in the s-plane.
The location of poles of the transfer function decides the stability of the system. Which is shown in the above figure for critically stable, unstable, and stable systems.
For our case, the transfer function is determined from the constants of motor and state space equations.
workspace:-
workspace_variable:-
command_window:-
To design a closed loop control scheme for a DC motor the following changes need to be done in the model in the previously created model.
Speed is the controllable parameter, so we will set the reference speed in step block as 10.20, 40 whichever we want.
- Subtract the actual speed from the reference speed to generate the error signal e(t)
- Add Kp as K(1) and Kd as K(2) parameter determined from place command (K-place(A.B.P)). (use gain block to mention values of Kp, Kd, and Ki)
- The feedback for Kd is provided from the error speed signal.
- Add Ki manually with gain and integrator block and tune different values of Ki and check the impact of it on results.
Values of Kp, Kd & Ki choosen for Controller Design
From the pole placement we got Kp and Kd values and assumed the Ki value as 0.4
Kp = 38.3133
Kd = -2.8584
Ki = 100
Control Design Objectives to Meet
Settling time < 2s
Overshoot < 5%
Steady State error < 1%
Result_output:-
Result
The below response shows the speed of the DC Motor Vs Reference speed. The reference speed given through step function. In this step time considered as t=5sec, initial value taken as 0 and final value is 5.
Observation
From the above graph we can observe that the speed of the motor is following the reference speed of 20rad/sec. by satisfying the control design objectives of settling time (< 2s) Overshoot (< 5%) Steady State error (< 1%) was achieved for the control parameters values of
Kp = 38.3133
Kd = -2.8584
Ki = 100
We have to verify how the speed of the motor changing with the change in reference speed.
Observation
From the above graph we can observe that the speed of the motor is following the reference speed, initially it is 50rad/sec and changes to 90rad/sec and also it is satisfying the control design objectives of settling time (< 2s) Overshoot (< 5%) Steady State error (< 1%) was achieved for the control parameters values of
Kp = 38.3133
Kd = -2.8584
Ki = 100
From this we got to know that the speed of the motor will follow the reference speed for any value of change in reference speed.