現(xiàn)在我在做一個(gè)產(chǎn)品,是利用dsPIC30F6010A芯片做的離網(wǎng)三相逆變產(chǎn)品,就是相電壓恒定控制輸出(220/50Hz),現(xiàn)在通過(guò)自動(dòng)采樣交流逆變的電壓220V,然后進(jìn)行PI運(yùn)算,PIDworth=PID(ac_value), (ac_value為采用的電壓值)通過(guò)調(diào)整調(diào)制比M大小,來(lái)改變輸出交流電壓的幅值,恒定電壓。
//PID參數(shù)初始化
void PIDInit (void)
{
sPID.SumError = 0;
sPID.LastError = 0; //Error[-1]
sPID.PrevError = 0; //Error[-2]
sPID.Proportion = 0; //比例常數(shù) Proportional Const
sPID.Integral = 0; //積分常數(shù) Integral Const
sPID.Derivative = 0; //微分常數(shù) Derivative Const
sPID.SetPoint = 0; //
}
//增量式 PID計(jì)算部分
//只用到PI控制
u16 PIDCalc( u16 NextPoint )
{
u16 iError,pError,Incpid;
iError = sPID.SetPoint-NextPoint;
pError = iError-sPID.LastError;
Incpid = sPID.Proportion*pError + sPID.Integral*iError;
sPID.LastError = iError;
//返回增量值
return(Incpid);
}
問(wèn)題是:
1. sPID.SetPoint 的值用什么值,是希望的輸出電壓220嗎?
2. 我用的是增量式的PID運(yùn)算,iError會(huì)有正,還有負(fù)的時(shí)候,怎么處理啊?
3. 經(jīng)過(guò)PID運(yùn)算后的值PIDworth,怎么和M值對(duì)應(yīng)起來(lái)?(0
謝謝,大家指教。