首页 » 技术文章 » 一种数控DC电流源的设计与实现

一种数控DC电流源的设计与实现

作者:  时间:2010-12-28 15:31  来源:EDN

  系统软件设计在凌阳十六单片机应用开发工具unSPIDE1.16.1中进行,采用凌阳单片机汇编语言和标准C语言对单片机进行编程。主要实现5个功能:(1)系统的初始化,包括各外围接口设备的初始化;(2)键盘输入;(3)D/AA/D转换; (4)PID算法进行电流调整;(5)语音提示和电流显示。其主程序流程图如图5所示。

主程序流程图

  A/D转换部分程序主要用于将采样电阻采到的模拟电压信号转换为数字信号。采样信号由IoA6输入并直接送入缓冲器P_ADC_MUX_Data,在ADC自动方式被启用后,会产生一个启动信号,此时,RDY=0DAC0的电压模拟量与外部的采样模拟比较,以尽快找出外部信号模拟量的数字量,A/D转换的结果保存在SAR内。当10A/D转换完成时,RDY=1,此时,通过读P_ADC_MUX_Data单元可以获得10A/D转换的数据。其IRQ1 中断服务程序的流程图如图6所示。

6  IRQ1中断服务程序的流程图

  PID算法程序主要用于修正实际输出的电流值和设定值的偏差,调节下一次的输出值,使输出更接近于设定值,提高精度。具体控制过程为单片机经A/D芯片读出实际电流Ik,然后和设定的电流Is比较,得出偏差值Ek=Is-Ik,单片机根据Ek的大小,调用PID公式,计算出本次电流调节的增量Δik,然后根据前一次的D/A转换后输出电流Iq-1,计算出本次电流的输出Iq

  离散增量PID的计算公式为

  ΔIk=Kp[(Ek-Ek-1)+K1Ek+KDEk-2Ek-1+Ek-2]

  =Kp(Ek-Ek-1)+K1’Ek +KD’(Ek-2Ek-1+Ek-2)

  式中,K1’= Kp.K1, KD’= Kp×KDEk为本次采样时刻的电流误差,Ek-1为上次采样电流误差,Ek-2为再次采样电流误差值。

  为了测试系统运行的准确性和可靠性,将设定量与反馈量的进行测试对比,误差在0.01%之内,并且运行稳定,达到了预期目的,还增添了特色的音频播放设计。

相关推荐

SoC验证走出实验室良机已到

SoC  ICE  2014-01-17

蓝牙整合无线充电方案领舞穿戴式产品

SoC  Bluetooth  2013-12-31

Xilinx授予TSMC最佳供应商奖

Xilinx  SoC  2013-08-28

多核竞争已过时 “处理技术”将成新战场

SoC  处理技术  2013-08-26

物联网融合自动化推动高效生产模式变革

物联网  FPGA  SoC  2013-07-09

Semico:28nm SoC开发成本较40nm攀升1倍

28nm  SoC  2013-06-25
在线研讨会
焦点