刚刚开始看InstaSPIN-FOC,有几个疑惑:
1、其中EST_run是在ROM中,无法看到源码,那么关于CTRL_run和CTRL_setup是提供源码的吗?(因为还没有完全看懂,所以问下这个问题。)
2、关于svgen实现是在svgen.h文件中吗?是下面这个计算过程吗?没有看懂是根据什么原理计算的。
// find order Vmin,Vmid,Vmax
if (Va > Vb) {
Vmax = Va;
Vmin = Vb;
}
else
{
Vmax = Vb;
Vmin = Va;
}
if (Vc > Vmax)
{
Vmax = Vc;
}
else if (Vc < Vmin)
{
Vmin = Vc;
}
Vcom = _IQmpy(Vmax+Vmin, _IQ(0.5));
// Subtract common-mode term to achieve SV modulation
pT->value[0] = (Va – Vcom);
pT->value[1] = (Vb – Vcom);
pT->value[2] = (Vc – Vcom);
3、在过调制中,基值是Udc/sqrt(3),最大值是4/3,这个最大值是怎么计算得到的?
谢谢!
Eric Ma:
1. CTRL_RUN 和 CTRL_SETUP提供源码,你可以查看历程。
3. 4/3这个最大值是在SVPWM原理中调试率中的,你可以去查看一下SVPWM的书籍。
ERIC
刚刚开始看InstaSPIN-FOC,有几个疑惑:
1、其中EST_run是在ROM中,无法看到源码,那么关于CTRL_run和CTRL_setup是提供源码的吗?(因为还没有完全看懂,所以问下这个问题。)
2、关于svgen实现是在svgen.h文件中吗?是下面这个计算过程吗?没有看懂是根据什么原理计算的。
// find order Vmin,Vmid,Vmax
if (Va > Vb) {
Vmax = Va;
Vmin = Vb;
}
else
{
Vmax = Vb;
Vmin = Va;
}
if (Vc > Vmax)
{
Vmax = Vc;
}
else if (Vc < Vmin)
{
Vmin = Vc;
}
Vcom = _IQmpy(Vmax+Vmin, _IQ(0.5));
// Subtract common-mode term to achieve SV modulation
pT->value[0] = (Va – Vcom);
pT->value[1] = (Vb – Vcom);
pT->value[2] = (Vc – Vcom);
3、在过调制中,基值是Udc/sqrt(3),最大值是4/3,这个最大值是怎么计算得到的?
谢谢!
zdc:
回复 Eric Ma:
谢谢!
SVPWM最大值为(2/3)Udc,这样PU值也就是2/sqrt(3)。
没有找到4/3相关资料,后面再去看吧。
刚刚开始看InstaSPIN-FOC,有几个疑惑:
1、其中EST_run是在ROM中,无法看到源码,那么关于CTRL_run和CTRL_setup是提供源码的吗?(因为还没有完全看懂,所以问下这个问题。)
2、关于svgen实现是在svgen.h文件中吗?是下面这个计算过程吗?没有看懂是根据什么原理计算的。
// find order Vmin,Vmid,Vmax
if (Va > Vb) {
Vmax = Va;
Vmin = Vb;
}
else
{
Vmax = Vb;
Vmin = Va;
}
if (Vc > Vmax)
{
Vmax = Vc;
}
else if (Vc < Vmin)
{
Vmin = Vc;
}
Vcom = _IQmpy(Vmax+Vmin, _IQ(0.5));
// Subtract common-mode term to achieve SV modulation
pT->value[0] = (Va – Vcom);
pT->value[1] = (Vb – Vcom);
pT->value[2] = (Vc – Vcom);
3、在过调制中,基值是Udc/sqrt(3),最大值是4/3,这个最大值是怎么计算得到的?
谢谢!
Eric Ma:
回复 zdc:
这里的4/3是指的调制比。
ERIC