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.

question about PMSM_SENSORLESS,using the TMDSHVMTRPFCKIT ,

Other Parts Discussed in Thread: CONTROLSUITE

   i'm doing a reach on the pmsm_sensorless  project. i used the code provided by the controlsuite,i didn't change the param.(use the default ),and directly go to level6,when lsw=1 to lsw=2 ,the PMSM stall or vibrate ,so need i to change param in level5,such as SMO、PI?
     and i have a question,did the code in controlsuite about pmsm_sensorless need to change someting  (such as pi or anything else)to drive the PMSM well as  the HV_PM_ACI_Sensorless.out?
  • It is recommended to follow various build levels to understand the sequence right.

    If you see a problem changing lsw from 1 to 2, it means that SMO has not stabilised yet. you may increase the speed ref and try again. Increase Kslf if needed.

    To run the example project with the kit motor, no software change is needed.

  •  thank you for help!!! i'm a student of china.

     i will try again,i hope u will give me a favor if i meet a problem again!

     best wishes to you!

  • dear Ramesh

        in pmsm_sensorless project,deafult value (smo1.Kslf = _IQ(0.1057073975),i increase the value a little bit,it doesn't work,when lsw=1 to lsw=2,the PMSM shake a second and go on runing,or overcurrent and stop,so i don't know why?

       is there any other param i need to adjust ?

     thank your first!

  • Oh, ,my mistake, I meant to suggest to change Kslide (sliding mode gain). Did you increase the speed command?

  • Dear Ramesh

          I increse the speedref from 0.3 to 0.45,and then let lsw =2, the PMSM  donn't appear overcurrent,instead of,it  shake a while(maybe less than one seconde) and go on runing, why come out the  phenomenon,how can i solve the problem ?

         and i also do not know how to change smo1.Kslide (default value,smo1.Kslide = _IQ(0.05308703613);),to 0.06 or to 0.1,it also come out the   phenomenon above.

        when i use as follows(with GUI),provided by the U disk with the kit.

      

     it works well to drive my pmsm,did you have the source code of  HVMTRPFCKIT-BLDC-GUI.out?u f

    thank you for helping me!

  • The one second jitter is due to misalignement in angle between estimated angle and enforced angle. If you want to reduce jitter, try to gradually transition the control angle from enforced to self, instead of abruptly, by working through intermediate angles. Glad to learn that it drives your PMSM well.

    To drive BLDC motor, use the relevant source code from control suite. The GUI code is not given out for distribution.

     

  • Dear Ramesh
    "by working through intermediate angles",how can i fullfill it in my code?
    i am so worry about it!
     thank you!
  • Before transitioning, find the difference between estimated angle and enforced angle and gradually work though inbetween. We have not implemented this but believe this should work.

  • dear ramesh
    "find the difference",it means that i should watch angle waveforms between (lsw=1 and lsw=2),or do anything else?
    thank you!
  • Dear Ramesh

     I  get the graphic of  enforced angle and estimated angle in ccs ,as follows

      form the picture,we can see that small amount of estimated angle delay,because of the first order low-pass filter inside the SMO module.

           In order to achieve accurate field orientation, it is recommended to compensate this delay.Once the delays are detected for different operating points, they can be interpolated by means of a simple second or third order equation and this equation can be added to the code.

    "a simple second or third order equation?"  how can i fullfill it?

    best regards

  • Jack,

    These are two different things. Even if you have compensate for filter lag, there will still be difference between enforced angle and estimated bemf angle. Enforced angle is the angle of stator terminal voltage whereas estimated angle is the angle of bemf. They can line up only when there is no resistance or inductance, which is hypothetical.

    rgds,

    ramesh

  • Dear ramesh

            I am so sorry that i have not replied your email for several days,these days,i did not feel well,i have been in the hospital ,but

    i still so worry about my problems these days,i really want your help. how can i fullfill to remove the jitter in my source code when lsw 1 to 2,like the

    HV_PM_ACI_Sensorless.out provided by TI can  control the PMSM well.

    best regards!

    jack

  • Hi Jack,

    Wish you get well soon. 

    The transition jitter is common and is acceptable in many applications.

    Best regards,

    ramesh

  • Dear ramesh

        thank you for your help.

    but i use the HV_PM_ACI_Sensorless.out provided by TI in the U disk with the kit i bought to drive my PMSM, it is well done,there is no any jitter.

    can you help me to find the source code of HV_PM_ACI_Sensorless.out? i want to see it . thank you !

    best regards

    jack

  • jack,

    the .out for the GUIs that are here

    C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.0\~GUI

    are not made available, just because we don't want to try to support a bunch of questions on it. But this project is simply combining the source code projects, in this case

    C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.0\HVACI_Sensorless

    and

    C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.0\HVPM_Sensorless

     

    you should be able to get the same performance by using the source code project for the PM_Sensorless

     

  • Dear ramesh

    i am working on the bldc_sensored project,and there are some prolems i do not understand .as follows:

    #define HALL3_READ_MACRO(v) \
    v.CmtnTrigHall = 0; /* Reset trigger, it only handshakes with calling program.*/ \
    if (v.EdgeDebounced==0) /* Debounce current position. */ \
    { \
    HALL3_DEBOUNCE_MACRO(v) \
    v.CmtnTrigHall = v.EdgeDebounced; /* Set Commutation trigger here*/ \
    } \
    else /* If current position is debounced, find match in table */ \
    HALL3_NEXT_STATE_MACRO(v) /* and return pointer to current state. Ptr to be incremented*/ \
    /* by MOD6CNT after RET.*/ \
    \
    v.EdgeDebounced = 0; /* Reset trigger*/

    the varible EdgeDebounced i do not understand.can you help me to explian it?

    best regards

    jack