This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

如何确定初始角度



在PMSM3-1中是如何计算初始角度的呢?

// -----------------------------------------------------------------------------
if(LockRotorFlag==TRUE) // locked rotor mode
{

// ------------------------------------------------------------------------------
// 链接 PARK 模块的输入 并且调用 park transformation 计算 函数 .
// ------------------------------------------------------------------------------
park1.Alpha = clarke1.Alpha;
park1.Beta = clarke1.Beta;
park1.Angle = 0;
park1.calc( & park1);

// ------------------------------------------------------------------------------
// 链接 PID_REG3 模块的输入 并且调用 PID IQ controller 计算 函数 .
// ------------------------------------------------------------------------------
pid1_iq.Ref = _IQ(IqRef);
pid1_iq.Fdb = park1.Qs;
pid1_iq.calc( & pid1_iq);

// ------------------------------------------------------------------------------
// 链接 PID_REG3 模块的输入 并且调用 PID ID controller 计算 函数 .
// ------------------------------------------------------------------------------
pid1_id.Ref = _IQ(IdRef);
pid1_id.Fdb = park1.Ds;
pid1_id.calc( & pid1_id);

// ------------------------------------------------------------------------------
// 链接 INV_PARK 模块的输入 并且调用 inverse park transformation 计算 函数 .
// ------------------------------------------------------------------------------
ipark1.Ds = pid1_id.Out;
ipark1.Qs = pid1_iq.Out;
ipark1.Angle = 0;
ipark1.calc( & ipark1);

}
// End: LockRotorFlag==TRUE


else if(LockRotorFlag==FALSE) // spinning mode
{
// spinning mode if LockRotorFlag = 0

// ------------------------------------------------------------------------------
// 链接 PARK 模块的输入 并且调用 park transformation 计算 函数 .
// ------------------------------------------------------------------------------
park1.Alpha = clarke1.Alpha;
park1.Beta = clarke1.Beta;
park1.Angle = rg1.Out;
park1.calc( & park1);

// ------------------------------------------------------------------------------
// 链接 PID_REG3 模块的输入 并且调用 PID IQ controller 计算 函数 .
// ------------------------------------------------------------------------------
pid1_iq.Ref = _IQ(IqRef);
pid1_iq.Fdb = park1.Qs;
pid1_iq.calc( & pid1_iq);

// ------------------------------------------------------------------------------
// 链接 PID_REG3 模块的输入 并且调 PID ID controller 计算 函数 .
// ------------------------------------------------------------------------------
pid1_id.Ref = _IQ(IdRef);
pid1_id.Fdb = park1.Ds;
pid1_id.calc( & pid1_id);

// ------------------------------------------------------------------------------
// 链接 INV_PARK 模块的输入 并且调用 inverse park transformation 计算 函数 .
// ------------------------------------------------------------------------------
ipark1.Ds = pid1_id.Out;
ipark1.Qs = pid1_iq.Out;
ipark1.Angle = rg1.Out;
ipark1.calc( & ipark1);

}
// End: LockRotorFlag==FALSE