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

关于永磁同步电机控制中的SVPWM

请问,关于永磁同步电机用SVPWM控制:

我看到的程序都是,在进行电机控制的时候,首先都是配置成 0 中断,然后再在 0 中断里,配置成周期中断,

我想问的是,为什么需要这么做啊?

我的想法是,直接配置成周期中断,然后,比较寄存器配置成影子模式,0 时刻装载新的值。这样,每次计数器的值等于PRD值的时候,

就进入中断,然后更新比较寄存器的值,把更新后的值,写入比较寄存器的影子寄存器,之后在0 时刻,影子寄存器内的值,装载进比较寄存器,

这样正好可以产生SVPWM。

那么请问一下,为什么我看到的程序,都需要,配置成 0 中断,然后再在 0 中断里,配置成周期中断,呢?

我这种做法,不行吗?

rookiecalf:

两种中断中实现的功能是否相同?

请问,关于永磁同步电机用SVPWM控制:

我看到的程序都是,在进行电机控制的时候,首先都是配置成 0 中断,然后再在 0 中断里,配置成周期中断,

我想问的是,为什么需要这么做啊?

我的想法是,直接配置成周期中断,然后,比较寄存器配置成影子模式,0 时刻装载新的值。这样,每次计数器的值等于PRD值的时候,

就进入中断,然后更新比较寄存器的值,把更新后的值,写入比较寄存器的影子寄存器,之后在0 时刻,影子寄存器内的值,装载进比较寄存器,

这样正好可以产生SVPWM。

那么请问一下,为什么我看到的程序,都需要,配置成 0 中断,然后再在 0 中断里,配置成周期中断,呢?

我这种做法,不行吗?

Chess Shung:

回复 rookiecalf:

对的 ,两种中断进入后,都是执行同一个中断子程序,我贴一段这个子程序的代码:

	if(EPwm1Regs.ETSEL.bit.INTSEL == ET_CTR_ZERO){EPwm1Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD;EPwm2Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD;EPwm3Regs.CMPCTL.bit.LOADAMODE = CC_CTR_ZERO_PRD;EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_PRD;}else{tbPrdNext = (Uint16)((long)(1.0/(CPUPRD*(1<<EPWM1_TOTAL_CLKDIV)*2))/(long)fsHzNext);EPwm1Regs.ETSEL.bit.INTSEL = ET_CTR_ZERO;EPwm1Regs.TBPRD = tbPrdNext;EPwm2Regs.TBPRD = tbPrdNext;EPwm3Regs.TBPRD = tbPrdNext;}

之后的代码里,有电流Clarke变换,Park变换,Park逆变换等等,最后还有空间矢量SVPWM调制,

svgen1.Ualpha = -Ualpha1;
svgen1.Ubeta = -Ubeta1;svgen1.vdc = vdc1;
svgen1.vdcbase = 100;
svgen1.Svpwm_Prd = T1PWM_PRD;
svgen1.calc( svgen1 );
svgen1.gen( svgen1 );

请问,关于永磁同步电机用SVPWM控制:

我看到的程序都是,在进行电机控制的时候,首先都是配置成 0 中断,然后再在 0 中断里,配置成周期中断,

我想问的是,为什么需要这么做啊?

我的想法是,直接配置成周期中断,然后,比较寄存器配置成影子模式,0 时刻装载新的值。这样,每次计数器的值等于PRD值的时候,

就进入中断,然后更新比较寄存器的值,把更新后的值,写入比较寄存器的影子寄存器,之后在0 时刻,影子寄存器内的值,装载进比较寄存器,

这样正好可以产生SVPWM。

那么请问一下,为什么我看到的程序,都需要,配置成 0 中断,然后再在 0 中断里,配置成周期中断,呢?

我这种做法,不行吗?

Chess Shung:

回复 rookiecalf:

Changjiang Liu

两种中断中实现的功能是否相同?

请问,关于永磁同步电机用SVPWM控制:

我看到的程序都是,在进行电机控制的时候,首先都是配置成 0 中断,然后再在 0 中断里,配置成周期中断,

我想问的是,为什么需要这么做啊?

我的想法是,直接配置成周期中断,然后,比较寄存器配置成影子模式,0 时刻装载新的值。这样,每次计数器的值等于PRD值的时候,

就进入中断,然后更新比较寄存器的值,把更新后的值,写入比较寄存器的影子寄存器,之后在0 时刻,影子寄存器内的值,装载进比较寄存器,

这样正好可以产生SVPWM。

那么请问一下,为什么我看到的程序,都需要,配置成 0 中断,然后再在 0 中断里,配置成周期中断,呢?

我这种做法,不行吗?

Chess Shung:

回复 rookiecalf:

Changjiang Liu

两种中断中实现的功能是否相同?

请问,关于永磁同步电机用SVPWM控制:

我看到的程序都是,在进行电机控制的时候,首先都是配置成 0 中断,然后再在 0 中断里,配置成周期中断,

我想问的是,为什么需要这么做啊?

我的想法是,直接配置成周期中断,然后,比较寄存器配置成影子模式,0 时刻装载新的值。这样,每次计数器的值等于PRD值的时候,

就进入中断,然后更新比较寄存器的值,把更新后的值,写入比较寄存器的影子寄存器,之后在0 时刻,影子寄存器内的值,装载进比较寄存器,

这样正好可以产生SVPWM。

那么请问一下,为什么我看到的程序,都需要,配置成 0 中断,然后再在 0 中断里,配置成周期中断,呢?

我这种做法,不行吗?

Chess Shung:

回复 Chess Shung:

help

赞(0)
未经允许不得转载:TI中文支持网 » 关于永磁同步电机控制中的SVPWM
分享到: 更多 (0)