QCWDRSSTC理论与验证实验【120cm Arc @160A OCD】

文 号

823042

10 回复 / 3573 浏览


rb-sama1 年前 -2016-07-19 17:57823042 0阶
准连续全固态特斯拉线圈(QCW.DRSSTC)是特斯拉线圈(谐振变压器型高频高压发生器)的最新发展,大约在六年前由国外提出。这种高压发生器有较长的脉冲宽度,且可以对脉冲波形进行任意调制,以最有利条件进行大气放电,从而创造出极长的电弧。
我在六年前看到STEVE WARD的QCW,立即被惊艳到了,无奈当时技术积累不够,没有立即着手实验,只是对理论进行了一些研究。
而前段时间,终于忙完手头的一些工作,开始想办法做一台出来,好看一看Sword Arc到底是什么样的。
怀着这样的想法,昨天给系统上电了。于是就有了下面的效果。
图片更新于2016年7月20日。
267463

267462

由于是视频截图,所以画质感人。。
视频在此:丢帧严重
http://v.youku.com/v_show/id_XMTY1MzA4NTQ4NA==.html
照片中的QCW电弧是工作在160A@350V bus供电情况下产生的。
一个ontime长度14.5mS 稳定电流为140A左右。
使用的调制电路为BUCK,功率部分是60PD1双并管+75120快恢复二极管。
全桥为60PD1并管全桥,这种IGBT的开关速度很迅速,比较适合用于做QCW。
267464


受到俄国人的启发,用覆铜板做桥也很有一番风味。
做这个桥的主要还是要注意分布电感带来的问题,QCW原理比较简单。做起来会有很多的陷阱,最好提前做好功课。

令我意外的是,QCW的电弧虽然很长,但是非常安静。
没有很强的啪啪声,只会沉闷的“pong”“pong”。
但是在OCD发生保护的时候,会产生清脆的电弧声。

[修改于 1 年前 - 2016-07-22 05:24:43]


rb-sama1 年前 -2016-07-19 18:23823043 1阶
说到QCW,和调制信号是分不开的。
QCW的系统构架和普通DR的唯一区别就在于,给母线电压一个调制信号,而这个调制信号能够直接影响到电弧的生长状态,从而形成各种形态各异的电弧。
http://bbs.kechuang.org/t/80422这篇帖子中,提到了雷击的先导过程。QCW的电弧可以模拟这个过程,也为研究空气中电弧形态提供了一个实验平台。
267352

下面电弧是同一台QCW,这个时候,调制波形是等边三角形。
267355

由于上升沿较陡(斜率高),而下降沿较长所以电弧能量能够产生新的分支,分叉成多股的形态,而由于电弧能量一直在供给,所以最后电弧能够继续生长。
267354

这个电弧的调制波形上升沿比下降沿陡。
267353

由于上升沿更加陡,所以直接从breakpoint分出两束电弧,分别生长。
267356

这张图片是把调制波形变成如下。
267357

最终由于上升速度较为缓慢,而电弧能量不足以打开分叉,从而沿着原有的电离通道不断生长,最终能量下降,表现为电弧尖端细小。

这是一些非常简单的探索,但是非常有意思。
我甚至观察到,如果给电弧的调制波形上,加一些颗粒状的波形调制,电弧也能够在某些点分叉。

这是我特意为QCW项目做的一个专用灭弧器,主控单片机为STM8S105。
以上的调制波形都是由此灭弧器发生的。
267359

图片的左边是充电线,为灭弧盒中的锂电池充电。
下面楼层慢慢更新。。。

[修改于 1 年前 - 2016-07-19 18:35:44]


viscosity1 年前 -2016-07-20 01:25823071 3阶
根据楼主的实验结果来看,放电通道承载的电压到达一定阈值的时候,会产生分支。三种上升率不同的调制波形,电压达到阈值的时间不一样,因此产生分支的点的位置也不一样。达到阈值越快,【分叉点】距离【起弧点】越近。

viscosity1 年前 -2016-07-20 01:28823072 4阶
因此我觉得楼主可以试试“驼峰”波形,看能否产生两次分叉。

rb-sama1 年前 -2016-07-21 15:03823148 5阶
谈一谈灭弧电路部分。
因为是理论论证,为了节约开发周期和成本。
我把灭弧电路与BUCK驱动电路做在一起。
所以这块PCB是有独立调制功能的,也可以从远端通过光纤进行控制。
这些功能的选择通过跳线帽来实现。
原理图如下
267465

清晰原理图PDF下载:
这张原理图的BUCK部分与新加坡的Gaoguangyan提供的原理相同。
266059

同为使用TL3016高速比较器对输入电压与反馈电压进行比较跟随。
通过乒乓控制的方式,使电流波形在一定程度上保持稳定。
实际工作的过程中,我观察到波形的形状与电弧长度与形状关系很大。
闭环能够有效解决电容电压下降,带来的波形失真。
当然还有一种方法是实现同步整流,这样要多出一个死区发生电路与低端驱动。
从最简化设计的角度来看,我选择了比较器方案。
-
267468

而驱动部分,则由于并管数量较多。
并且考虑到未来可能把BUCK功率管拓展为功率模块。
驱动的负载大约在20-40nF大小。
为保险起见,使用了来自大M设计的单供电,正负电压输出IGBT驱动。
实测驱动30nF的负载,上升下降时间能够有效控制在200/150nS。
驱动电压的幅度为-9~+15V。能够有效满足IGBT驱动的需求。
这部分电路优秀的性能确定了,在脉冲功率高达20KW时,以1BPS的频率工作。
BUCK桥整体冰凉,为增加稳定性创造了一个良好的先决条件。
-
267470

MCU部分则是使用了STM8S105K4系列的单片机。
我选择STM8S单片机作为智能灭弧的控制方案的原因有三个
1:我喜欢用这个单片机
2:资源数量刚好足够
3:电源允许变化范围较大
从电路设计的角度上讲,3.0~5.5V的供电电压,完全可以使用锂电池对单片机直接供电。
但是出于保险考虑,TOSHIBA的光纤头DLT1150/DLR1150的供电电压必须是5V。
所以最终选用的电源电压由一个升压模块提供。
升压模块的型号为UMT3608。输入电压范围为0.8V-VCC。
所以这套灭弧系统可以使用一节、两节、三节干电池进行供电。
实际上我是使用一块手机锂电池进行供电。
为了防止过放和电量检测,我在STM8上分出一路ADC对电池电压进行采集。
而基准电压可以由VCC和内部1.8V电压基准进行对比,精度对于保护过放足够。
另一路ADC资源分配给了NTC电阻,这个电阻可以用来指示工作温度。
或者在整板使用的时候,贴在散热器上,对BUCK桥工作温度进行监测保护。
代码灵活性非常大,可以拓展的用途也许会很多。。。
灭弧实际使用的资源为TIM1 旋转编码器 TIM2 TIM3产生调制PWM&灭弧方波
TIM4则负责辅助以上定时器完成系统节拍,与全局变量更新获取。

实际上数字灭弧的好处是发生脉宽准确且易于调节。
QCW的调制波形是一段有台阶的上升波形。
影响电弧的因素包括初始台阶的高度、上升斜率、下降斜率、最大电平高度。
重复频率的影响则不是很大,这一点与工作在S路线的DR有着很大区别。
而模拟电路使用触发器+RC电路的方式,也能够实现锯齿波发生。
相对来说是不需要写代码,简单,缺点则是参数较为固定单一。
-
而代码的核心部分在于一个波形发生函数。
贴在下面仅供参考:

typedef struct {
  
  uint  S_ontime;   //per100us 10-250(1ms-25ms)<*100> 
  uint  S_offtime;   //pr100ms  2-50(0.2s-5s)</10> 
  uint  S_top;      //top(%)10~200(5%-100%)</2>
  uint  S_scale;    //scale = rise/rise+fall time 10~190(5%-95%)</2>
  
}Slope_param_info;
/*global struct info*/
Slope_param_info SPARAMINFO ={100,2,200,180};
/* CUT LINE */
void Reload_Slope_Table(Slope_param_info SPF_info)
{
  static uint S_risetime,S_falltime;
  static float Ua,Fa;
    S_risetime=(uint)(SPF_info.S_ontime*SPF_info.S_scale/200);//(100uS)
    S_falltime =(uint)(SPF_info.S_ontime-S_risetime);//(100uS)
    Ua=(float)(SPF_info.S_top/S_risetime);//bit
    Fa=(float)(SPF_info.S_top/S_falltime);//bit
  for(uint i=1;i<250;i++)
    {
       if(i<S_risetime)
        {
           if((SPF_info.S_top-Slope_Table[i-1])<Ua)
            {
              Slope_Table[i]=SPF_info.S_top;
            }
           else
              Slope_Table[i]=(uint)(Slope_Table[i-1]+Ua);
        }
       if(i>=S_risetime)
        {
           if(Slope_Table[i-1]<Fa)
            {
              Slope_Table[i]=0;
              goto end_table;
            }
           else
              Slope_Table[i]=(uint)(Slope_Table[i-1]-Fa);
        }
    }
    end_table:
    return ;
}

代码非常简洁易懂。
主体控制思想来自于使用一个名为Slope_param_info的结构体。
来把锯齿波进行抽象化。
其中
Ontime成员对应锯齿波宽度
top成员对应锯齿波最高电平
scale成员则是对应锯齿波上升与下降时间占比
这样就把锯齿波通过程序抽象控制,任何一个锯齿波可以视为结构体的例化。

void Reload_Slope_Table(Slope_param_info SPF_info)
函数则描述了一个可以将这个抽象变量重载入一个名为Slope_Table[250]的一位数组的方法。
具体控制原理也非常简单,浮点精确计算出斜率。
并且由for循环控制,把需要产生的锯齿波形载入表格,从而完成调制PWM。
来看看程序仿真结果
267471

这是产生的表格文件导出
Watch1.log8.03k10次
点击下载波形文件
可以看到,按照结构体设定的变化,产生了一个从0-高从高-0的波形文件。
这个文件按照一定时间载入PWM发生器中,就可以实现调制。
用ST-LINK V2的Data Graph功能能够观察到数据的变化趋势。

这段代码来自V1.3.A版本。
现在的Reload函数与贴出来的部分有一点小小的区别。
针对波形顶端和精度有一定程度的优化,等最终定版会再做修改。
有兴趣可以保持关注。
267473

这是灭弧器的内部,由于还是实验版本接线比较乱。
但是已经实现了插入充电自动断电,以及低电量报警保护等功能。
待进一步完善吧。

[修改于 1 年前 - 2016-07-21 15:44:09]


novakon1 年前 -2016-07-21 16:21823152 6阶
typedef struct {
  
  uint  S_ontime;   //per100us 10-250(1ms-25ms)<*100> 
  uint  S_offtime;   //pr100ms  2-50(0.2s-5s)</10> 
  uint  S_top;      //top(%)10~200(5%-100%)</2>
  uint  S_scale;    //scale = rise/rise+fall time 10~190(5%-95%)</2>
  
}Slope_param_info;

这一段看的我是热泪盈眶。想起了当年在STM8上写恒流/限流算法,什么都得先用计算器算好,然后用这样的表格列出,来表示uint值与实际物理量的关系,以免忘记。


楼主用四个参数生成了梯形波,原理上也可以用任意函数,生成任意波形。

我设想的是楼主可以出一款GUI上位机,直接用鼠标绘制或者函数生成波形,然后从串口把整段波形送下位机将其调制输出,那应该算是整个中文互联网世界最牛的灭弧盒了。

名字我都想好了,KCRAMP-1

[修改于 1 年前 - 2016-07-21 16:22:41]


novakon1 年前 -2016-07-21 17:02823155 7阶
我也推荐过很多人用STM8,主要是便宜,以及配合IAR的工具可以实现强大的调试功能。在Live Watch直接看数组的值,这应该是我最常用的功能之一。

rb-sama1 年前 -2016-07-21 20:16823173 8阶
引用 novakon:
我也推荐过很多人用STM8,主要是便宜,以及配合IAR的工具可以实现强大的调试功能。在Live Watch直接看数组的值,这应该是我最常用的功能之一。
制表是个很好的方法,可以有助于合理分配八位机有限的运算资源。
上位机的功能我也考虑过,如果有朋友愿意合作开发就好啦,一个人精力有限。

我的这个灭弧盒程序里面还有另外两个结构体,可以控制普通DRSSTC和SSTC。
而且波形发生部分,全部由几个TIM硬件完成,基本上不需要MCU过多干预。
稳定性可以说非常接近于传统灭弧,但是它的可玩性又高于普通灭弧。
所以说,它应该可以成为一款有史以来最通用的灭弧盒,我会不断完善程序的。
KCRAMP-1的名字我很喜欢 233

STM8确实是一款很不错的单片机,产品线齐全而且寄存器较为简单。
官网中的数据手册和应用资料都非常多,产品支持也好。
IAR里面的debug功能也非常多,ST-LINK V2配套起来,一套开发环境成本还不到30元人民币。
而且其批量价格非常便宜,货源充足。简直是研发利器!
另外我觉得还有一个比较大的优势在于STM8如果用库开发,由于ST库的相似性。
很容易快速移植至STM32平台上,可以大大节约开发时间成本。

[修改于 1 年前 - 2016-07-21 20:20:37]


novakon1 年前 -2016-07-28 12:48823603 9阶

novakon1 年前 -2016-07-29 12:26823663 10阶
tl3116.pdf1.11M15次


为便于各位仿制、改进,给出楼主buck控制电路的简化原理图。

267806


PS: 图中漏了画:从比较器输出到驱动器之间还有一个RCD延时的过程(估计是用来调整振荡频率。)

[修改于 1 年前 - 2016-07-29 13:51:53]


返回 特斯拉线圈
返回 本页顶部

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


nkc Development Server https://github.com/lovetheory/nkc2

科创研究院 (c)2005-2016

蜀ICP备11004945号-2 川公网安备51010802000058号