1 设计任务
设计并制作数控直流电流源。输入交流200~240V,50Hz;输出直流电压≤10V。原理框图如1所示。
要求:输出电流范围:200mA~2000mA;可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值≤给定值的1%+10mA;具有步进调整功能,步进≤10mA;纹波电流≤2mA;改变负载电阻,输出电压在10V以内变化时,要求输出电流变化的绝对值≤输出电流值的1%+10mA。
2 系统设计方案
鉴于目前数控直流源一般采取运放构成的电流-电压转换电路与单片机结合,设计方案大多为开环系统,主控制器仅用于数字给定及显示,没有对输出电流进行检测和控制。本文在传统电路设计的基础上,利用控制系统中反馈与控制原理,引入电流负反馈,在采样电阻上获取和电流成正比的采样电压,并接人运算放大器的反向输入端,实现负反馈,形成恒流输出的闭环控制系统;软件方面,将具有全局寻优能力但收敛速度慢的遗传算法和具有收敛速度快且局部寻优能力强的直接搜索法结合在一起,设计基于遗传算法和直接搜索策略的混合优化算法,充分利用了遗传算法的全局搜索能力并以此作为优化过程的“粗调”,同时利用直接搜索法良好的局部搜索能力作为优化过程的“微调”,集中了两者的优点,而克服了两者的弱点,得到的目标函数值较遗传退火策略更优,而且一致性更好,用于PID参数整定是具有整定速度快,调节时间短,稳态误差小等优点。同时结合PID算法,形成软件闭环,实现对输出电流的精确控制。
系统工作原理如下:由键盘预置电流值,输入到单片机;采样电阻采集的电流信号经A/D转换器送入单片机,当两值之差绝对值为零或不大于设定值时,不作任何调整;当两值之差大于设定值时,运用PID算法进行调整,送人D/A转换,调整输出电流,直到差值在允许的范围内。单片机控制液晶显示电流的设定值、实际输出值和电流步进值。其原理示意图如2所示。
3 硬件电路设计
数控直流电流源由自制电源电路、键盘输入电路、显示电路、单片机最小系统、D/A转换电路、恒定电流源电路、A/D转换电路和输出电流采集等模块电路组成。
3.1 采用比较适合的新型的Atmega128单片机
目前大多数控恒流源设计方案是以51系列单片机作为电流源控制器,该系列单片机性价比高,接口电路开发成熟,应用广泛。但其执行速度慢,集成的电路稳定性差,且容易受干扰,内部没有看门狗电路,容易死机,没有集成A/D、D/A转换芯片。与51系列单片机相比,ATmega128具有高速运行处理能力,电路稳定性好,内部有可编程带内部振荡器的看门狗定时器,带有8通道单端或差分输入的10位A/D转换芯片。本系统选用ATmega128作为电流源控制器,使用高精度、具有比较匹配中断功能的定时器,实现高精度的PID算法。
控制器主要实现以下功能:(1)控制键盘输入电流设定值;(2)控制A/D转换电路把实测电流值转换成数字量;(3)比较电流设定值与实测值的大小,根据比较结果,用PID算法进行调整;(4)控制D/A转换电路把调整好的数字电流量转换为模拟电压量;(5)显示设定电流值、实测电流值和步进电流值;(6)记录故障持续时间。
3.2 恒定电流源设计
本设计采用集成有运放的线性恒流源。电路由两个低漂移运放LM358、晶体管TIP41C、负载电阻R、限流电阻R3和直径为1mm康铜丝绕制成的电流反馈采样电阻Rf组成,如图3所示。
采样电阻Rf将电流信号以电压的形式加到运放的输入端,构成电流并联负反馈电路,减轻后级电路对D/A的影响,同时可以得到恒流输出,使电流源具有较好的稳定性。TIP41C是大功率晶体管,工作在线性放大区时,最大集电极电流为4 A,放大倍数为20~70倍。
负载电流仅由输入电压决定,而与负载R的大小无关。由于运放电源的限制,负载只能在一定范围内变化。当输入电压不变时,负载电阻在一定范围内变化,输出电流将保持不变,构成恒流源电路。
本方案的另外一个特色是,采用康铜丝组成采样电阻,康铜丝的温度系数为5ppm/℃,通过电流时引导起的温度升高对其电阻阻值并不会有太大影响,温度特性好,同时采用反向对称绕法把其绕制成空心绕线电阻,以减少绕制电阻时产生附加的电感,达到减少纹波电流的目的。为保证足够的V-I转换精度,电路中各电阻应选用精密电阻。
3.3 A/D转换器设计
本系统的电流测量部分由12位A/D芯片TLC2543构成,该芯片是一种12位开关电容逐次逼近A/D转换器,芯片共有11个模拟输入通道。芯片的串行三态输出数据端、输人数据端、输入/输出时钟3个控制端能形成与微处理器之间数据传输较快和较为有效的串行外设接口。12位A/D可以达到该系统的1%+1mA的精度要求。
3.4 声光报警电路
数控直流电流源有过流保护功能,即当实际电流输出超4000mA,可实现报警,并使输出电流降为0mA。
3.5 自制电源模块设计
本设计需要12V及5V直流电压。整个系统的电压外接220 V交流电压,将外接电压通过整流变压器得到15 V左右交流电压,再经过电桥整流得到直流电压,15 V直流电压经过电容的滤波,然后再通过三端稳压块7805转换得到5 V电压,通过三端稳压块7812得到12 V电压。
3.6 人机交互界面
与数码管相比,液晶显示屏具有功耗低、可视面积大,分辨率高,抗干扰能力强,字符操作方便等特点,并且编程容易,占用控制器的资源不多等优点。本设计采用LCD1602显示0~2300mA电流,发光二极管LED1、LED2指示电流测量方式和电流设定方式,当二者交替点亮表示当前为交替显示电流的给定值和实测值,LED3、LED4、LED5分别指示3种步长(1mA、10mA、100mA)。
因编码键盘扫描采用中断方式,具有占用I/O口较少的优势,本设计采用2×8编码键盘,共16个按键。编码键盘采用硬件电路代替软件判断按键编号的方式,当按键按下时,键盘通过优先编码器进行编码,编码器同时向单片机发出中断信号,单片机读取键号,调用按键子程序进行相应处理。
3.7 D/A转换器设计
为实现输出电流范围10mA~4000mA、步进1mA的要求,应选用分辨率高的DAC,本设计采用MAX538为D/A转换电路的核心器件。
MAX538是12位串行数模转换器,具有转换速度快、精度高、功耗低等特点。本芯片为8脚串口数据输入D/A转换芯片,占用单片机引脚资源少,程序编辑方便,外围电路扩展简单。由于MAX538具有内部基准电压为4.096V,由公式()可得MAX538输出电压精度为1(mV),加在阻值为1Ω的康铜丝电阻两端可使其产生1(mA)电流(即步进1mA),试验显示能达到指标。
3.8 系统的组成
(1)控制器件:ATmega128单片机;
(2)键盘输入电路:2 × 8编码键盘;
(3)显示电路:LCD1602;
(4)恒定电流源电路:LM358、TIP41C、采样电阻Rf;
(5)声光报警电路:发光二极管和蜂鸣器;
(6)记录故障时间:ATmega128单片机内置的定时器/计数器;
(7)A/D转换器:TLC2543;
(8)D/A转换器:MAX538;
(9)自制电源模块:整流变压器、整流桥、电容、三端稳压块7812及7805
4 软件设计
在数控恒流源闭环控制系统中,为保持负载电流恒定,并且负载电流随设定值变化时没有超调,同时又希望系统有较好的抗扰动性能,本设计采用PID控制器来改善系统的性能。具体控制过程为:ATmega128经A/D转换器读取实际输出电流I,然后和设定的电流IS相比较,得出差值Ek=IS-I,主控制器根据Ek的正负大小,调节PID控制器,计算出本次电流调节的增量△Ik,然后根据前一次D/A芯片输出的电流Iq-1,计算本次的输出电流。PID控制器的参数由自行设计的混合最优算法确定。
4.1 混合最优算法设计
鉴于遗传算法收敛慢,易早熟,且对参数依赖性大,而直接搜索法在局部有很好的搜索能力。本设计综合利用两种算法的优良性能,克服各自的缺点,先用遗传算法在给定的区域上作“全局粗略”搜索,然后用直接搜索法对其中部分较优个体在这些个体所在极小区域作“局部精绌”搜索,找出它的极小值,反复进行,可以比较迅速地找出PID算法参数的全局最优解。
控制器ATmega128主要用来实现遗传算法参数自整定,数据存储器存储一些专家经验,用来初步确定整定目标域,同时也存储遗传算法的每代样本数据及控制参数。
严格地说,遗传算法的迭代何时停止,在理论上尚无定论。在许多应用实例中,若发现群体中个体的进化已趋于稳定状态,则迭代终止。对于PID参数自整定,调节过程进入相对稳定状态,则终止迭代算法。所以把迭代次数等于最大迭代数目M或者精度调节变化量小于某个预设值作为算法终止的条件,
混合最优算法流程图如图4所示。
4.2 软件实现
基于模块化思想,系统软件设计部分由C语言和汇编语言混合编写而成,发挥了C语言高效运算和快速开发以及汇编语言的灵活的特点。系统软件主要完成输出设定、电流调整等功能。包括主程序、A/D采样子程序、D/A输出电流给定值及按键控制、PID算法子程序、混合最优算法子程序、LCD显示等其他子程序。
主程序流程图如图5所示。
5 系统功能测试
(1)系统输出电流范围为10mA~4000mA;
(2)具有3种步长可选的电流步进功能,可通过“+”、“-”按键方便地进行正负步进调整;
(3)可交替显示电流的给定值和实测值,实际测量输出电流误差的绝对值≤测量值的0.1%+1mA;
(4)改变负载电阻,输出电压在10V以内变化时,输出电流的绝对值≤输出电流值的0.1%+1mA;
(5)纹波≤0.15Ma
6 结论
本数控直流电流源系统以Atmega128为主控制器,采用软硬件双闭环反馈方法,使电源的稳定性和输出精度得到保证,并有普通稳压源实现了稳流输出。通过按键来设置电流源的输出电流,设置步进级可选。在系统设计过程中,力求硬件电路参数合理,线路简单,发挥软件编程灵活的特点,通过多次调试,不断提高系统的精度和电流的稳定性,以满足系统的设计要求。
(转载)