TI论坛
直播中

周必镜

8年用户 989经验值
私信 关注
[问答]

28035控制ACI 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模块,如果电机改变了,有哪些部分需要改变或者增加减少的?
问题有点多,第一次接触这个不是很懂,有些模块看了也不是很懂,希望各位大牛能帮下小弟,而且快要上电机了,我怕弄不清楚烧坏电机。在这里先感谢大家了。

回帖(3)

周必镜

2018-9-10 10:06:24
怎么没有人帮忙看看,各位TI的大牛们,帮我看看这些问题,最近项目真的很急,感谢大家了。
举报

陈飞

2018-9-10 10:17:36
 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模块,如果电机改变了,有哪些部分需要改变或者增加减少的?
不需要修改。
 
                                                                         Young Hu
举报

陈静

2018-9-10 10:34:51
引用: Arttronix 发表于 2018-9-10 15:20
 1、我知道idref是磁通分量变量,例程初始值是_IQ(0.1);,不知道这个依据是什么,设为什么值比较好?如果我换了别的电机是不是需要修改呢?
这个值要根据带载的情况调整,需要在调试的时候修改。
        2、我看那个PI模块有一些变量需要另外赋值:

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

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

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

更多回帖

发帖
×
20
完善资料,
赚取积分