西莫电机圈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 3253|回复: 0

[求助] TI PMSM 例程中的电流检测模块中的电流怎么没有标幺化呢

[复制链接]

该用户从未签到

发表于 2012-3-30 00:01 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
TI PMSM 例程中的电流检测模块中的电流怎么没有标幺化呢

主程序里的iq id 都标幺了啊
// Global variables used in this system
float VdTesting = 0;            // Vd testing (pu)
float VqTesting = 0.25;         // Vq testing (pu)
float IdRef = 0;                // Id reference (pu)
float IqRef = 0.2;              // Iq reference (pu)
float SpeedRef = 0.2;           // Speed reference (pu)
float T = 0.001/ISR_FREQUENCY;   // Samping period (sec), see parameter.h


但在这里 ImeasA ImeasB VdcMeas为什么没有标幺?只是转成有符号数然后补偿下
void F281X_ileg2_dcbus_drv_read(ILEG2DCBUSMEAS *p)
{
       int16 DatQ15;
       int32 Tmp;

        // Wait until ADC conversion is completed
        while (AdcRegs.ADCST.bit.SEQ1_BSY == 1)
        {};

        DatQ15 = AdcRegs.ADCRESULT0^0x8000;       // Convert raw result to Q15 (bipolar signal)
        Tmp = (int32)p->ImeasAGain*(int32)DatQ15; // Tmp = gain*dat => Q28 = Q13*Q15
        p->ImeasA = (int16)(Tmp>>13);             // Convert Q28 to Q15
        p->ImeasA += p->ImeasAOffset;             // Add offset
        p->ImeasA *= -1;                                       // Positive direction, current flows to motor

        DatQ15 = AdcRegs.ADCRESULT1^0x8000;             // Convert raw result to Q15 (bipolar signal)
        Tmp = (int32)p->ImeasBGain*(int32)DatQ15; // Tmp = gain*dat => Q28 = Q13*Q15
        p->ImeasB = (int16)(Tmp>>13);             // Convert Q28 to Q15
        p->ImeasB += p->ImeasBOffset;             // Add offset
        p->ImeasB *= -1;                                     // Positive direction, current flows to motor

        DatQ15 = (AdcRegs.ADCRESULT2>>1)&0x7FFF;   // Convert raw result to Q15 (unipolar signal)
        Tmp = (int32)p->VdcMeasGain*(int32)DatQ15; // Tmp = gain*dat => Q28 = Q13*Q15
        if (Tmp > 0x0FFFFFFF)                      // Limit Tmp to 1.0 in Q28
           Tmp = 0x0FFFFFFF;
        p->VdcMeas = (int16)(Tmp>>13);             // Convert Q28 to Q15
        p->VdcMeas += p->VdcMeasOffset;            // Add offset

        p->ImeasC = -(p->ImeasA + p->ImeasB);      // Compute phase-c current

        AdcRegs.ADCTRL2.all |= 0x4040;             // Reset the sequence

}
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|西莫电机圈 ( 浙ICP备10025899号-3 浙公网安备:33028202000436号

GMT+8, 2024-11-25 22:01 , Processed in 0.076253 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表