Clear Filters
Clear Filters

Creating a 2D Lookup Table for PMSM in EV Applications Using Simulink

7 views (last 30 days)
Hello MATLAB Simulink Community,
I am currently working on developing a 2D Lookup Table for a Permanent Magnet Synchronous Motor (PMSM) to optimize its operation in an electric vehicle (EV). My objective is to collect data on motor torque, Vde (d-axis voltage), and Vqe (q-axis voltage) under conditions of limited back-EMF WHILE changing Beta-angle and stator Current. This data collection is critical for optimizing motor control strategies(MTPA, Field-Weakening control)
Here are the specific aspects I need help with:
  1. Speed Control Setup: I need to implement a control system in Simulink that allows the PMSM to operate at set speeds to run with limited back-EMF. Which blocks or models would be best for controlling speed of a PMSM regardless of current of PMSM in Simulink?
  2. Data Collection for LUT: As the motor runs, I need to systematically record the torque, Vde, and Vqe. What are the best practices for setting up data logging in Simulink for these variables, especially considering the impacts of limited back-EMF?
  3. Lookup Table Generation: Any advice on how to automate the generation of a 2D LUT based on the collected data within Simulink would be greatly appreciated.
Could you please provide guidance or suggest resources, blocks, or toolkits in Simulink that could be useful for these purposes? Additionally, if there are example models or tutorials related to advanced PMSM control, including speed control and regenerative braking, those would be very helpful.
Thank you in advance for your assistance!

Answers (1)

Sabin
Sabin on 15 Jul 2024
Since 2024a, the generateMotorDriveROM function takes a motor drive subsystem and creates a reduced-order model (ROM) in the form of a Motor & Drive (System Level) block and parameterizes it with tabulated maximum torque in function of rotor speed and DC voltage, and tabulated power dissipated in function of rotor speed, shaft torque, and DC voltage.
Another good solution to take a look is:

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!