世纪电源网社区logo
社区
Datasheet
标题
返回顶部
已解决

逆变器的输出直流分量高精度检测

[复制链接]
查看: 7453 |回复: 29
1
zhw40304
  • 积分:907
  • |
  • 主题:12
  • |
  • 帖子:196
积分:907
LV6
高级工程师
  • 2013-1-17 16:27:14
10问答币
逆变器由于种种原因都会在输出时候产生直流分量,产生原因和危害各种文献都讲了很多,如何高精度的检测和抑制,请大家从软件和硬件角度给些建议。多谢!

最佳答案

查看完整内容

针对下列情况发生的直流偏移的解决办法: 1:基准正弦波的直流分量; 这个只是在模拟芯片产生的基准正弦波形上发生,数值控制没有这个问题 2:控制电路中运算放大器的零漂; 在数值控制里,这个主要是指MCU对系统中心AD读数可能出现的偏移,要的动态校正,办法是不断读零线电压AD值,平均、调整系统中心。控制对象是电压。 2.1、并网电流检测误差;并网电流传感器的零点漂移 就要选好用的运放了,力求温飘 ...
收藏收藏4
peterupf
  • 积分:110
  • |
  • 主题:0
  • |
  • 帖子:5
积分:110
LV2
本网技师
  • 2013-1-18 09:55:33
 
这个直流分量还是很难控制的
我觉得最大的难点是对他的检测
特别是电流的直流分量
电压的感觉还好一些
niyiban
  • 积分:1471
  • |
  • 主题:21
  • |
  • 帖子:592
积分:1471
LV6
高级工程师
  • 2013-1-18 10:38:58
 
从过零,就是每周期都计数一次,

加入PI反复调整,

还有过零后直接数时间。。。 电感电流
nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2013-1-18 12:08:14
 
这个是要积分的,一直积下去,结果就是直流分量
zhw40304
  • 积分:907
  • |
  • 主题:12
  • |
  • 帖子:196
积分:907
LV6
高级工程师
  • 2013-1-18 16:32:47
 
现在是面临的问题是第一是采样,第二是处理。采样精度高了,才有最基本的保障处理。采样大家用什么好的方法啊!还是就是采样到了直流分量,这个软件接下如何去处理抑制这个直流分量,大家可以指导下!甚谢!
nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2013-1-18 16:49:42
 
关于检测,你既然在用软件处理,那还不简单?叫你一直积分下去,积分值就是直流分量,用软件算这个是最简单的了。
        至于处理,那是另外回事:
        最简单的处理,积分都不需要,也就是说不需要检测,诀窍是正半周和负半周分别控制,但是控制指标要一样,比如正半周峰值按400V控制,占空为Du+,而负半周要达到同样的峰值,需要的占空是Du-。Du+一直跟着正半周走,不管负半周;Du-一直跟着负半周走,不管正半周。这个方法最简单,动态平衡,逐周期平衡,收敛时间最短,不会产生直流分量。OK?
        程序参考:
        变量定义:
          #define  cu   c.eu           // 七位状态字,其中:
  #define  c0   c.w.a                  // 负半周足压字
  #define  c1   c.w.b                  // 正半周足压字
  #define  c2   c.w.c                  // 半周字(正半周为1)
  #define  c3   c.w.d                  // 过流字
        相关程序:
                if(                                          // 周期PWM调节 -------------------
           !(c2&&c1                                      // 除非:正半周时上个正半周足压
          ||!c2&&c0                                      // 或者:负半周时上个负半周足压
          )){                                                // 否则开始增加PWM调节
          if(PR2>53)PR2-=4;                          // 有调频情节,减周长
          else if(CCPR1L<51){                        // 否则如果:占空可调
             if(CCP1CON<60)CCP1CON+=16;     // 有微调空间 微升一格占空
            else{CCP1CON=12;CCPR1L++;        // 无微调空间,整升一格占空
                            }}}                             // 周期PWM调节完------------------
        
ht_lb@126.com
  • 积分:17104
  • |
  • 主题:131
  • |
  • 帖子:7948
积分:17104
LV10
总工程师
  • 2013-1-19 00:12:06
 
多谢李工分享,学习了
zhw40304
  • 积分:907
  • |
  • 主题:12
  • |
  • 帖子:196
积分:907
LV6
高级工程师
  • 2013-1-19 11:14:26
 
李工的这个方法是很不错。我也见过样机没有检测电路,这么思路处理有一定优势。这个电压环是相对容易处理点,如果电流环的逐点处理是不运算量就很大了呢。还有一个问题,测试了几台独立逆变器,尽然发现正负电压都不是对称的(正最大和负最大相差几伏)。这个有如何处理呢
zhw40304
  • 积分:907
  • |
  • 主题:12
  • |
  • 帖子:196
积分:907
LV6
高级工程师
  • 2013-1-19 11:17:00
 
还有我就是做了检测电路,现在是一直积分下去,最后是一个直流量。送给了单片机。软件下来如何处理,请指导下!
nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2013-1-19 11:38:19
 
电流和电压处理没有什么不同,几乎不增加运算量。
        参考我给的例子:足压字是怎么产生的呢?
        假设在正半周,发生了下列情形之一,正半周足压字c1赋值1,否则赋值0:
        1、电压峰值超过额定值,并进行了限压调节
        2、电流峰值超过额定值,并进行了限流调节
        这样一来,电压电流都趋向于完全对称。即使短路运行亦如此。
        我是只处理峰值,没必要逐点处理,因为,电压或者电流超标可能是突发的,在周期内任何一个时间段都可能发生,只要你不超过峰值,我不做足压处理,最多只是修正波形。只要你超过峰值,我立即减占空,做足压字。超标调节可能一个半周只发生一次,也可能很多次。都是一样的应付。代码只有那一句。
         
        程序参考:
相关变量定义:
  #define  vb    ee[1]   // 输出电压
  #define  v0    ee[5]   // 基准正弦电压AD值
  #define  vch   ee[7]   // 输出电流峰值
  #define  v3    ee[8]   // 输出电压峰值AD基准
          #define  vc    ee[9]   // 电流AD绝对值
          #define  vhh   425    // 280V超压保护值
  #define  vcp   95      // 输出电流过流保护值

相关程序:
            if(vb>v0){                                        // 过压调节
              if(vb>v3){                                      // 超峰值     
        if(c2)c1=1;else c0=1;                   // 足压字
        if(CCP1CON>16)CCP1CON-=16;    // 调节占空
        else{CCPR1L--;CCP1CON=60;}}
      else {                                             // 不超峰调节(修正波形)
....
....
      if(vc>vcp){                                      // 过流调节
        if(CCP1CON>16)CCP1CON-=16;    // 微减占空
        else{                                            // 微减失调
          if(CCPR1L>2)                             // 占空范围内
            {CCPR1L--;CCP1CON=60;}      // 整减占空
          else                                           // 占空失调
            if(PR2<251)PR2+=4;}            // 保持最小占空,降低PWM频率
        c3=1;                                         // 过流字
        if(c2)c1=1;else c0=1;}                // 足压字
         
        第二个问题,如果不对称是有规律的,比如正半周始终比负半周电压高,处理起来也很简单,只需要对正负半周分别设置2个额定值,正半周的额定值低于负半周的额定值就行了,低多少?根据直流分量检测的积分值确定。
        如果不对称是随机的,如果没有控制,多半是电路有问题,如果有控制,就是环路稳定性问题了。
        关于环路,做数控的没有必要完全拘泥于模电的环路理论,那个是基于运放的,没有智能。
        最后一个问题的处理同上
        
zhw40304
  • 积分:907
  • |
  • 主题:12
  • |
  • 帖子:196
积分:907
LV6
高级工程师
  • 2013-1-21 08:40:27
 
李工多谢您百忙中指导!我查询了相关文献:
产生原因:

对于采用SPWM调制技术的逆变器,单极性调制和双极性调制都无法消除逆变器输出电流的直流分量。

1基准正弦波的直流分量

2控制电路中运算放大器的零漂

并网电流检测误差;并网电流传感器的零点漂移

3开关器件不一致以及驱动脉冲分配

功率开关管导通和关断时间不对称;PWM调制过程中脉宽不平衡;驱动信号不匹配;死区时间的不对称;

这样子去处理,上面的方法我看到了解决正负半周不对称用您说的足压字方法很妙。请您百忙中帮忙分析如何去解决直流分量的,直流分量是输出正弦里面包含的直流偏置。甚谢!

对了,李工您现在说的直流分量我看出了,半周期由于直流分量而偏移(就是用示波器的交流档去测试波形),我现在想解决是整个正弦偏移了一个直流值(就是直接用示波器的直流档去测试输出)。请李工分析下。

nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2013-1-21 20:50:58
 
我上面说的就是解决直流分量的方法,直流分量就是说的是正负半周不对称,还有别的情况吗?
zhw40304
  • 积分:907
  • |
  • 主题:12
  • |
  • 帖子:196
积分:907
LV6
高级工程师
  • 2013-1-22 09:12:02
 
李工,我看文献发现正负半周不对称是一种,还有一种貌似正负半周是对称的,整体偏移一个直流值,李工可能我理解有误。
nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2013-1-22 13:59:54
 
整体偏移一个直流值,虽然很正弦,但是正负半周就不对称了
zhw40304
  • 积分:907
  • |
  • 主题:12
  • |
  • 帖子:196
积分:907
LV6
高级工程师
  • 2013-1-23 08:40:41
 
李工整体偏移一个直流值,我这么理解您看对不啊。零轴(X轴)正负对称(这是理想的,也是对的)。偏移了一个直流值,那样我觉得还是对称(这时候只是对称轴不是零轴了),但是还有一个新的对称轴。李工您认为偏移一个直流值可以定义为不对称了?甚谢!
nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2013-1-23 10:08:38
 
如果有一个新的对称轴,意味着X轴不再是对称轴了,如果X轴不是对称轴,波形就不再是对称的了。
zhw40304
  • 积分:907
  • |
  • 主题:12
  • |
  • 帖子:196
积分:907
LV6
高级工程师
  • 2013-1-24 10:16:53
 
李工这个我明白了,多谢。是很多文献定义的不同。
nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2013-1-23 10:31:12
 
针对下列情况发生的直流偏移的解决办法:
1基准正弦波的直流分量

这个只是在模拟芯片产生的基准正弦波形上发生,数值控制没有这个问题

2控制电路中运算放大器的零漂

在数值控制里,这个主要是指MCU对系统中心AD读数可能出现的偏移,要的动态校正,办法是不断读零线电压AD值,平均、调整系统中心。控制对象是电压。

2.1、并网电流检测误差;并网电流传感器的零点漂移

就要选好用的运放了,力求温飘小。但是这个问题要分两方面看

a、对于限流(短路保护)控制,(不对称)精度允许较电压控制低。

b、对于并网电流,精度取决于相位(也就是过零点的时刻)、以及由积分及均方根获得的全周期电流有效值,不仅仅是受限于运放采样,况且也是可以校正的。

3开关器件不一致以及驱动脉冲分配 功率开关管导通和关断时间不对称;PWM调制过程中脉宽不平衡;驱动信号不匹配;死区时间的不对称;

这个就是前面讲的控制内容了。

zhw40304
  • 积分:907
  • |
  • 主题:12
  • |
  • 帖子:196
积分:907
LV6
高级工程师
  • 2013-1-24 10:17:14
 
这个给力!
因为产生原因的不同是解决的方法需要不同,不是一个方法解决所有问题!
绍兴大力
  • 积分:1987
  • |
  • 主题:40
  • |
  • 帖子:372
积分:1987
版主
  • 2013-1-25 10:12:34
 
不错学习了。
框子
  • 框子
  • 离线
  • LV6
  • 高级工程师
  • 积分:682
  • |
  • 主题:51
  • |
  • 帖子:127
积分:682
LV6
高级工程师
  • 2013-3-28 10:58:59
  • 倒数10
 
马克一下,以后研究
nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2017-6-18 09:38:12
  • 倒数9
 
analogpie   
关于您在“逆变器的输出直流分量高精度检测”的帖子
版主,看到您在“逆变器的输出直流分量高精度检测”里回帖,对逆变器直流分量的处理,想请教一下:
我目前调试的逆变器,对每台的固定调偏都不同,后来用求一周期内平均值的办法,想求出直流分量,再调整偏置。采用一个周期采样点减去偏置后累加求平均,再PI增量控制调整偏置,实际结果是逆变器输出中点在一定范围内漂移,想请教一下,这种做法可行否,还有能否根据您的经验给些指点。
nc965
多年不搞数控逆变了,都忘得差不多了,一时半会捡不回来了,你参考原贴吧
nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2017-6-18 10:09:50
  • 倒数8
 
直流分量,记得当年的代码,过零检测后第一个ADC检测进入累加器,每个半周只累加一个数据,固定周期(比如64个周期)平均一次,就是新的零电平,动态修正。
相关变量:
  //ADC采样口: ADCON0=
  #define  IC   149                       // AN5/RC1-----输出电流
  #define  z       e[4]                    // IC采样计数
  #define  vc0   ee[2]                   // IC输出中性电流
相关代码:
vc0=ad(IC);                               // 读IC
do{                                                 // 系统主循环开始
      do{                                           // 过零等待
        if(c2){if(!C1OUT){c2=0;break;}}   // 等负半周到(C1比较器翻转
         else {if(C1OUT){c2=1;break;}}    // 等正半周到(C1比较器翻转
//......
     GODONE=1;                                // 输出过零电流IC采样
//.....
        while(GODONE);                       // IC零电流读数
        s1=ADRESH;s0=ADRESL;           // IC采样值
        z++;v64+=s2;                          // 中心电流积分
        if(z>63){v64>>=6;                   // 满64次取平均值
          vc0=v64;v64=0;z=0;}              // 刷新vc0
//.....
analogpie
  • 积分:133
  • |
  • 主题:0
  • |
  • 帖子:7
积分:133
LV2
本网技师
  • 2017-6-18 12:15:22
  • 倒数7
 
多谢指教!
您的意思是采集过零时刻的输出电压,再多次平均后算出偏移量,再根据这个偏移去校正。
这就需要过零检测电路了,同时如果对于输出直流偏置在几百毫伏的情况下,因为交流电压取样比例比较小,这个过零电压AD也读不准(10位AD),难道还需要检测电路的配合吗?
nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2017-6-18 12:25:56
  • 倒数6
 
没电路,直接读零线AD,10位AD一般在512附近,正负偏差一般在16格(大约16V)以内。
无须再去校正什么,刷新vc0就行,vc0就是较正后的过零电平。
analogpie
  • 积分:133
  • |
  • 主题:0
  • |
  • 帖子:7
积分:133
LV2
本网技师
  • 2017-6-18 12:51:55
  • 倒数5
 
还是不太明白,版主所说的零线AD是指?
我这逆变器用的是瞬时值PI反馈,逆变思路大概如下:Vout=采样电压-512(理论上中点),这个Vout再和参考正弦表做差,再进行PI运算等。
实际调整的时候,理论上的中点(512),需要在进行偏移量调整,Vout=采样电压-512-调整量;这个是我理解的校正。


                                          
                                             
nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2017-6-18 14:25:05
  • 倒数4
 
之前说复杂了,主要不同点在于有没有(片上)比较器检测过零,我觉得一定要有的。
能不能不用过零算法实现直流电平自动补偿,没研究过,估计是困难的。补偿一定是个闭合的环路,真实的零线(由比较器确定)与AD采样电平(这个是会飘的)之间的补偿。
512只是个理论值,你最多可以作为一个初始值使用,在第一轮64次平均之后,就不再是512,继续平均就会逼近一个真实的过零,也就完全消除了直流电平。

analogpie
  • 积分:133
  • |
  • 主题:0
  • |
  • 帖子:7
积分:133
LV2
本网技师
  • 2017-6-18 15:23:53
  • 倒数3
 
感谢版主指教。
我的电路是运放差分取样,然后与中点电平叠加(2.5V)送到AD口,系统供电(AD参考)5V,中点电平对应的就是512(10位AD),如你所言,这种情况下的过零检测就是输入信号与中点(2.5V)的比较了,对吗?

nc965
  • 积分:93800
  • |
  • 主题:115
  • |
  • 帖子:27393
积分:93800
版主
  • 2017-6-18 16:45:46
  • 倒数2
 
不对吧,我的检测系统(芯片地)是放在交流侧的,交流的一端N就是比较器一个输入端子,才能测准过零。你这样似乎天然就是飘起的,不能归零。
总之要有个真实的过零定义:L电压大于N电压,为正半周,L电压小于N电压,为负半周。这样即使你所说的2.5V飘到2V,照样可以将直流成分补偿归零。
将就你的差分信号再输入到一个比较器里应该可以来实现这个功能。
大致动作:
负半周进入正半周,比较器翻转,读到一个(差分运放输出上的)AD值,读数比如490
正半周进入负半周,比较器再次翻转,读到下一个AD值,比如430(因为翻转有延迟、有失调、有温飘,因此正负半周的读数一定有相当差距的,但这没关系)
那过零电平一定是两个数的平均值460(而不是512),至于512怎么变到460了,啥情况都有可能,你可以不去关心。
同时你也分清了正半周和负半周,然后:
正半周期间的电压 Vout=采样电压-460
负半周期间的电压 Vout=460-采样电压
如果你觉得两个数平均操作频繁,可能不稳,你就64个数平均一次。


analogpie
  • 积分:133
  • |
  • 主题:0
  • |
  • 帖子:7
积分:133
LV2
本网技师
最新回复
  • 2017-6-18 21:32:28
  • 倒数1
 
多谢指教!
按您的思路我试试。
热门技术、经典电源设计资源推荐

世纪电源网总部

地 址:天津市南开区黄河道大通大厦8层

电 话:400-022-5587

传 真:(022)27690960

邮 编:300110

E-mail:21dy#21dianyuan.com(#换成@)

世纪电源网分部

广 东:(0755)82437996 /(138 2356 2357)

北 京:(010)69525295 /(15901552591)

上 海:(021)24200688 /(13585599008)

香 港:HK(852)92121212

China(86)15220029145

网站简介 | 网站帮助 | 意见反馈 | 联系我们 | 广告服务 | 法律声明 | 友情链接 | 清除Cookie | 小黑屋 | 不良信息举报 | 网站举报

Copyright 2008-2024 21dianyuan.com All Rights Reserved    备案许可证号为:津ICP备10002348号-2   津公网安备 12010402000296号