2 系统流程设计与仿真测试
2.1 系统流程设计
本系统采用前后台系统。主程序是一个无限循环,循环中通过调用相应的函数完成相应的操作,而对于与时间关系很强的关键操作通过中断处理完成。主程序软件流程如图4所示。
利用该FPGA的core51核作为控制处理单元的核心,通过所提供的带有模拟功能的AD模块对多路AD采样的数据进行处理和分析;由core51核配置,门驱动核输出,控制电机驱动的脉冲信号,实现对系统采光的机械驱动,从而调整太阳能电池板的方位。由于太阳光的变化是比较缓慢的,所以影响本系统数据采集精度的主要因数是AD自身转换的误差以及瞬时强光干扰。系统通过51核用软件的方法对AD输入的数据进行平滑滤波。
该FPGA还为用户提供了可编程的脉宽调制(PWM)核,即可以通过软件的方式改变输出脉冲的周期和占空比。其中PWM模块提供了PWM_addr、 PWM_data输入信号,用于修改PWM波形的周期和占空比。通过core51核的配置,PWM核输出PWM控制信号,实现对蓄电池充电的控制。最后通过LCD实时显示天气和蓄电池状态信息,并通过串口反馈到PC。
2.2 自适应的采光定位流程设计
为了实现的方便,本系统东西方向上对太阳跟踪的详细流程如图5所示(南北方向的跟踪原理是一样的)。系统先通过AD采集到外部4个以及内部东西方向的2个光敏电阻电压,外部4路与所设门限比较,判断当前天气情况。如果连续3次采样值低于黑夜的门限时,则认为是黑夜,系统将停止工作。如果判为阴天,则系统控制太阳能电池板,让其方位保持不变。如果为晴天,则按照所采到的内部两路光敏电阻电压差值进行判别,当差值大于所设门限时、则认为电池板方位需要进行调整。调整原则为:若东边电压值大于西边,则电池板向东边转动1.8°;反之,向西边转动1.8°。调整以后再返回到数据采集,重复上述过程。系统对于太阳方位角度的计算,可以作为一种备用和补充校正方案,即当光敏电阻损坏或者向光采光电路出现故障时,所采到的数据会出现异常(例如长时间的为0或者电压过高),可以通过上位机发命令,用定位算法所得结果调整太阳能电池板的方位。
在不同的环境下反复测试并改善遮光效果,得到内电阻采样电压再判别晴天、阴天和黑夜的门限分别为6.1 V、5.8 V和0.1 V(采用6.2 V电源供电);在太阳光偏离一定角度时,内电阻因遮光筒遮光而产生的电压差值在1 V左右;在白天由于突然而来的强光而产生的外部电阻采样电压波动在0.2 V左右。通过改变内电阻采样电压差值门限发现,门限电压过低将使得电机转动过于灵敏,浪费电能;门限电压过高,将导致不能实时追日。最终设门限为0.8 V,达到最佳效果。
2.3 AD的仿真
由于AFS600有16路12位的AD,因此用5位表示通道号,用12位表示对应的数据。在设计AD数据与core51的数据交换中,采用分3字节的传输方式把17位数据分高、中、低3个字节分别传给core51,测试激励与仿真结果,如图6所示。
av_0为通道1,r_clk为core51的读命令端口,在一次数据有效(DATAVALID产生一个脉冲)分别读取3个字节的数据。先把十六进制的采样数据转换成十进制,除以4 095再乘以8,([D(0x9 c4)/4 095]×8),计算得到4.88 V,而实际值为5 V,误差为2.4%。av_1为通道4,同理得到转换结果为2.91 V,实际值为3 V,误差为3%。
2.4 上位机软件
上位机软件共包括两个模块:显示模块,负责刷新界面上的状态、数据等;通信模块,与MCU进行通信,并且将通信的结果放入上位机内存,调用显示模块刷新界面。上位机软件通过串口与MCU连接后,若没有传递经纬度时间信息的命令,则每隔3 s上位机向单片机请求1次数据;若有传递经纬度时间信息的命令,则优先发送该命令。任何命令发送给MCU以后,如果1 s内没有收到MCU的回应,则判断已经断开了连接。
结 语
本系统的设计和调试虽只是在实验阶段,但基本能实现预定功能,而且所得数据和调试结果将为相关方面的研究提供宝贵经验。目前,仍有需要改进的地方:首先,考虑到阴雨天气系统仍能正常工作,则采光筒的保护需要完善;第二,完善太阳跟踪机械装置的设计,提高装置的精度、稳定性、节能性;第三,本系统只实现了太阳在东西方向的跟踪,在南北方向上的跟踪还需要进一步的完善。
本系统稍加成本便可以较大幅度提升太阳能的转化和利用性能,并且具有良好的扩展性;还可结合具体背景广泛应用到汽车、家居、公共场所和工业现场等用电领域。