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.

ACIM的参数及修改问题



           各位TI的工程师们,你们好!

          我最近在做28035控制ACI,参考HVACI_Sensorless_PFC例程进行修改,使用的交流电机功率是0 --700W。准备上电机测试,还有一些例程的参数设置及模块不了解,希望大家能帮我解答一下。

        1、我知道idref是磁通分量变量,例程初始值是_IQ(0.1);,不知道这个依据是什么,设为什么值比较好?如果我换了别的电机是不是需要修改呢?

        2、我看那个PI模块有一些变量需要另外赋值:

                   pi_spd.Kp = _IQ(2.0);
                   pi_spd.Ki = _IQ(T * SpeedLoopPrescaler / 0.5);
                   pi_spd.Umax = _IQ(0.95);
                   pi_spd.Umin = _IQ(-0.95);

              不知道这几个值跟电机有没有关系,换了其他电机需不需要改?如果需要修改要怎么修改?

        3、刚开机ADC需要偏移测量到1.65V的电压范围

               // DC offset measurement for ADC
              if (IsrTicker >= 5000) {
                      offsetA = _IQmpy(K1,offsetA) + _IQmpy(K2,_IQ12toIQ(AdcResult.ADCRESULT1)); //Phase A offset
                      offsetB = _IQmpy(K1,offsetB) + _IQmpy(K2,_IQ12toIQ(AdcResult.ADCRESULT2)); //Phase B offset
                      offsetC = _IQmpy(K1,offsetC) + _IQmpy(K2,_IQ12toIQ(AdcResult.ADCRESULT3)); //Phase C offset
                }

            现在我这部分的采样电路基本和例程一样,只是电机变了,不知道K1,K2系数需要改变吗?

         4、还有下面的这段代码是说电流环运行次数是速度环的10倍,为什么要这么设?10倍是按照电机的运行状况来设的吗?

                 if (SpeedLoopCount == SpeedLoopPrescaler) {
                         pi_spd.Ref = rc1.SetpointValue;
                        pi_spd.Fbk = se1.WrHat;
                       PI_MACRO(pi_spd)
                      SpeedLoopCount = 1;
                     } else
                     SpeedLoopCount++;

          5、不知在这个例子中的这些PI,PARK,CLAREK,PHASEVOLT ,ACI_FE。ACI_SE模块,如果电机改变了,有哪些部分需要改变或者增加减少的?

问题有点多,第一次接触这个不是很懂,有些模块看了也不是很懂,希望各位大牛能帮下小弟,而且快要上电机了,我怕弄不清楚烧坏电机。在这里先感谢大家了。

  • 怎么没有人帮忙看看,各位TI的大牛们,帮我看看这些问题,最近项目真的很急,感谢大家了。

  •  1、我知道idref是磁通分量变量,例程初始值是_IQ(0.1);,不知道这个依据是什么,设为什么值比较好?如果我换了别的电机是不是需要修改呢?

    这个值要根据带载的情况调整,需要在调试的时候修改。

            2、我看那个PI模块有一些变量需要另外赋值:

                       pi_spd.Kp = _IQ(2.0);
                       pi_spd.Ki = _IQ(T * SpeedLoopPrescaler / 0.5);
                       pi_spd.Umax = _IQ(0.95);
                       pi_spd.Umin = _IQ(-0.95);

                  不知道这几个值跟电机有没有关系,换了其他电机需不需要改?如果需要修改要怎么修改?

    PID的参数,肯定是有关系的,也是在调试的时候修改,观察电流波形的情况,调整速度环。

            3、刚开机ADC需要偏移测量到1.65V的电压范围

                   // DC offset measurement for ADC
                  if (IsrTicker >= 5000) {
                          offsetA = _IQmpy(K1,offsetA) + _IQmpy(K2,_IQ12toIQ(AdcResult.ADCRESULT1)); //Phase A offset
                          offsetB = _IQmpy(K1,offsetB) + _IQmpy(K2,_IQ12toIQ(AdcResult.ADCRESULT2)); //Phase B offset
                          offsetC = _IQmpy(K1,offsetC) + _IQmpy(K2,_IQ12toIQ(AdcResult.ADCRESULT3)); //Phase C offset
                    }

                现在我这部分的采样电路基本和例程一样,只是电机变了,不知道K1,K2系数需要改变吗?

    不需要修改!

             4、还有下面的这段代码是说电流环运行次数是速度环的10倍,为什么要这么设?10倍是按照电机的运行状况来设的吗?

                     if (SpeedLoopCount == SpeedLoopPrescaler) {
                             pi_spd.Ref = rc1.SetpointValue;
                            pi_spd.Fbk = se1.WrHat;
                           PI_MACRO(pi_spd)
                          SpeedLoopCount = 1;
                         } else
                         SpeedLoopCount++;

    为了稳定的FOC控制,速度环一般都是要慢于电流环,一般是设定为10倍即可。

              5、不知在这个例子中的这些PI,PARK,CLAREK,PHASEVOLT ,ACI_FE。ACI_SE模块,如果电机改变了,有哪些部分需要改变或者增加减少的?

    不需要修改。

     

  • " 1、我知道idref是磁通分量变量,例程初始值是_IQ(0.1);,不知道这个依据是什么,设为什么值比较好?如果我换了别的电机是不是需要修改呢?

    这个值要根据带载的情况调整,需要在调试的时候修改。"

    你好!这一点我不太清楚,请问这个磁通分量应该怎么测得,如果我应用在电动车上面,电动车的带载情况是时刻变化的,应该怎么设置这个磁通分量?非常感谢