This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCS/TMDSHVMTRPFCKIT: Sensorless FOC for PMSM without Encoder at the Buildlevel3

Part Number: TMDSHVMTRPFCKIT

Tool/software: Code Composer Studio

Hello All,

I've been studying with Tmdshvmtrpfckit connected a 230V, 50hz pmsm motor used in a Washing Machine. As you know, at buildlevel 3, instructions say that incremental encoder of the motor must be connected to main H1 connector . But my pmsm motor has no encoder to connect with the kit. How can I manage buildlevel3 and progress the further levels?

Another question related to this, how does my encoderless pmsm motor detect the initial rotor position for alignment process? 

Thanks in advance.

  • any response will be appreciated, thank you.

  • You may skip this level since it's just used to verify the SMO estimator, and not used in the subsequent levels.

    As you saw in the project, there is no initial position detection for sensorless, use the alignment process to force the rotor to the position of zero angle.

  • Yanming Luo said:
    use the alignment process to force the rotor to the position of zero angle.

    Some would consider that cheating the monkey or is that the black gorilla in the room. Older methods of FOC zero positioning rotor would fire a single code rapidly raising phase current from DC supply for several milliseconds. Unfortunately that leads to large transient kickback from PMSM when the field rapidly collapses. Seemingly TI jumped Luminary Micro ship for Piccolo embedded FOC spin classes without ever investigating it does not require the inductive kick start approach LMI had implemented for excessive and rapid (0) rotor positioning even under heavy loads.

    From our perspective It would be interesting to compare how C2000 achieves zero position under heavy rotor loads without excessive DC current draw or PMSM inductive kickback clubbing the MCU.   

  • You may find an initial position detection reference code with C2000 in controlSUITE, but it only supports an IPM motor, and need to tune some parameters by a designer as well, we just recommend the designer to implement it, who has better knowledge on the motor drive.

  • Yanming Luo said:
    but it only supports an IPM motor,

    Thanks for info.

    Cypress uses SMO code for space vector modulation IP startup via ADC 2 feedback resistors. They also clarify differences between BLDC and PMSM being the unpowered waveform differs, full sinusoidal versus sine wave with trapezoidal top/bottom. That has posed and interesting debate as to why earlier C2000 PDF of SVPWM do not take the time to point out how to check for said difference. Seemingly SVPWM sinusoidal waveform will work other motors too, incorrectly classified BLDC by a frequent forum helper and our unguided use of the acronym.

  • Right. There are many different IPD algorithms for PMSM or BLDC. On this forum, we are able to support specific device or reference design/solution related questions using C2000 MCUs. You may post your topics on some engineering forums about the general technical discussion.

    Btw, SVPWM is a modulation method that can be used on PMSM, ACIM, even BLDC. Generally, BLDC uses a trapezoidal control technique as well. You may find both sensored/sensorless FOC based SMO for PMSM and trapezoidal control based BEMF zero-cross point in controlSUITE, InstaSPIN-FOC in motorWare or MotorControl SDK in ti.com.

  • Yanming Luo said:
    As you saw in the project, there is no initial position detection for sensorless, use the alignment process to force the rotor to the position of zero angle.

    Again force zero position the black gorilla seems counter intuitive to the FAST algorithm discussion, never mentions labs require forcing zero rotor position. That is sort of a deal breaker as that in our VLPMSM knowingly causes large BEMF voltage spike clubbing all MCU's. Labs perhaps need to gently seek a zero rotor position in steps, not force it via single code fire. Todays Gate Drivers are better than that older zero forced method!

  • That's an option. InstaSPIN will force the rotor position to the target angle if enabling the force angle function, or seek the position to the estimated angle if disabling the force angle function.