TIDUBE5A January   2022  – October 2022

 

  1.   Description
  2.   Resources
  3.   Features
  4.   Applications
  5.   5
  6. 1System Description
    1. 1.1 Key System Specifications
  7. 2System Overview
    1. 2.1 Block Diagram
    2. 2.2 Design Considerations
    3. 2.3 Highlighted Products
      1. 2.3.1 TMS320F2800137
      2. 2.3.2 TMS320F280025C
      3. 2.3.3 TMS320F280039C
      4. 2.3.4 UCC28740
      5. 2.3.5 UCC27517
      6. 2.3.6 TLV9062
      7. 2.3.7 TLV76733
    4. 2.4 System Design Theory
      1. 2.4.1 Interleaved PFC
        1. 2.4.1.1 Full Bridge Diode Rectifier Rating
        2. 2.4.1.2 Inductor Ratings
        3. 2.4.1.3 AC Voltage Sensing
        4. 2.4.1.4 DC Link Voltage Sensing
        5. 2.4.1.5 Bus Current Sensing
        6. 2.4.1.6 DC Link Capacitor Rating
        7. 2.4.1.7 MOSFET Ratings
        8. 2.4.1.8 Diode Ratings
      2. 2.4.2 Three-Phase PMSM Drive
        1. 2.4.2.1 Field Oriented Control of PM Synchronous Motor
        2. 2.4.2.2 Sensorless Control of PM Synchronous Motor
          1. 2.4.2.2.1 Enhanced Sliding Mode Observer with Phase Locked Loop
            1. 2.4.2.2.1.1 Mathematical Model and FOC Structure of an IPMSM
            2. 2.4.2.2.1.2 Design of ESMO for the IPMSM
            3. 2.4.2.2.1.3 Rotor Position and Speed Estimation with PLL
        3. 2.4.2.3 Field Weakening (FW) and Maximum Torque Per Ampere (MTPA) Control
        4. 2.4.2.4 Compressor Drive with Automatic Vibration Compensation
        5. 2.4.2.5 Fan Drive with Flying Start
        6. 2.4.2.6 Hardware Prerequisites for Motor Drive
          1. 2.4.2.6.1 Motor Current Feedback
            1. 2.4.2.6.1.1 Current Sensing with Three-Shunt
            2. 2.4.2.6.1.2 Current Sensing with Single-Shunt
          2. 2.4.2.6.2 Motor Voltage Feedback
  8. 3Hardware, Software, Testing Requirements, and Test Results
    1. 3.1 Getting Started Hardware
      1. 3.1.1 Hardware Board Overview
      2. 3.1.2 Test Conditions
      3. 3.1.3 Test Equipment Required for Board Validation
      4. 3.1.4 Test Setup
    2. 3.2 Getting Started Firmware
      1. 3.2.1 Download and Install Software Required for Board Test
      2. 3.2.2 Opening Project Inside CCS
      3. 3.2.3 Project Structure
    3. 3.3 Test Procedure
      1. 3.3.1 Build Level 1: CPU and Board Setup
        1. 3.3.1.1 Start CCS and Open Project
        2. 3.3.1.2 Build and Load Project
        3. 3.3.1.3 Setup Debug Environment Windows
        4. 3.3.1.4 Run the Code
      2. 3.3.2 Build Level 2: Open Loop Check with ADC Feedback
        1. 3.3.2.1 Start CCS and Open Project
        2. 3.3.2.2 Build and Load Project
        3. 3.3.2.3 Setup Debug Environment Windows
        4. 3.3.2.4 Run the Code
      3. 3.3.3 Build Level 3: Closed Current Loop Check
        1. 3.3.3.1 Start CCS and Open Project
        2. 3.3.3.2 Build and Load Project
        3. 3.3.3.3 Setup Debug Environment Windows
        4. 3.3.3.4 Run the Code
      4. 3.3.4 Build Level 4: Full PFC and Motor Drive Control
        1. 3.3.4.1  Start CCS and Open Project
        2. 3.3.4.2  Build and Load Project
        3. 3.3.4.3  Setup Debug Environment Windows
        4. 3.3.4.4  Run the Code
        5. 3.3.4.5  Run the System
        6. 3.3.4.6  Tuning Motor Drive FOC Parameters
        7. 3.3.4.7  Tuning PFC Parameters
        8. 3.3.4.8  Tuning Field Weakening and MTPA Control Parameters
        9. 3.3.4.9  Tuning Flying Start Control Parameters
        10. 3.3.4.10 Tuning Vibration Compensation Parameters
        11. 3.3.4.11 Tuning Current Sensing Parameters
    4. 3.4 Test Results
      1. 3.4.1 Performance Data and Curves
      2. 3.4.2 Functional Waveforms
      3. 3.4.3 Transient Waveforms
      4. 3.4.4 MCU CPU Load, Memory and Peripherals Usage
        1. 3.4.4.1 CPU Load for Full Implementation
        2. 3.4.4.2 Memory Usage
        3. 3.4.4.3 Peripherals Usage
    5. 3.5 Migrate Firmware to a New Hardware Board
      1. 3.5.1 Configure the PWM, CMPSS, and ADC Modules
      2. 3.5.2 Setup Hardware Board Parameters
      3. 3.5.3 Configure Faults Protection Parameters
      4. 3.5.4 Setup Motor Electrical Parameters
      5. 3.5.5 Setup PFC Control Parameters
  9. 4Design and Documentation Support
    1. 4.1 Design Files
      1. 4.1.1 Schematics
      2. 4.1.2 Bill of Materials
      3. 4.1.3 Altium Project
      4. 4.1.4 Gerber Files
      5. 4.1.5 PCB Layout Guidelines
    2. 4.2 Software Files
    3. 4.3 Documentation Support
    4. 4.4 Support Resources
    5. 4.5 Trademarks
  10. 5Terminology
  11. 6Revision History

Tuning Vibration Compensation Parameters

The automatic vibration compensation function has been added and called in motor drive ISR to calculate feedforward torque current.

  1. Adding the pre-define symbols MOTOR1_VIBCOMPA in build configuration of the project as described in Section 3.2.2 for enabling the vibration compensation.
  2. Adding the variables vibCompAlpha, vibCompGain, and vibCompIndexDelta to Expressions window in CCS Debug Perspective, and tuning these parameters to achieve the expectation performance for the vibration compensation according to the compressor and air-conditioner system.
    • vibCompAlpha is used as the learning speed. The higher this value (with a maximum of 1.0) the slowest it learns the algorithm. A high value is desirable though, since it provides noise immunity.
    • vibCompIndexDelta is to advance the output waveform into the future by a little bit so that the resulting current will be very close to the desired value by the time the mechanical angle reaches that point. A typical value of 10 is recommended, but ultimately needs to be fine-tuned by the user.
    • vibCompGain is the gain factor of the feedforward torque reference torque current value (with a maximum of 1.0).
  3. Change speed reference (motorVars[0].speedRef_Hz) and speed controller gains (motorVars[0].Kp_spd and motorVars[0].Ki_spd). This step is used to take the motor and load to where the motor vibrates due to the pulsating load. For vibration compensation to work better, increase the values of the speed controller gains. Make sure the speed controller is still stable though.
  4. Adding the pre-define symbols DEBUG_MONITOR_EN in build configuration of the project as described in Section 3.2.2 for enabling the motor running speed vibration. Now enable the vibration compensation output by setting this flag, vibCompFlagEnable = 1. Then let it run for a 5 to 10 seconds, and then get the new speed variation by setting this bit: motorVars[0].flagClearRecord = 1. Record that the speed variation is about 2Hz.
  5. If the vibration was not reduced, try increasing the speed controller gains. Also try increasing the learning speed of the vibration compensation algorithm by decreasing the value of vibCompAlpha in decrements of 0.02, so try: 0.99, 0.97, 0.95, etc. each time you change vibCompAlpha, let it run for a few seconds and get a reading of the speed variation by resetting that calculation: motorVars[0].flagClearRecord = 1.
  6. After tuned and fixed these variables value, record the watch window values with the newly defined parameters in user_mtr1.h file.

    USER_MOTOR1_VIBCOMPA_ALPHA = vibCompAlpha's value. The learning rate of the vibration compensation module from 0.0 to 1.0.

    USER_MOTOR1_VIBCOMPA_GAIN = vibCompGain's value. The gain of the vibration compensation module from 0.0 to 1.0.

    USER_MOTOR1_VIBCOMPA_INDEX_DELTA = vibCompIndexDelta's value. The phase advance of the vibration compensation module from 0 to 360.

Controlling motor current based on compressor torque vs angle is an alternate technique to counter the speed ripple variations. Adding the pre-define symbols MOTOR1_VIBCOMPT in build configuration of the project as described in Section 3.2.2 for enabling this vibration compensation method.

Depending upon the rolling piston angle, an additional torque current component can be either added or subtracted from the speed PI controller output. The current needs to be added during compression stage and subtracted during exhaustion (where it aids the movement of piston leading to increase in speed) and its magnitude can be computed empirically to match the torque profile of the compressor. Algorithm has split the 360 mechanical deg into 3 sector and compensation current can be added separately through variables VibCompAlpha0, 120 and 240. With rough tuning of the compensation, the speed ripple is reduced from 200Hz to under 100Hz @ 1200rpm. Further reduction in speed ripple is possible, when tuning matches the torque profile to the closest. Usually vibration compensation is enabled for compressor speeds between 1200 - 2000rpm (100Hz), post which its impact tends to be smaller.