Introduction
The objective of this module is to use the Embedded Target for the C2000, and the Digital Motor Control Library (DMClib) to control a Permanent Magnet Synchronous Motor (PMSM) with an encoder using the Field Oriented Control Technique.
System overview
The following figure shows the complete application that we will implement step by step during the laboratory.
Variables description
ias = Phase-a stator current
ibs = Phase-b stator currentias = Stationary a-axis stator current
ibs = Stationary b-axis stator currentids = Synchronously rotating d-axis stator current
iqs = Synchronously rotating q-axis stator currentvas = Stationary a-axis stator voltage
vbs = Stationary b-axis stator voltagevds = Synchronously rotating d-axis stator voltage
vqs = Synchronously rotating q-axis stator voltagevdc = DC-bus voltage
qlr = Rotor flux angleqm = Mechanical angle
dir = Rotor directionwr = Rotor speed
Ta = Phase-a duty cycle ratio of PWM signalTb = Phase-b duty cycle ratio of PWM signal
Tc = Phase-c duty cycle ratio of PWM signal
Related files
- Powerpoint Presentation - PMSM_control.ppt
- MATLAB script- PMS_Motor_data.m
- Simulink Model for Space vector generation Simulation - PMS_Motor_level1.mdl
- Simulink Model for Open Loop Simulation - PMS_Motor_level2.mdl
- Simulink Model for current loop Simulation - PMS_Motor_level3.mdl
- Simulink Model for Encoder Verification Simulation - PMS_Motor_level4.mdl
- Simulink Model for Closed Loop Simulation - PMS_Motor_level5.mdl
- Simulink Model for Space vector generation - Real Time PMS_Motor_level1eZDSPF2812.mdl
- Simulink Model for Open Loop - Real Time - PMS_Motor_level2eZDSPF2812.mdl
- Simulink Model for current loop - Real Time - PMS_Motor_level3eZDSPF2812.mdl
- Simulink Model for Encoder Verification - Real Time - PMS_Motor_level4eZDSPF2812.mdl
- Simulink Model for Closed Loop - Real Time PMS_Motor_level5eZDSPF2812.mdl
Simulation
The simulation process will be based on a simulation model for the PMS Motor.
Based on this model, the simulation will comprise five steps as follows:
- Implementing the Forward Loop – Space Vector Generation
- Running the PMSM in open loop
- Closing the current loop
- The speed measurement-Encoder
- The Speed Closed Loop
Space vector generation
The diagram below highlights the modules used in the first step. This first incremental step confirms operation of peripheral and target independent modules on forward control path and the code framework.
At this very first stage the goal is to generate a saw–tooth waveform with a varying frequency. This waveform is an emulation of the rotor angle, which is then passed into the Park transformation allowing us to check the correct computation of the Space Vector PWM needed for the Field Oriented Control.