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

Compressor Drive with Automatic Vibration Compensation

Vibration and noise can become a problem in air conditioning compressors applications since they cause an undesirable end user experience, as well as mechanical failures due to stress. The compressor applications contain pulsating loads, which is dependent on the mechanical angle as shown in Figure 2-27, can cause motor vibration and audible noise. There are several causes of vibration and noise. The main cause is the vibration produced by the load characteristic. A new dynamic and adaptive compensation method will also be covered, showing the details on how it operates and the minimal tuning required.

Figure 2-27 Waveform of Load Torque

The vibration compensation algorithm learns the load profile as the motor runs, and as the speed controller tries to correct for these load changes, and once the load is learned, the algorithm is used to extract load information relative to the mechanical angle, and uses that information as a feed forward in the speed controller. As shown in Figure 2-28, a new block was added, called Dynamic Vibration Compensation is added to the FOC system, is used to learn the torque load, to allow adding a feedforward term to the speed controller, in the form of a summing point to the output generated by the speed controller.

Figure 2-28 Block Diagram of FOC based Motor Drive with Vibration Compensation

This algorithm requires four main blocks to be able to work:

  1. A speed controller with feed forward input
  2. A table to hold a learning curve
  3. A way of extracting a specific member of that table based on an index
  4. Calculation of an index to update the learning curve and an advanced index to extract a value from that table

The algorithm is able to dynamically learn a load profile based on two inputs:

  1. Electrical angle information. Starting from the lower left as shown in Figure 2-28, the first input that is required by the vibration compensation module is the mechanical angle. This is calculated based on the electrical angle and the number of pole pairs. It is not required for the mechanical angle to be synchronized with the electrical angle. For example, the zero of the mechanical angle, physically, does not need to be the zero of the electrical angle. This is because the vibration compensation module will learn the load according to the mechanical angle provided, independently of what the mechanical angle is compared to the physical position of the shaft.
  2. A measured current value, in the case of FOC, Iq, which is responsible for the torque of the motor.

Then the vibration compensation module is implemented. The module needs four parameters in this implementation.

  1. Phase Advance. which is how the learned load will be accessed with respect to the mechanical angle. If zero phase advance, the loaded value on IqRef_ff will correspond to the provided mechanical angle. If phase advance is 10, the loaded value on IqRef_ff will correspond to the mechanical angle plus 10 mechanical degrees (in a scale from 0 to 360 degrees).
  2. Learning Rate. This parameter is a value from 0 to 1, which is essentially how fast (less noise immune) or how slow (more noise immune) the load learning happens
  3. Points. This is the number of points of the compensation table to be used for the learning curve.
  4. Pole Pairs. This is the number of poles in the motor.

Then the summation point in between the speed controller and the Iq controller. This is where the output of the vibration compensation module is used, to help the speed controller with this term. This technique is also known as feedforward, since the load is known in advance, according to the mechanical angle provided.

Once the load has been learned by the vibration compensation module, the speed controller will correct for transients in load change, that don’t relate to the natural mechanical load vs. mechanical angle, which is already compensated by the vibration compensation module. To illustrate how the vibration compensation module helps, let’s take a look at the following plot, where we show the output of the speed controller with vibration compensation disabled. It is obvious that the speed controller gains need to be high to track the load changes as the motor spins every cycle.

Tuning the learning rate

The learning rate can be adjusted depending on two factors. One is how quickly the user wants to learn the curve, and the second consideration is how noisy is the input to the learning curve. The second consideration is important, because the noise is not only coming from the current sensing method itself, but minor mechanical perturbations in the system, that are not periodic, and that we would like to filter out and not have it in our compensation table. If the learning rate is too low, the learning time could be too long for a specific application, so a trade-off needs to be made.

Tuning the phase angle

In a discrete system there are several delays when it comes to outputting a voltage to the motor, and also delays related to sensing currents. For example, when implementing an FOC system in a processor, usually the output voltage goes through a Pulse Width Modulator (PWM) which has delays. This phase advance parameter allows fine tuning of that delay, by providing a number in units of table positions, from the learned table, so that the appropriate output can be applied to the speed controller’s feed forward input. The easiest way to tune this parameter is by looking at the speed variation after applying dynamic compensation, and tuning the value so that a minimum amount of speed variation is achieved.