• 回复
  • 收藏
  • 点赞
  • 分享
  • 发新帖

三相离网式逆变器

 现在我在做一个产品,是利用dsPIC30F6010A芯片做的离网三相逆变产品,就是相电压恒定控制输出(220/50Hz),现在通过自动采样交流逆变的电压220V,然后进行PI运算,PIDworth=PID(ac_value), (ac_value为采用的电压值)通过调整调制比M大小,来改变输出交流电压的幅值,恒定电压。

//PID参数初始化
void PIDInit (void)
{
 sPID.SumError   = 0;      
 sPID.LastError  = 0;       //Error[-1]
 sPID.PrevError  = 0;       //Error[-2]
 
 sPID.Proportion = 0;      //比例常数 Proportional Const
 sPID.Integral   = 0;      //积分常数 Integral Const
 sPID.Derivative = 0;      //微分常数 Derivative Const
 
 sPID.SetPoint   = 0;      //  
}

//增量式 PID计算部分
//只用到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);
}

 

问题是:

1.  sPID.SetPoint 的值用什么值,是希望的输出电压220吗?

2.  我用的是增量式的PID运算,iError会有正,还有负的时候,怎么处理啊?

3.  经过PID运算后的值PIDworth,怎么和M值对应起来?(0

谢谢,大家指教。

全部回复(2)
正序查看
倒序查看
廖远方
LV.9
2
2013-01-16 20:12
不懂单片机帮顶
0
回复
zwsyau
LV.2
3
2013-01-21 21:25
@廖远方
不懂单片机帮顶[图片]

谢谢,在顶下,呵呵。

0
回复