1. 研究的背景及意义
目前我国使用的燃料资源主要以煤炭、石油为主,而这些资源不但有限,而且还会对环境造成污染。由于人口原因,我国作为燃料消耗大国,为避免煤炭、石油等能源枯竭,同时也为保护环境,不得不寻找新的可再生能源,而太阳能一直被社会研究者当作新型能源的研究对象[1]。2021年王晨阳基于PLC设计了一款太阳能自动追光系统,通过电机转动可以调整太阳能面板面对太阳直射时的角度以提高能源转换的效率[2],但是PLC的成本偏高,拉低了设备的经济性。2022年王杰等人研究出一种自动折叠太阳能面板的设计,该设计表明可以让太阳能面板始终与太阳光成约90˚角,从而提高太阳能面板的发电效率[3],但是由于经常展开与折叠导致太阳能面板寿命降低。2023年黄东宇提出了一种应用于太阳能追光系统的三自由度机械结构,通过两组光电传感器来检测光线的角度,实现了对日光的实时跟踪[4]。该方法采用三自由度机械结构不但设备与编程更加复杂,而且仅通过两组光电传感器来检测光线可能会出现偏差,比如当两组光电传感器与太阳的角度相同时,就会导致太阳光照角度与太阳能面板不垂直。为此我们基于单片机提出了太阳能双轴自动追光充电系统设计。这项技术能够明显提高太阳能板的光电转换效率,通过智能化的控制系统使太阳能面板始终面向最佳的光照角度。这种技术的应用不仅能提升太阳能板的能量收集效率,而且有助于降低太阳能应用的整体成本,使得太阳能作为一种清洁、高效的能源得到更广泛的应用。
2. 设计方案
(一) 设计要求
首先,要求系统具备高精度的光线感应和角度感知能力,能够迅速响应太阳位置的变化,并进行相应的调整。
其次,系统需具备在各种极端环境下稳定工作的能力,如在高温、低温、狂风、高原、沙漠等极端环境。系统还需要具备较强的抗干扰能力,防止磁场、信号干扰等外部因素对系统稳定性造成影响。在设计这个系统时,我们还要特别关注它的可靠性,确保系统在长时间运行过程中的稳定性和可靠性。
然后,系统应具备智能化控制功能,能够根据太阳的位置、光照强度,环境的影响等信息,自动调整双轴追光舵机的旋转。此外,系统还应具备自动故障检测和处理能力,以保证在出现故障时及时报警并采取相应的处理措施。
最后,为了保证电池正常充电过程的安全,系统应具备智能化控制太阳能板的充电过程。这要求系统具备对电池容量的精确检测和精准的充电控制功能,并且能够随时随地监控电池的电量状态,根据电池的当前状态自动对电池的充电电流和电压进行调整,这样可以有效避免出现过充或过放的问题。
(二) 系统总体设计
针对以上设计要求,本系统选用STM32F103C8T6单片机为核心控制器,通过与各类模块和电路的结合,实现对太阳能的高效利用。首先,系统通过四个光敏电阻对光线进行采集,有效地捕捉环境光线变化,将采集到的光线信息送给单片机处理。接着系统利用舵机,实现对太阳能板的精准定位。舵机的选择保证了系统能在两个轴向上进行调整,从而使太阳能板始终与太阳光线垂直,实现对太阳能板高效、精准地利用。系统还通过DC升压模块对太阳能电池板的电压进行稳压处理,确保太阳能板输出的电压始终在安全可控的范围内。此外,18650锂电池充电模块被用来对锂电池进行充电,这不仅提高了电池的使用寿命,也确保了能源的高效利用[5]。OLED显示屏使得系统的信息显示更为直观。同时还采用了MAX4080SASA电流检测放大器对电流进行检测,用户可以通过OLED显示屏实时了解太阳能板的工作状态、电池电量等关键信息,系统框图如图1所示。
Figure 1. System block diagram
图1. 系统框图
此外,系统设计了两种工作模式:自动模式和手动模式。在自动模式下,系统会根据四个光敏电阻采集到的光线强度,自动调整舵机方向,以追踪最佳的光照角度[6]。而在手动模式下,用户可以直接通过按键控制太阳能板的旋转,这一模式为用户提供了更多的操作自由度。
3. 双轴自动追光算法
双轴自动追光算法是通过光敏电阻感应到的数据以及STM32F103C8T6单片机的处理来实现的,其计算过程如下。
计算射线与球体的交点,射线方程为:
其中,P是光线与物体的交点,O是光线的起点,D是光线的方向向量。
球体方程:
其中,C是球心,r是半径。
将射线方程代入球体方程,求解t。
再计算光照:
直接光照计算:根据光源类型(如点光源、方向光源)和物体材质,计算光照强度和颜色。
漫反射:
其中,
是漫反射系数,
是光源强度,
是光源方向与法线之间的夹角。
镜面反射:
其中,
是镜面反射系数,
是高光指数,
是视线方向与反射光线方向之间的夹角。
追光算法具体步骤为:
初始化:在系统启动后,首先进行初始化设置。包括设置光敏电阻的输入端口、舵机的控制端口、以及对单片机初始参数的设置等。
数据采集:系统通过光敏电阻能够实时采集太阳能板四个方向的光线强度数据。这些数据可以反映太阳所处的位置。
数据处理:采集到的光线强度数据需要进行处理,通过对比四个光敏电阻的数据,找出光线强度最好的方向,这个方向就是太阳的大概位置。
角度计算:根据太阳当前的位置和太阳能板当前的角度,计算出需要调整的角度,这个计算通常基于几何关系和三角函数来实现。
舵机控制:通过计算得到的调整角度转换为舵机的控制指令,通过PWM信号控制舵机转动,从而调整太阳能板的角度。
循环调整:系统不断重复上述步骤,实时追踪太阳的位置,并调整太阳能板的角度,这样能够最大程度地吸收太阳能。
在设计系统时,我们还需要充分考虑到一些额外的关键因素,比如环境光线的实时变化、舵机的转动速度以及系统的响应速度等。这些因素都可能会干扰单片机的追光算法运行,进而影响其准确性和效率。为了确保追光算法能够精准且高效地工作,我们需要针对这些影响因素进行细致地优化和调整,以确保系统在各种条件下都能稳定可靠地运行。
4. 软件程序设计
根据设计方案进行太阳能双轴自动追光充电系统的编程,包括光线采集与处理、舵机控制、电压稳压控制、电池充电管理、电流检测以及信息显示等内容,系统总体流程图如图2所示。
Figure 2. The overall flow chart of the system
图2. 系统总体流程图
通过流程图可以看出,为了确保该设备处于正常工作状态,需要对该系统进行初始化操作。初始化以后,单片机通过读取四个方向上的光敏电阻的电压、电流值,计算出当前环境光线的强度分布。这一过程精确与否,对于后面调整太阳能板的角度起到重要作用。此外,单片机实时监控太阳能电池板的输出电压、电流以及光照强度,通过处理采集后的数据,单片机能够判断电压是否稳定,并根据需要调节升压模块,确保输出电压在安全可控的范围内。这既可以保护电池和电路的安全,还提高了整个系统的稳定性和发电效率。
5. 硬件电路设计
本系统选择STM32F103C8T6单片机作为此设计的核心,其作为一款高性能的ARM Cortex-M3内核微控制器,具有较快的处理速度和丰富的外设接口。它能够在短时间内完成数据采集、处理和控制指令的输出,从而确保系统对外部环境变化的快速响应。该设计过程涵盖了以下几大核心组件:光线采集模块、电流检测模块、升压模块、舵机控制模块以及OLED显示模块,其系统电路如图3所示。
Figure 3. System circuit
图3. 系统电路
系统配置了四个光敏电阻作为光线采集模块的核心元件,它们分别被安装在太阳能板的四个关键方向。这些光敏电阻的阻值变化与光照强度紧密相关,当外界光线发生变化时,它们的阻值也会随之调整,进而改变电阻上的电压值。单片机通过内置的ADC模块精准地读取光敏电阻的电压值,然后计算并获取环境光线的强度信息。这种设计使得系统能够实时感知周围光线的变化,为后续的追光控制提供准确的数据支持。
通过选用高性能的MAX4080SASA电流检测放大器检测电流,它是一种高压侧电流检测放大器,无须单独外接基准电压,实时电流由OUT引脚输出的电压表示。它的输入电压范围为4.5 V至76 V,非常适合于需要严密监视高压电流的系统。
鉴于太阳能电池板输出的电压可能受到多种因素的影响而波动,所以加入了DC升压模块。该模块可以根据输入电压的变化,迅速对输出电压进行调整,从而使太阳能板输出的电压始终保持在一个安全高效的范围内。这样既保证了蓄电池和电路的安全,又使整个系统的稳定性和可靠性得到了很好的提高。DC升压模块由电感、电容、开关、二极管构成,开关闭合以后电路中电感通过电源接收电荷来积累能量,其电路如图4所示。
Figure 4. Schematic diagram of inductance accumulation charge
图4. 电感积累电荷原理图
当开关断开以后,电感、二极管、电容形成回路,一部分能量往电容里面积累,另一部分则供给负载电流,其原理如图5所示。
Figure 5. Schematic diagram of energy conversion
图5. 能量转换原理图
当开关再次闭合以后,线圈继续积累能力,同时将电容接收的能量供给负载,其原理如图6所示。
Figure 6. Schematic diagram of capacitor energy output
图6. 电容能量输出原理图
为了实现对太阳能板在水平和垂直方向上的精准控制,本系统采用了两个高性能舵机,这两个舵机通过接收单片机发送的PWM信号来调节转动角度。单片机根据光线采集模块提供的数据,经过算法处理,计算出太阳能板应调整的角度,并实时发送相应的PWM信号给舵机,使其能够准确地进行转动。这种设计确保了太阳能板始终能够正对太阳,最大化地吸收太阳能。
此外,为了便于用户实时了解系统的运行状态和性能表现,这套系统采用OLED显示屏显示系统信息。这个显示屏可以将太阳能面板的关键信息,如工作状态,光照强度,发电电流、电压等都显示得一清二楚。用户只需对显示屏上的数据进行观察,就能轻松掌握系统的整体运行状况,为后续的维护与优化提供了极大的方便。
6. 工作模式设计
在自动模式下,系统太阳能板的自动追光运动依赖于内置的算法和传感器来实现。当系统启动并切换为自动模式时,STM32F103C8T6单片机会立即读取四个光敏电阻的实时数据,这些数据准确反映着四个不同的方向上的光线强度。单片机会根据这些数据进行计算分析,从而精准确定出太阳当前所处的位置,并对舵机进行相应的调整,使太阳能板始终能够正面对着太阳。
自动模式的优势在于高度的智能化,不用人为去干预就能实现太阳能的高效利用。另外值得注意的是系统对环境光线的依赖程度比较高,所以在某些特殊情况下(如多云、下雨天、强风等),系统的追光效果可能会受到一定程度的影响。
除了自动模式外,系统还增加了手动模式,在某些特殊情况下(如多云、下雨天、强风、环境光线比较复杂等),自动模式可能无法达到最佳效果。这时候,手动模式就派上用场了。用户可以亲自用手按照自己的需求和想法手动对太阳能板进行调整,从而提高太阳能板对光的利用率和发电效率。
7. 系统测试
(一) 硬件测试
检查电线连接:焊接电路板如图7所示,检查所有硬件组件(包括单片机、传感器和舵机等)之间的电线连接情况。务必确认电源线等已牢固焊接,以免因连接松动或线路间的意外接触引发短路,进而对电路造成损坏。确保每一步检查都细致入微,以保障整个系统的稳定性和安全性。
Figure 7. Soldering the circuit board
图7. 焊接电路板
电源测试:检查电源模块和电池是否能够正常工作,确保系统能够稳定供电。
传感器测试:单独测试光敏电阻和其他传感器,确保它们能够准确感应光线和其他环境参数,并且能够输出正确的信号。
舵机测试:在没有连接太阳能板的情况下,测试舵机的转动是否正常,响应是否灵敏。
(二) 软件测试
代码检查:把写好的代码仔细检查一遍,保证不出现语法错误,不出现逻辑错误。对涉及硬件通讯、数据处理、舵机操控的板块给予特别关注。
串口调试:利用串口调试工具向计算机端发送调试信息。通过串口调试,可以帮助定位问题,比如传感器的数据,控制指令的执行等等,这些都是可以实时查看的。
逐步调试:采用渐进式调试方式,每隔一段时间只跑一小段码,保证每隔一段都能按预想的进行操作。这对缩小出问题范围、迅速确定问题地点都有帮助。
使用调试器:使用调试器,配合Power Writer等烧录调试软件,进行程序的烧录和调试。通过调试器,可以设置断点、查看寄存器及变量等,更深入地了解程序的执行情况。
(三) 综合测试
在硬件和软件测试都完成后,系统需要进行软硬件综合测试。观察太阳能板是否能够根据太阳的位置自动调整角度,追踪太阳的运动。如果发现异常或问题,根据调试的信息进行深入地分析,并采取相应的措施解决。自动模式下记录了两天(2024年4月1日和2024年4月2日)内的相关参数如表1所示。
Table 1. Test results
表1. 测试结果
序号 |
日期 |
时间 |
电流(A) |
电压(V) |
光照强度(lux) |
太阳高度角(˚) |
方位角(˚) |
1 |
2024-4-1 |
8:00AM |
0.35 |
11.5 |
450 |
15 |
90 |
2 |
2024-4-1 |
12:00PM |
0.65 |
12.5 |
1200 |
55 |
150 |
3 |
2024-4-1 |
4:00PM |
0.50 |
11.9 |
900 |
30 |
210 |
4 |
2024-4-2 |
8:00AM |
0.38 |
11.6 |
500 |
18 |
95 |
5 |
2024-4-2 |
1:30PM |
0.70 |
12.7 |
1300 |
60 |
165 |
6 |
2024-4-2 |
3:30PM |
0.55 |
12.1 |
950 |
42 |
195 |
7 |
2024-4-2 |
5:30PM |
0.35 |
11.4 |
400 |
15 |
235 |
(四) 实物测试
经过前期的准备,确定好所需要的元器件与数量,焊接到电路板上,最终如图8所示。
Figure 8. The overall physical diagram of the system
图8. 系统整体实物图
在硬件部分组合完毕且连线正确后,对所写的程序代码检验无误后,开始将程序烧录到单片机中。其结果如图9,在自动模式下电压、电流分别为2.5 V、0.2 A,光照强度为227 Lux。
Figure 9. Automatic mode
图9. 自动模式
通过按键可以将自动模式调节为手动模式,其测试结果如图10所示。在手动模式下电压、电流分别为2.4 V、0.2 A,光照强度为227 Lux。
Figure 10. Manual mode
图10. 手动模式
8. 结论与展望
通过集成高精度光线感应技术、智能追光控制算法和先进的能源管理策略,深入探讨了基于STM32F103C8T6单片机的太阳能双轴自动追光充电系统设计方案,成功实现太阳能面板高效追踪和精细化充电管理。测试结果表明,该系统既能实现自动追光使太阳光照强度最大化,同时通过使用STM32F103C8T6单片机可以节约成本,提高产品的经济性,此外太阳能面板在使用过程中不需要发生形变,因此不会影响太阳能面板的寿命。
太阳能双轴自动追光充电系统的追光精度和反应速度将随着材料科学和控制算法的不断进步而进一步提高。同时,为适应更广泛的气候条件和工作环境,系统的稳定性和可靠性也将得到增强。未来的太阳能双轴自动追光充电系统将更加注重智能化控制,实现对太阳运动轨迹的精准预测和适应性调整。通过将先进的人工智能和机器学习技术结合在一起,将会成为一个重要的研究方向。因为全球对可再生能源的需求越来越大,太阳能双轴自动追光充电系统将更加注重环保和可持续发展。系统还需要对能源使用效率进行优化,减少能源带来的浪费,为绿色低碳能源体系的建设贡献自己的一份力量。
基金项目
本文获广东理工学院课程考核改革项目(KCKHGG202401);广东理工学院课程教学资源库项目(JXZYK2024005 )支持。
NOTES
*通讯作者。