TI中文支持网
TI专业的中文技术问题搜集分享网站

设置观测器抽取后EST_run函数是如何实现抽取的?

#define USER_PWM_FREQ_kHz                (20.0)

#define USER_NUM_PWM_TICKS_PER_ISR_TICK        (1)

#define USER_NUM_ISR_TICKS_PER_CTRL_TICK       (1)

#define USER_NUM_CTRL_TICKS_PER_CURRENT_TICK   (1)

#define USER_NUM_CTRL_TICKS_PER_EST_TICK       (2)

通过修改USER_NUM_CTRL_TICKS_PER_EST_TICK 为2,对观测器设置2分频后, EST_run(obj->estHandle,CTRL_getIab_in_addr(handle),CTRL_getVab_in_addr(handle),
         pAdcData->dcBus,TRAJ_getIntValue(obj->trajHandle_spd));函数由于并没有TICKS判断代码,因此该函数从逻辑上看仍然是每个CTRL_TICK执行一次。

另外,观测器2分频后,angleComp_pu = CTRL_angleDelayComp(handle, angle_pu);函数没有分频,仍然是每个CTRL_TICK执行一次,但angleCompFactor的计算结果由1.5变为了2.5。_iq angleCompFactor = _IQ(1.0 + (float_t)USER_NUM_PWM_TICKS_PER_ISR_TICK * (float_t)USER_NUM_ISR_TICKS_PER_CTRL_TICK * ((float_t)USER_NUM_CTRL_TICKS_PER_EST_TICK – 0.5));

请问:

1)EST_run()是通过函数内部逻辑实现分频的吗?如果是这样的话,2分频后,EST_run()连续2次返回的角度是一样的吗?

2)为什么观测器2分频后,CTRL_angleDelayComp()函数进行角度补偿时,angleCompFactor需要由1.5变为了2.5?

3)在PWM频率为20KHz的条件下,需要控制最高电流频率2000Hz电机,观测器2分频后只有10KHz,不能满足10倍于电机电流频率的要求,但电流控制仍是20KHz,可以满足10倍的要求,请问如果实际项目中采用这样的配置合理吗?

Annie Liu:

为更加有效地解决您的问题,我们建议您将问题发布在E2E英文技术论坛上https://e2e.ti.com/support/microcontrollers/c2000/f/171,将由资深的工程师为您提供帮助。我们的E2E英文社区有TI专家进行回复,并得到全球各地工程师的支持,分享他们的知识和经验。

赞(0)
未经允许不得转载:TI中文支持网 » 设置观测器抽取后EST_run函数是如何实现抽取的?
分享到: 更多 (0)