在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