Estimate PMSM Parameters Using Recommended Hardware
This example determines the parameters of a permanent magnet synchronous motor (PMSM) using the recommended Texas Instruments™ hardware. The tool determines these parameters:
Phase resistance, (Ohm)
qaxis inductances, and (Henry)
Back-EMF constant, (Vpk_LL/krpm, where Vpk_LL is the peak voltage line-to-line measurement)
Motor inertia, (Kg.m^2)
Friction constant, (N.m.s)
The example accepts the minimum required inputs, runs tests on the target hardware, and displays the estimated parameters.
NOTE: This example does not support simulation. Use one of the supported hardware configurations to run this example.
The parameter estimation tool needs the motor position as detected by either a quadrature encoder, a Hall sensor, or a sensorless flux observer. To detect the motor position correctly by using a position sensor, calibrate the quadrature encoder or Hall sensor attached to the motor under test.
Ensure that the PMSM is in no-load condition.
If you are using Hall sensors:
Ensure that the PMSM has Hall sensors.
Calibrate the Hall sensor offset. For instructions, see Hall Offset Calibration for PMSM Motor.
If you are using a quadrature encoder sensor:
Ensure that the PMSM has a quadrature encoder sensor.
Calibrate the quadrature encoder offset. For instructions, see Quadrature Encoder Offset Calibration for PMSM Motor.
NOTE: If you set the Sensor Selection field in the host model to
Sensorless, you can skip the position sensor calibration step.
This example supports only these hardware configurations:
Texas Instruments™ F28069M control card configuration:
F28069M control card
A PMSM with a Hall or a quadrature encoder sensor
DC power supply
NOTE: The DRV8312-69M-KIT board has a known issue in the board's power supply section. Due to this limitation, the board does not support all Hall sensor types. For example, it does not support the Hall sensor of Teknic M-2310P motor.
Texas Instruments LAUNCHXL-F28379D configuration:
A PMSM with a Hall or a quadrature encoder sensor
DC power supply
Required MathWorks® Products
To run parameter estimation, you need these products:
Motor Control Blockset™
Embedded Coder Support Package for Texas Instruments C2000™ Processors
For the F28069M control card configuration:
1. Connect the F28069M control card to J1 of DRV8312-69M-KIT inverter board.
2. Connect the motor three phases to MOA, MOB, and MOC on the inverter board.
3. Connect the DC power supply to PVDDIN on the inverter board.
4. If you are using a Hall sensor, connect the Hall sensor encoder output to J10 on the inverter board.
5. If you are using a quadrature encoder sensor, connect the quadrature encoder pins (G, I, A, 5V, B) to J4 on the inverter board.
For the LAUNCHXL-F28379D configuration:
1. Attach the inverter board to the controller board such that J1, J2 of BOOSTXL aligns with J1, J2 of LAUNCHXL.
2. Connect the motor three phases to MOTA, MOTB, and MOTC on the BOOSTXL inverter board.
3. Connect the DC power supply to PVDD and GND on the BOOSTXL inverter board.
4. If you are using a Hall sensor, connect the Hall sensor output to QEP_B (configured as eCAP) on LAUNCHXL.
5. If you are using a quadrature encoder sensor, connect the quadrature encoder pins (G, I, A, 5V, B) to QEP_A on the LAUNCHXL controller board.
For more details regarding these connections, see Hardware Connections.
For more details regarding the model settings, see Model Configuration Parameters.
For LAUNCHXL-F28379D, load a sample program to CPU2, for example, program that operates the CPU2 blue LED using GPIO31 (
c28379D_cpu2_blink.slx) to ensure that CPU2 is not mistakenly configured to use the board peripherals intended for CPU1.
Parameter Estimation Tool
The parameter estimation tool includes a target model and a host model. The models communicate with each other by using a serial communication interface. For more details, see Host-Target Communication.
Enter the details about the hardware setup and the motor under test in the host model. The target model uses an algorithm to perform tests on the motor and estimate the motor parameters. The host model starts the required tests and displays the estimated parameters.
Open the parameter estimation host model. You can also use this command to open the host model:
Enter these details in the host model to prepare the workspace:
Select Board — Select the target hardware and inverter combination.
Communication Port — In the Host Serial Setup block parameter dialog box, select a serial Port name to which the hardware is connected. Select an available port from the list. For more details, see Find Communication Port.
Required Inputs — Enter the motor specification and hardware setup data. You can obtain these values either from the motor datasheet or from the motor nameplate.
- Input DC Voltage — The DC supply voltage for the inverter (Volts).
- Nominal Current — The rated current of the motor (Ampere).
- Nominal Speed — The rated speed of the motor (RPM).
- Pole Pairs — The number of pole pairs of the motor.
- Nominal Voltage — The rated voltage of the motor (Volts).
- Position Offset — The position (Hall or quadrature encoder) sensor offset value (per-unit position) (see Hall Offset Calibration for PMSM Motor, Quadrature Encoder Offset Calibration for PMSM Motor, and Per-Unit System.
- Sensor Selection — The type of position sensor that you are using. You can select one of these values:
QEP — Select this option if you are using the quadrature encoder sensor attached to your motor.
HALL — Select this option if you are using the Hall sensors available in your motor.
Sensorless — Select this option if you want to use the Flux Observer sensorless position estimation block instead of a position sensor. For details about this block, see Flux Observer Flux Observer.
- Total QEP Slits — The number of slits available in the quadrature encoder sensor. By default, this field has a value
NOTE: When updating Required Inputs, consider these limitations:
The rated speed of the motor must be less than 25000 RPM.
The tests protect the hardware from over-current faults. However, to ensure that these faults do not occur, keep the motor's rated current (entered in Nominal Current field) less than the maximum current supported by the inverter.
If you have an SMPS-based DC power supply unit, set a safe current limit on the power supply for safety reasons.
Deploy Target Models
Before starting the tests by using the parameter estimation tool, you need to download the binary files (
.out) generated by the target model into the target hardware. There are two workflows to download the binary files:
Workflow 1: Build and Deploy Target Model
Use this workflow to generate and deploy the code for the target model. Ensure that you press Ctrl+D to update the workspace with the required input values from the host model.
Click one of these hyperlinks in the parameter estimation host model to open the target model (for the hardware that you are using):
For F28069M-based controller attached to either Hall or quadrature encoder sensor: mcb_param_est_f28069_DRV8312
For F28069M-based controller that uses the sensorless Flux Observer block: mcb_param_est_sensorless_f28069_DRV8312
For F28379D-based controller attached to either Hall or quadrature encoder sensor: mcb_param_est_f28379D_DRV8305
For F28379D-based controller that uses the sensorless Flux Observer block: mcb_param_est_sensorless_f28379D_DRV8305
Click Build, Deploy & Start in the Hardware tab to deploy the target model to the hardware.
NOTE: Ignore the warning message
Multitask data store option in the Diagnostics page of the Configuration Parameter Dialog is none displayed by the model advisor, by clicking the Always Ignore button. This is part of the intended workflow.
Workflow 2: Manually Download Target Model
Use this workflow to deploy the binary files (
.out) of the target model manually by using a third party tool (the workflow does not need code-generation). This workflow is only valid for Teknic M-2310P motor.
Locate the binary files (
.out) at these locations:
< matlabroot >\toolbox\mcb\mcbexamples\mcb_param_est_f28069_DRV8312.out
< matlabroot >\toolbox\mcb\mcbexamples\mcb_param_est_sensorless_f28069_DRV8312.out
< matlabroot >\toolbox\mcb\mcbexamples\mcb_param_est_f28379D_DRV8305.out
< matlabroot >\toolbox\mcb\mcbexamples\mcb_param_est_sensorless_f28379D_DRV8305.out
NOTE: The files
mcb_param_est_f28379D_DRV8305.out use a fixed quadrature encoder slits count of
1000. Therefore, when you set the required input Sensor Selection to QEP in the host model, you can use these files only for motors connected to a quadrature encoder sensor with
1000 slits (for example, the Teknic M-2310P motor).
Open a third-party tool to deploy the binary files (
Download and run the binary files (
.out) on the target hardware.
Estimate Motor Parameters
Use the following steps to run the Motor Control Blockset parameter estimation tool:
1. Ensure that you deploy the binary files (
.out) generated from the target model, to the target hardware and update the required details in the host model.
2. In the host model, check if the Run-Stop slider switch position is Run. Then, click Run in the Simulation tab to run the parameter estimation tests.
3. The parameter estimation process takes less than a minute to perform the tests. You can ignore the beep sound produced during the tests.
4. The host model displays the estimated motor parameters after successfully completing the tests.
The tool uses the following algorithm to estimate parameters:
Phase resistance, — The tool uses Ohm's law to estimate this value.
daxis inductance, — The tool uses frequency injection method to estimate these values.
qaxis inductance, — The tool uses frequency injection method to estimate these values.
Back-EMF constant, — The tool measures the currents and voltages and uses the electric motor equation to estimate this value.
Motor inertia, — The tool estimates this value by using retardation test.
Friction constant, — The tool estimates this value by using the torque equation for a motor running at a constant speed.
When the parameter estimation tests complete, the Test Status LED turns green.
If the tests are interrupted, the Test Status LED turns red. When the LED turns red, run the host model again to rerun the parameter estimation tests.
During an emergency, you can manually turn the Run-Stop slider switch to Stop position to stop the parameter estimation tests. In addition, the model interrupts the parameter estimation tests and turns these LEDs red to protect the hardware from the following faults:
1. Over-current fault (this fault occurs when actual current drawn from the power supply is more than the Nominal Current value mentioned in the Required Inputs section of the host model)
2. Under-voltage fault (this fault occurs when input DC voltage drops below 80% of the Input DC Voltage value mentioned in the Required Inputs section of the host model)
3. Serial communication fault
Save Estimated Parameters
You can export the estimated motor parameters and further use them for the simulation and control system design.
To export, click Save Parameters to save the estimated parameters into a MAT (
To view the saved parameters, load the MAT (
.mat) file in the MATLAB® workspace. MATLAB saves the parameters in a structure named
motorParam in the workspace.
Click Open Model to create a new Simulink® model with a PMSM motor block. The motor block uses the
motorParam structure variables from the MATLAB workspace.