已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
谈一谈灭弧电路部分。
因为是理论论证,为了节约开发周期和成本。
我把灭弧电路与BUCK驱动电路做在一起。
所以这块PCB是有独立调制功能的,也可以从远端通过光纤进行控制。
这些功能的选择通过跳线帽来实现。
原理图如下
QQ截图20160721140947.jpg
清晰原理图PDF下载:
attachment icon Qbuck_control.pdf 209.76KB PDF 306次下载 预览
这张原理图的BUCK部分与新加坡的Gaoguangyan提供的原理相同。
buckdriver1.png
同为使用TL3016高速比较器对输入电压与反馈电压进行比较跟随。
通过乒乓控制的方式,使电流波形在一定程度上保持稳定。
实际工作的过程中,我观察到波形的形状与电弧长度与形状关系很大。
闭环能够有效解决电容电压下降,带来的波形失真。
当然还有一种方法是实现同步整流,这样要多出一个死区发生电路与低端驱动。
从最简化设计的角度来看,我选择了比较器方案。
-
aaaa.jpg
而驱动部分,则由于并管数量较多。
并且考虑到未来可能把BUCK功率管拓展为功率模块。
驱动的负载大约在20-40nF大小。
为保险起见,使用了来自大M设计的单供电,正负电压输出IGBT驱动。
实测驱动30nF的负载,上升下降时间能够有效控制在200/150nS。
驱动电压的幅度为-9~+15V。能够有效满足IGBT驱动的需求。
这部分电路优秀的性能确定了,在脉冲功率高达20KW时,以1BPS的频率工作。
BUCK桥整体冰凉,为增加稳定性创造了一个良好的先决条件。
-
QQ截图20160721142000.jpg
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) 
  uint  S_top;      //top(%)10~200(5%-100%)
  uint  S_scale;    //scale = rise/rise+fall time 10~190(5%-95%)
  
}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         } if(i>=S_risetime)
        {
           if(Slope_Table[i-1]<fa)             {               slope_table[i]="0;"               goto end_table;             }            else         }     }     end_table:     return ; } < code></fa)></250;i++)></*100>

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

void Reload_Slope_Table(Slope_param_info SPF_info)
函数则描述了一个可以将这个抽象变量重载入一个名为Slope_Table[250]的一位数组的方法。
具体控制原理也非常简单,浮点精确计算出斜率。
并且由for循环控制,把需要产生的锯齿波形载入表格,从而完成调制PWM。
来看看程序仿真结果
QQ截图20160721145206.jpg
这是产生的表格文件导出
attachment icon Watch1.log 8.03KB LOG 130次下载 点击下载波形文件
可以看到,按照结构体设定的变化,产生了一个从0-高从高-0的波形文件。
这个文件按照一定时间载入PWM发生器中,就可以实现调制。
用ST-LINK V2的Data Graph功能能够观察到数据的变化趋势。

这段代码来自V1.3.A版本。
现在的Reload函数与贴出来的部分有一点小小的区别。
针对波形顶端和精度有一定程度的优化,等最终定版会再做修改。
有兴趣可以保持关注。
QQ截图20160721150315.jpg
这是灭弧器的内部,由于还是实验版本接线比较乱。
但是已经实现了插入充电自动断电,以及低电量报警保护等功能。
待进一步完善吧。
文号 / 823148

千古风流
名片发私信
学术分 5
总主题 53 帖总回复 1725 楼拥有证书:高压局 进士 老干部 学者 机友 笔友
注册于 2010-05-02 13:32最后登录 2024-12-04 10:18
主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:未同步

个人简介

曾是化学爱好者转到火箭爱好者最后变成电子爱好者的科创爱好者。

文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

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

空空如也

插入资源
全部
图片
视频
音频
附件
全部
未使用
已使用
正在上传
空空如也~
上传中..{{f.progress}}%
处理中..
上传失败,点击重试
等待中...
{{f.name}}
空空如也~
(视频){{r.oname}}
{{selectedResourcesId.indexOf(r.rid) + 1}}
处理中..
处理失败
插入表情
我的表情
共享表情
Emoji
上传
注意事项
最大尺寸100px,超过会被压缩。为保证效果,建议上传前自行处理。
建议上传自己DIY的表情,严禁上传侵权内容。
点击重试等待上传{{s.progress}}%处理中...已上传,正在处理中
空空如也~
处理中...
处理失败
加载中...
草稿箱
加载中...
此处只插入正文,如果要使用草稿中的其余内容,请点击继续创作。
{{fromNow(d.toc)}}
{{getDraftInfo(d)}}
标题:{{d.t}}
内容:{{d.c}}
继续创作
删除插入插入
插入公式
评论控制
加载中...
文号:{{pid}}
加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}
ID: {{user.uid}}