EGA222: Electrical Machines Laboratory
EGA222: Electrical Machines Laboratory
Design and Implementation of a Cascade
SpeedCurrent Controllers for a Permanent Magnet DC Motor
Learning Outcomes:
 Introduction to modelbased simulation approach using MATLAB/Simulink,
 Designing of a Current Controller for a PMDC motor,
 Designing of a Speed Controller for a PMDC motor,
 Simulation and Testing of the Cascade SpeedCurrent controllers for a PMDC motor.
1 Cascade closedloop Control of a PMDC Motor
In this section, you will design a cascade control system which has two control loops of motor speed controller and armature current controller. The role of a controller is to generate trigger signals (ie, control voltage) for driving the PMDC motor. A block diagram of the cascade control system is shown in Fig. 1 with an inner current control loop and an outer speed control loop.
Figure 1: Equivalent Block Diagram of the Cascade Controller for the PMDC Motor
The control system in Fig. 1 consist of the PMDC motor (the plant to be controlled), the gain of the power electronics converter, the speed and current controllers. The speed controller generates the reference current for the current controller. Whereas, the current controller generates the control voltage for driving the PMDC motor.
KeyNote: The parameters of the PMDC motor is the same as in PartA (see the Table in Page 5 of the Pdf “PMDCPartA”). Note: K_{m }= K_{e }= K_{t}
1.1 Task 1:: Design the Current Controller of the PMDC Motor
In this exercise, we will use the famous Proportional Integral (PI) controller to control the armature current of the PMDC motor.
The PIbased current controller of the PMDC motor is given in (1)
where,
I_{a}_{−ref }represent the reference armature current from the speed controller, I_{a}_{−meas }represent the measured armature current from the PMDC motor, ω_{cc }= 2πf_{cc }represent the cutoff frequency of the current control loop in radians/second,
K_{pwm }= V_{in }= V_{a }is the power electronics gain, τ_{e }is the electrical
time constant of the PMDC motor =,
V_{con }is the control voltage output from the current control loop, which is subsequently used to drive the PMDC motor. Note: take f_{cc }= 300 Hz. 1. Complete Table 1.
Table 1: Parameter Selection for the PMDC motor’s Current Controller
Parameter 
Symbol 
Value 
Unit 
Cutoff frequency of current loop 
ω_{cc} 
rad/s 

Power electronics gain 
Kpwm 

Armature resistance 
R_{a} 
Ω 

Armature inductance 
L_{a} 
H 

PMDC electrical time constant 
τ_{e} 

Integral gain of current loop 
K_{ic} 

Proportional gain of current loop 
K_{pc} 
 Create a new Simulink Model (you can name it as “DesignofPMDCControllers”),
 Use (1) and Table 1 to build the current controller. Hint: Drag and drop the respectively blocks from the Simulink library.
Simulink Library Browser → Continuous → Integrator Limited;
Simulink Library Browser → Discontinuities → Saturation;
 Set the Upper and Lower limits of both the Saturation and Integrator blocks to +1 and 1 respectively,
 Add TWO input ports (In1) and ONE output ports (Out1) to your model, rename the input ports as Iaref and Iameas; rename the output port as Vcon. Simulink Library Browser → Sources → In1; Simulink Library Browser → Sinks → Out1; See Fig. 2 for reference.
Figure 2: MATLAB Simulink Model of the Current Controller
 Next, create a single module which represents the Current Controller: Click and drag the mouse to highlight all components of the current controller model; rightclick on a block within the model and select “Create Subsystem from selection”; rename the new module as “CurrentController”; and delete the input and output blocks and lines connecting to the module.
See Fig. 3 for reference,
Figure 3: MATLAB Simulink Module of the Current Controller
1.1 Task 2:: Design the Speed Controller of the PMDC Motor
In this section, we will also use the famous Proportional Integral (PI) controller to control the speed of the PMDC motor.
The PIbased speed controller of the PMDC motor is represented in (4)
where, ω_{m}_{−ref }represent the reference mechanical speed,
ω_{m}_{−meas }represent the measured mechanical speed from the PMDC motor, ω_{cw }= 2πf_{cw }represent the cutoff frequency of the speed control loop in radians/second,
J_{m }is PMDC motor’s equivalent moment of inertia,
K_{t }= K_{e }is PMDC motor’s torque constant,
Note take: f_{cw} = f_{cc}/10 = 30 Hz.
 Complete Table 2.
Table 2: Parameter Selection for the PMDC motor^{0}s Speed Controller
Parameter 
Symbol 
Value 
Unit 
Cutoff frequency of current loop 
ωcw 
rad/s 

Moment of inertia 
J_{m} 
Kg.m^{2} 

Torque constant 
K_{t} 
V.s/rad 

Integral gain of speed loop 
K_{iw} 

Proportional gain of speed loop 
K_{pw} 
 Maintain the same Simulink page from Task 1,
 Use (4) and Table 2 to build the speed controller. Hint: Drag and drop the respectively blocks from the Simulink library. See Fig. 4 for reference.
Figure 4: MATLAB Simulink Model of the Speed Controller
Simulink Library Browser → Continuous → Integrator Limited;
Simulink Library Browser → Discontinuities → Saturation;
 Set the Upper and Lower limits of both the Saturation and Integrator blocks to +2.5 and 2.5 respectively,
 Add TWO input ports (In1) and ONE output ports (Out1) to your model, rename the input ports as wmref and wmmeas; rename the output port as Iaref. Simulink Library Browser → Sources → In1;
Simulink Library Browser → Sinks → Out1;
 Next, create a single module which represents the Speed Controller: Click and drag the mouse to highlight all components of the speed controller model; rightclick on a block within the model and select “Create Subsystem from selection”; rename the new module as “SpeedController”; and delete the input and output blocks and lines connecting to the module.
See Fig. 5 for reference,
Figure 5: MATLAB Simulink Module of the Speed Controller 13.
Remember to save your work.
1.1 Task 3:: Build the PMDC Motor Model in Simulink
 Open the PMDC Simulink model that you built, for the NoLoad test, in PartA (ie, Figure 3 in Page 7),
 Use the Simulink Save As option to make a duplicate copy of your PMDC model,
 Now rearrange the blocks in the new model as shown in Fig. 6 by dragging and moving blocks around,
Figure 6: MATLAB Simulink Model of the PMDC Motor
 Run the modified model, and ensure that your results are the same as the Noload test, that was completed in PartA (see Figure 4 in Page 9 of the Document PMDCPartA),
 Add TWO input ports (In1) and THREE output ports (Out1) to your model, rename the input ports as Va and TL; rename the output ports as Ia, Tem, and wm. Simulink Library Browser → Sources → In1; Simulink Library Browser → Sinks → Out1; See Fig. 7 for reference.
Figure 7: MATLAB Simulink Model of the PMDC Motor
 Next, create a single module which represents the PMDC motor: Click and drag the mouse to highlight all components of the PMDC model; rightclick on a block within the model and select “Create Subsystem from selection”; rename the new module as “PMDCMotor”; and delete the input and output blocks and lines connecting to the module.
See Fig. 8 for reference,
Figure 8: MATLAB Simulink Module of the PMDC Motor
 ReRun the modified model, and ensure that your results are the same as the Noload test, that was completed in PartA (see Figure 4 in Page 9 of the Document
PMDCPartA),
1.1 Task 4:: Analysis of the PMDC Motor Model with Cascade Closedloop Control
In this final section, you will use the PMDC Simulink module, and the PIbased speed and current controller (Simulink) modules to build and analyse the cascade control of the PMDC motor.
 Copy the Speed and the Current Controller Modules into the Simulink file entitled PMDC module (from Task 3). See Fig. 9 for reference,
Figure 9: MATLAB Simulink PMDC Module in a Cascade Control System
 Complete the Closedloop design (See Fig. 1 and Fig. 10 for reference):
 Use the “Constant” block to enter a reference speed (100 rad/s), and a load torque of 0 Nm,
 Use the “Step” block to increase the reference speed by 100 rad/s at t =
1.0sec (Step time = 1, Initial value = 0, Final value = 100), Simulink Library Browser → Sources → Step
 Use the “Mux” block and the Scope to monitor the reference and measured signals of both the motor speed and the armature current, Simulink Library Browser → Signal Routing → Mux
Figure 10: MATLAB Simulink PMDC Module in a Cascade Control System
 Remember to define all relevant variables in your model (refer to Table 1, Table 2, and the Table in Page 5 of the Pdf “PMDCPartA”),
Use the “Callback” window: Modelling → Model Settings → Model Properties
→ Model Settings → Callbacks → InitFcn*
(See Fig. 11 for reference)
Figure 11: MATLAB Simulink PMDC Module Model Properties
 Change the simulation time to 2seconds and Run the simulation,
 Record results of the speed and current tracking behaviour, of the cascade control loop, as the reference input speed (wmref) varies from 100 rad/s to 200 rad/s with a step time of 1second. Also, record the result of the motor torque and the armature voltage,
 Save an image of all four scope plots, see sample results in Fig. 12,
 Compare the simulated motor armature current, armature voltage, and electromagnetic torque to the results of the Noload conditions in PartA (in cases where the speeds were near but not exactly equal to 100 and 200 radians/second). Note: If the values don^{0}t match well (say, within 20%), doublecheck your simulated motor values and double check your controller parameters,
 Note: If your plots are oscillating wildly between large positive and negative values, try reducing the current controller^{0}s proportional constant by a factor of two or more,
 Reflect on all relevant graphs and findings. Try implementing a variable speed reference of 50, 100, 200, 150, and 75 rad/s at a step time of 1, 2, 3, and 4 seconds respectively.
Figure 12: PMDC Motor Speed Reference Tracking
 Use the To Workspace block to send all relevant graphs (responses) to the MATLAB workspace, and write a simple code to plot and format the graphs,
 Repeat the above analysis for load torque T_{L }= 0.04 Nm.
1.5 Discussion
 In the completed PMDC^{0}s speed controller, why is the current controller required?
 Why is there a maximum spike or overshoot in the speed response? can this overshoot be avoided?
 Why do the motor^{0}s torque and current values change significantly when the speed suddenly changes?
 Do you see any effect in the plots of the limits that you set in the controllers? Explain.
 Refer to the step response of the speed controller, and complete Table 3.
Table 3: Step Response Parameter of the Speed Loop
Parameter 
Symbol 
Value 
Unit 
Percent Overshoot 
%OS 
% 

Peak Time 
T_{p} 
s 

Settling Time 
T_{s} 
s 

Steadystate error 
ess 
Peak Value − Desired Value
%OS = × 100 (7)
Desired Value
T_{p }= is the time required to reach the peak value of the response,
T_{s }= is the time required for the response to reach and stay within ±2% of the desired value, e_{ss }= is the error between the actual output and desired output as time tends to infinity.
 What is the effect of loading (ie T_{L }6= 0) on the speed, current, torque, and voltage responses?
 24 x 7 Availability.
 Plagiarism Free.
 Trained and Certified Experts.
 Deadline Guaranteed.
 Privacy Guaranteed.
 Assignment Help Reward
 Online help for all project.
 Service for everyone
 Online Tutoring
 Free download.
 Whitepaper.
 Assignment Help
 Homework Help
 Writing Help
 Academic Writing Assistance
 Editing Services
 Plagiarism Checker Online
 Proofreading
 Research Writing Help