推荐一种可编程控制电压的升压电路
vcasm2013/07/11电磁炮 IP:浙江
这些天做了很多电路测试不同的电磁加速方案,一直都用以前改装的离子点烟器整流给高压电容充电,很麻烦,手工操作了几天实在受不了,昨晚用8脚单片机弄了一个升压电路,这个电路很方便调试,可以精确调整需要的电压,而且升压特别快。

用两节26650锂电池7.6的电压测试,1秒内将4个220uf  330V的串联电容升压至1200V,用12V电源,可以2秒左右将两个1000uf500V串联的电容升压至1000V,实测电流18A,连续工作场效应温度不烫手。
如果编程控制电压在500V一下,几乎是瞬间完成升压工作,很适合在单片机控制的电磁炮中使用。
目前一直在找不同的电容组测试性能,并连续跑跑几小时看看稳定性如何。
把电路共享一下给大伙做参考,也算是多一种选择。

随便画的,有些乱,电路如下:
zvs.jpg

实物图:
IMG_0182.jpg

背面电路板:
IMG_0183.jpg   
+200  科创币    虎哥    2013/07/11 鼓励原创技术贴
+5  科创币    robbie    2013/07/11 好厉害啊
+200  科创币    delete    2013/07/11 学习
+20  科创币    奶酪    2013/07/11 鼓舞人心啊哈哈~
+25  科创币    delete    2013/07/11 高质量发帖
+30  科创币    向钱看向厚赚    2013/07/11
+25  科创币    irfp250    2013/07/11 大赞!!
+50  科创币    hefanghua    2013/07/13 单片机ZVS
来自:物理高能技术 / 电磁炮
35
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
vcasm 作者
11年6个月前 IP:未同步
546386
电感采用1.2MM铜线绕30圈
变压器初级 1.0MM铜线 7+7,  次级0.3mm铜线660圈
输出电容选用的是微波炉电容,容量不需要很大,0.3uf,因为只是为了采样电压使用,正在的蓄能电容外界,容量随意。

电路部分采用stc15f104e,两个IO口各输出50%的方波给驱动芯片,需要注意的是其中P3.3开机低信号,需要用同相的驱动芯片,否则开机短路。
初级不需要接谐振电容,调整程序控制输出频率,从低频网上递增,空载电流最小处将代码固定下来,我的变压器的绕法调试了一下,工作在19KHz空载电流20ma(这里的空载是不接外部蓄能电容强制升压工作下的电流,实际上电压充满耗电在2毫安以下)。

外部单片机是前几天做好的线圈模块的控制板,采用1毫秒检测一次蓄能电容电压,发现低于设定值电压1,向stc15f104e P3.5端发送高电平信号,直至蓄能电容高于设定的电压2才转变为低电平,使整个升压板接近不耗电的状态。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
546388
外部单片机控制部分源码

BYTE GetZVSADC()
{
    ADC_CONTR = ADC_POWER|ADC_SPEEDLL|ADC_START|7;
    _nop_();
    _nop_();
    _nop_();
    _nop_();
    while(!(ADC_CONTR&ADC_FLAG));
    ADC_CONTR &= ~ADC_FLAG;

    return  ADC_RES;
}
void Init()
{
    P3M1 = 0x00;        //#00000000B
    P3M0 = 0xfe;        //#11111110B

    
    P1M1 = 0x80;        //#10000000B
    P1M0 = 0x7f;        //#01111111B
        
    K1 = 1;
    K2 = 1;
    K3 = 1;
    K4 = 1;
    K5 = 1;
    K6 = 1;
    K7 = 1;
    K8 = 1;
    K9 = 1;
    K10= 1;
    SW = 1;
    SPK= 1;
    ZVS_PWM = 0;
}
void SetAll(int x)
{
    K1 = x;
    K2 = x;
    K3 = x;
    K4 = x;
    K5 = x;
    K6 = x;
    K7 = x;
    K8 = x;
    K9 = x;
    K10= x;
}
void test()
{
   while(1){
           SetAll(0);    
        Delay1us();
        SetAll(1);
        Delay1us();
   }
}

void Working()
{
    //单片机驱动IGBT给线圈放电
   ........
}
main()
{
    Init();
    Beep(30);
    DelayMs(70);
    Beep(30);
    DelayMs(70);
    Beep(30);
    
    //test();
    
    while(1){    
        Delay1ms();
        if ( GetZVSADC() < 200 ){  //100值正好的500V,低于1000V升压电路工作  
            ZVS_PWM = 1;            
                      while(GetZVSADC() < 210) 升压至1050V停止工作
                             Delay1ms();
        }
        else{
            ZVS_PWM = 0;
            if ( SW == 0 )//发射开关
                Working();
        }
            
    }
    

}
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
546389
升压板源码很简单:



#include <reg51.h>
#include <intrins.h>
#include <stdio.h>

typedef unsigned char BYTE;
typedef unsigned int  WORD;
typedef bit BOOL;  

sfr         P3M1 = 0xb1;    
sfr            P3M0 = 0xb2;    

sbit         K1          = P3^2;  
sbit         K2          = P3^3;    
sbit         LED         = P3^4;
sbit         bWorking     = P3^5;

WORD         count        = 0;

void Delay()        //@11.0592MHz  25us
{
    unsigned char i;

    i = 66;
    while (--i);
}


void Delay50ms()        //@11.0592MHz
{
    unsigned char i, j, k;

    i = 3;
    j = 26;
    k = 223;
    do
    {
        do
        {
            while (--k);
        } while (--j);
    } while (--i);
}


main()
{
    int i;
    
    P3M1 = 0x20;        //#XX100000B
    P3M0 = 0x1f;        //#XX011111B

    K1 = 1;
    K2 = 0;
    LED = 1;
    bWorking = 0;

    if ( !bWorking ){
        for(i=0;i<3;i++){
            Delay50ms();
            LED = 0;
            Delay50ms();
            LED = 1;
        }
    }

    while(1){    
        if ( bWorking ){
            LED = 0;

            K1 = 0;
            Delay();
            K1 = 1;

            K2 = 1;
            Delay();
            K2 = 0;

        }
        else{
            K1 = 1;
            K2 = 0;
            LED = 1;
            Delay();
        }
    }
    

}
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
546390
一个测试,1秒内升压至1200V
IMG_0180.jpg
+25
科创币
着迷者1
2013-07-11
高质量发帖
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
最高主机泡泡
11年6个月前 IP:未同步
546405
回 4楼(vcasm) 的帖子
这个单片机不用晶振的吗。。是不是软件设定的那种。。用的多少MHZ??不过我感觉两个500V电容串联没有1000V耐压,最好低点吧。。我以前两个400V串联700多就炸了,,质量不好说
+1
科创币
vcasm
2013-07-11
不用晶振,两个电源脚,6个IO,一切软件设定,我使用11.0592M
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
张静茹
11年6个月前 IP:未同步
546409
回 5楼(baiwenglong) 的帖子
是4个,另外你那个可能是电容不均压,
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
546420
试验不要紧的,做成成品不仅仅要均压,这4个电容工作几小时后,各个电压:  230,288,242,253
电容的容值测量倒是一致的,万用表未必精确,但是显示值都在208uf,应该是漏电的不同造成长时间积累电压的不同
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
546423
回 5楼(baiwenglong) 的帖子
是的,充到1000V后胆战心惊啊,过去断电的时候带着护目镜一点点靠近,这电容还比较争气,耐压不是虚标,威力很大,曾经试过只充到300V,然后给220uf的闪光电容充电,结果瞬间将闪光电容的两个引脚都烧断,那个声响堪比大威力的电光炮竹,试想500V爆炸了威力一定更加夸张,而且在深更半夜
+1
科创币
光谱
2013-07-11
lz很会作死~
+5
科创币
wenrui
2013-07-11
用电阻放电啊~几百K,1/2W以上的就行~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
liwenlong
11年6个月前 IP:未同步
546432
长知识了 ,我正在学单片机和电磁场,不过我用的是51能做你的这个电路么?
+1
科创币
vcasm
2013-07-11
升压电路可以,只要主频6M以上就可以了,需要编程控制电压需外部添加ADC芯片,我用的12c5204ad内部集成了
+1
科创币
wenrui
2013-07-11
STC15F104E就是51单片机
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
光谱
11年6个月前 IP:未同步
546489
lz很会作死~
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
潜伏者
11年6个月前 IP:未同步
546573
这样用也会有缺陷,因为高压和低压共地,在复杂的强磁环境,和发射后的尖峰杂波,很容易秒掉单片机,而且你这个等于也是用比较器来做检测。建议用431加光耦方案。可以高低压隔离一部分出问题,不会殃及池鱼。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
546597
回 11楼(潜伏者) 的帖子
是有隐患,不过高压电容只有0.3uf,破坏力不算太大,蓄能电容部分有隔离的想法远离这个电路。
没有用光耦,是想精确控制电压,下一步采用STC12C5A60S2作为主控,输出电压能精确到每个伏特,这样做的目的是不仅仅玩电磁炮的测试,其他地方也能作为电源

另外单片机烧了就烧了  换一个重写代码,一分钟的事儿[s:274]
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
潜伏者
11年6个月前 IP:未同步
546745
回 12楼(vcasm) 的帖子
那么实用化以后,换一次单片机要多长时间?
那样成千个买芯片会没有光耦?
你要什么样的?我可以送给你。下个月我的另一个模块也要出炉了,实验时买了好多种光耦。不过做电源的话要用线性光耦,控制的比特率低于40K,817足矣胜任,隔离2千付伏不会有问题
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
潜伏者
11年6个月前 IP:未同步
546748
回 12楼(vcasm) 的帖子
那么实用化以后,换一次单片机要多长时间?
那样成千个买芯片会没有光耦?
你要什么样的?我可以送给你。下个月我的另一个模块也要出炉了,实验时买了好多种光耦。不过做电源的话要用线性光耦,控制的比特率低于40K,817足矣胜任,隔离2千付伏不会有问题
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
.........
11年6个月前 IP:未同步
546753
回 14楼(潜伏者) 的帖子
PWM不用线性光耦吧
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
546756
回 14楼(潜伏者) 的帖子
不用了,光耦手里有很多型号,觉得实验没必要复杂化了,如果追求安全,在人机操作电路那块做一个统一隔离,所有和高压有关的封装在高压区
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
546758
回 15楼(.........) 的帖子
潜伏者的意思是反馈电压部分用线性光耦,PWM一般低速光耦就可以
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
smartboy
11年6个月前 IP:未同步
546765
正在学习单片机过来看看
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
hefanghua
11年6个月前 IP:未同步
546772
这个设计相当于单片机实现ZVS吧?很巧妙的设计。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
whd1982
11年6个月前 IP:未同步
546774
回 11楼(潜伏者) 的帖子
单片机没有你想象的那么脆弱,发射的干扰是瞬间的,基本没啥问题,我单片机几乎是紧挨着线圈装的,间距2厘米都不到,也就驱动可控硅的IO口装了光电,其他没做任何隔离,共地共电源,跑的欢着呢,看门狗都没用
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
潜伏者
11年6个月前 IP:未同步
546861
回 15楼(.........) 的帖子
我说的是431加光耦方案,也就是不用单片机。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
潜伏者
11年6个月前 IP:未同步
546862
回 20楼(whd1982) 的帖子
你用什么电压
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
whd1982
11年6个月前 IP:未同步
546882
回 22楼(潜伏者) 的帖子
300V左右,AD也是直接用电阻分压后接入单片机的
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
st77
11年6个月前 IP:未同步
547186
这个帖子很好,很有意思。
还可以加个LED显示,可以做成成品卖了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
547217
回 21楼(潜伏者) 的帖子
431加光耦方案缺点整体升压电路消耗在电压检测的能量过多,光耦至少需要毫安级电流驱动,也就是说如果输出1000V,即使1毫安的电流作用在经过功率电阻限流的光耦上,至少也要1W,如果光耦的电流是需要5ma,20ma呢?
单片机的好处是检测电压需要的电流值微乎其微,电阻降压可以采用数十M欧姆以上,消耗能量极小,而高电压够了,单片机无脉冲输出,推动线圈的两个场效应全部关闭,整体升压电路工作在微安级别。

其实可以把单片机升压电路整体看成高压区,所有的所有都是高压区,外围控制开关通过光耦控制就可以了,真正的低压区只有简单几个原件。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
547220
刚刚做过实验,两个1000uf500V串联,几秒后输出达到1000V整体电路的电流值维持在10毫安左右(控制板和升压板上光电提示部分整体消耗的电流)
而在1000V输出部分接入10个10M并联的电阻,模拟输出消耗1毫安,整体电路工作在150ma,电流增大了10倍以上,升压电路间歇工作频率由原来的1秒1~2次变为肉眼很难计量频率的持续工作
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
普田电子
11年6个月前 IP:未同步
547514
这做工快工业级别了,赞赞赞
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
潜伏者
11年6个月前 IP:未同步
548129
好吧!我尽快画个图
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
whd1982
11年6个月前 IP:未同步
548144
这种可控的升压电路好处就是可以提供一个相对稳定的电压输出,但其实电炮电容充电用个ZVS足够了,电压稳不稳无所谓,AD检测充电到位自动关闭就行了,电路也相对简单多了,而且用单片机控制输出频率也有一定风险,万一程序跑飞可能会出现烧MOS的情况。。。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
548169
回 29楼(whd1982) 的帖子
不想用光电判断每级的位置,所以每级的加速电压需要精确,这样单片机计算开通时间才会准确一些
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
whd1982
11年6个月前 IP:未同步
548185
回 30楼(vcasm) 的帖子
充电检测用AD做了就已经很精确了啊,我的电炮也是没用光电判断位置,就ZVS+单片机AD充电检测,你这电路的好处就是可以随时控制升压电路的输出电压,而用ZVS的话就定死了,但给电容充电,输出电压是否在控制之内无所谓,只要输出高过电容电压,在电容充满的时候停止充电就行了
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
rocket_man_8
11年6个月前 IP:未同步
548691
不错的制作。论坛里这样动手的人不太多哦。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
vcasm作者
11年6个月前 IP:未同步
548906
回 32楼(老兵) 的帖子
加上一个旋转编码器,调试的时候很方便的设定不同电压观察加速情况,制作完成的成品可以无极调整弹体速度。
变态点每级加一个高压开关管,设置每级不同的电压。。。(差点就按这样的方式刻电路板了)
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
十六夜水月
11年1个月前 IP:未同步
655748
我一直很疑惑,这么大电流,你这个电路板吃的消吗?
我0.8的漆包线在洞洞板上布线,硬给烧断过两次。
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

vcasm
学者 机友 笔友
文章
14
回复
289
学术分
1
2012/10/29注册,1年10个月前活动
暂无简介
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}