TIDUF17 November   2022 TMS320F2800152-Q1 , TMS320F2800153-Q1 , TMS320F2800154-Q1 , TMS320F2800155 , TMS320F2800155-Q1 , TMS320F2800156-Q1 , TMS320F2800157 , TMS320F2800157-Q1

 

  1.   Description
  2.   Resources
  3.   Features
  4.   Applications
  5.   5
  6. 1System Description
  7. 2System Overview
    1. 2.1 Block Diagram
    2. 2.2 Design Considerations
    3. 2.3 Highlighted Products
      1. 2.3.1 TMS320F280039C
      2. 2.3.2 UCC21530-Q1
      3. 2.3.3 OPA607-Q1
      4. 2.3.4 LM25184-Q1
      5. 2.3.5 TCAN1044A-Q1
    4. 2.4 System Design Theory
      1. 2.4.1 Three-Phase PMSM Drive
      2. 2.4.2 Field Oriented Control of PM Synchronous Motor
      3. 2.4.3 Field Weakening (FW) and Maximum Torque Per Ampere (MTPA) Control
      4. 2.4.4 Compressor Drive with Automatic Vibration Compensation
      5. 2.4.5 Hardware Prerequisites for Motor Drive
        1. 2.4.5.1 Motor Current Feedback
          1. 2.4.5.1.1 Current Sensing with Three-Shunt
          2. 2.4.5.1.2 Current Sensing with Single-Shunt
        2. 2.4.5.2 Motor Voltage Feedback
  8. 3Hardware, Software, Testing Requirements, and Test Results
    1. 3.1 Hardware Requirements
      1. 3.1.1 Hardware Board Overview
      2. 3.1.2 Test Conditions
      3. 3.1.3 Test Equipment Required for Board Validation
    2. 3.2 Test Setup
      1. 3.2.1 Hardware Setup
      2. 3.2.2 Software Setup
        1. 3.2.2.1 Code Composer Studio Project
        2. 3.2.2.2 Software Structure
    3. 3.3 Test Procedure
      1. 3.3.1 Level 1 Incremental Build
        1. 3.3.1.1 Project Setup
        2. 3.3.1.2 Running the Application
      2. 3.3.2 Level 2 Incremental Build
        1. 3.3.2.1 Project Setup
        2. 3.3.2.2 Running the Application
      3. 3.3.3 Level 3 Incremental Build
        1. 3.3.3.1 Project Setup
        2. 3.3.3.2 Running the Application
      4. 3.3.4 Level 4 Incremental Build
        1. 3.3.4.1 Project Setup
        2. 3.3.4.2 Running the Application
        3. 3.3.4.3 Tuning Field Weakening and MTPA Control
        4. 3.3.4.4 Tuning Vibration Compensation
        5. 3.3.4.5 CAN FD Command Interface
    4. 3.4 Test Results
      1. 3.4.1 MCU CPU Load, Memory, and Peripheral Usage
  9. 4Design and Documentation Support
    1. 4.1 Design Files
      1. 4.1.1 Schematics
      2. 4.1.2 BOM
    2. 4.2 Tools and Software
    3. 4.3 Documentation Support
    4. 4.4 Support Resources
    5. 4.5 Trademarks

Running the Application

Run the code by going to RunResume or clicking the Resume button in the tool bar. systemVars.flagEnableSystem should be set to 1 after a fixed time, meaning the offset calibration has been done. The fault flags, motorVars_M1.faultMtrUse.all, should be equal to 0.

Set the variable motorVars_M1.flagEnableRunAndIdentify to 1. The motor identification will be executed; the whole process will take about 150 seconds. Once motorVars_M1.flagEnableRunAndIdentify is equal to 0 and the motor stops, the motor parameters have been identified. Copy the variable values in the Expressions window to replace the defined motor parameters in user_mtr1.h as follows:

  • USER_MOTOR1_Rs_Ohm = motorSetVars_M1.Rs_Ohm's value
  • USER_MOTOR1_Ls_d_H = motorSetVars_M1.Ls_d_H's value
  • USER_MOTOR1_Ls_q_H = motorSetVars_M1.Ls_q_H's value
  • USER_MOTOR1_RATED_FLUX_VpHz = motorSetVars_M1.flux_VpHz's value

Change MOTOR_IDENT back to 0 to disable identification after successfully indentifying the motor parameters. Rebuild and reload the application.

Once the motor parameters identification completes or are set correctly in the user_mtr1.h file, start the motor by setting motorVars_M1.flagEnableRunAndIdentify equal to 1 again. Check the following:

  • Set the target speed value using the variable motorVars_M1.speedRef_Hz and watch how the motor shaft speed follows the set speed. To change the acceleration, enter a different value into the variable motorVars_M1.accelerationMax_Hzps.
  • You can use the CCS Graph tool to monitor variables as described in Section 3.3.2. By default for this build level, the motor angle and current waveforms are logged.
  • The default proportional gain (Kp) and integral gain (Ki) for the current controllers of the FOC system are calculated in the function setupControllers(). After setupControllers() is called, the global variables motorSetVars_M1.Kp_Id, motorSetVars_M1.Ki_Id, motorSetVars_M1.Kp_Iq, and motorSetVars_M1.Ki_Iq are initialized with the newly calculated Kp and Ki gains. Tune the Kp and Ki value of these four variables in Expressions window as shown in Figure 3-16 for the current controllers to achieve the expected current control bandwidth and response. The Kp gain creates a zero that cancels the pole of the motor’s stator and can easily be calculated. The Ki gain adjusts the bandwidth of the current controller-motor system. When a speed controlled system is needed for a certain damping, the Kp gain of the current controller will relate to the time constant of the speed controlled system.
  • The default proportional gain (Kp) and integral gain (Ki) for the speed controllers of the FOC system are also calculated in the function setupControllers(). After setupControllers() is called, the global variables motorSetVars_M1.Kp_spd and motorSetVars_M1.Ki_spd are initialized with the newly calculated Kp and Ki gains. Tune the Kp and Ki value of these two variables in Expressions window as shown in Figure 3-16 for the speed controllers to achieve the expected current control bandwidth and response. Tuning the speed controller has more unknowns than when tuning a current controller. The default calculated Kp and Ki are just serve as a starting point starting point.
GUID-20221101-SS0I-DVW7-KKQD-M4V5MFLFT8JD-low.png Figure 3-16 Build level 4 variables in the Expressions view