zwsyau 发表于 2013-2-19 17:04:12

三相220V交流逆变器

现在我在做一个产品,是利用dsPIC30F6010A芯片做的离网三相逆变产品,就是相电压恒定控制输出(220/50Hz),现在通过AD自动采样交流逆变的电压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吗? PI计算的输入值NextPoint是用反馈电压的瞬时值还是有效值啊?

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

3.经过PID运算后的值PIDworth,怎么和M值对应起来?(0<M<1),就是PIDworth怎么改变调制比M。

谢谢,大家指教。

zwsyau 发表于 2013-2-19 17:13:05

第一次做电源相关的,以前没有做过,请大侠多多指教。

physics 发表于 2013-2-19 17:43:39

n0831 发表于 2013-2-20 13:03:15

一点个人理解,也正在做单相的。
1,设置值,我认为可以是调制比,或者是输出电压值,对于单片机的话选调制比比较好,便于在中断中直接参与计算。dsp运算快,关系不太大。
2,有正有负,直接参与运算就行了吧。
3,反馈回来的ad值,也经过转换成对应的调制比值,或者是实际输出值,就是要和1中的设置值单位统一。

zwsyau 发表于 2013-2-20 17:08:34

n0831 发表于 2013-2-20 13:03 static/image/common/back.gif
一点个人理解,也正在做单相的。
1,设置值,我认为可以是调制比,或者是输出电压值,对于单片机的话选调制 ...

能参考下您的逆变器PI控制部分的程序或者思路吗?
要是用AD采样的实际输出电压PI的输入,使用电压的瞬时值还是有效值啊?

zwsyau 发表于 2013-2-20 17:11:15

电流内环电压外环的控制方法是什么意思啊?小的以前没搞过电源,请教一下,谁有相关的资料分享下别,谢了。

n0831 发表于 2013-2-20 17:18:47

zwsyau 发表于 2013-2-20 17:08 static/image/common/back.gif
能参考下您的逆变器PI控制部分的程序或者思路吗?
要是用AD采样的实际输出电压PI的输入,使用电压的瞬时 ...

PI也还在理论阶段,反馈值使用半波平均值估算,DSP的话,可以使用瞬时值,也可以使用有效值
页: [1]
查看完整版本: 三相220V交流逆变器