电子发烧友App

硬声App

0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示
电子发烧友网>电子资料下载>电子资料>带自动升压功能的太阳能热水分流器

带自动升压功能的太阳能热水分流器

2023-02-02 | zip | 0.04 MB | 次下载 | 免费

资料介绍

描述

它有什么作用,为什么?

作为一个自豪的小型光伏系统的所有者,令我感到痛苦的是,我几乎没有回报地出口大部分发电量,而在太阳下山时以更高的价格进口。

白天用多余的太阳能为电热水储水箱“充电”,而不是将其输出到电网,这在某种程度上可以弥补不平衡、节省资金和保护地球。

该项目旨在满足以下要求:

  • 每天将水加热到最低温度,以防止军团病和冷水淋浴。
  • 仅在没有足够的多余太阳能以达到每日最低温度时才输入电力。
  • 下午 3 点到晚上 9 点之间禁止供电(高峰电费)。
  • 最小的射频干扰。

确定可用功率:

为了确定发送到加热元件的功率量,系统需要知道“房子”是输入还是输出功率。在我的例子中,此信息是通过对基于 NodeMCU 的 4 象限功率计的 HTTP 请求获得的,这不是该项目的一部分

HTTP 的替代方案:ESP32 上实施太阳能分流器(这样您就有多个模拟输入)并使用 analogueRead() 读取以下项目的输出以获得功率导入/导出读数。您可能需要添加一个运算放大器电路或类似的东西来将可用电压范围转换为更适合 ADC 的电压范围。

硬件

主要组件是一个温度传感器,我把它推到水箱周围的绝缘层下,一个固态继电器驱动加热元件,一个基于 NodeMCU/ESP8266控制器提供智能

temp_sensor_6XOCp6KIkF.png?auto=compress%2Cformat&w=740&h=555&fit=max
罐壁和保温层之间的温度传感器
 

 

controller_JdFdsn65u7.png?auto=compress%2Cformat&w=740&h=555&fit=max
控制器+5v电源
 

 

负载控制

必须以平衡产生的多余太阳能的方式来控制加热功率。

最明显的方法是使用“相位延迟”开关三端双向可控硅开关元件,但这会产生大量 RFI。或者,可以使用继电器或双向晶闸管定期打开/关闭电源:没有 RFI,但电表将记录交替的输出和输入,而不仅仅是零消耗。

快乐的中位数:一个“突发式”开关固态接触器(过零),它在 36 周期突发周期(50Hz 网格)的可变部分关闭。实际上,这仍然是开/关原则,但速度足够快,电表记录平均消耗而不是单独的导入/导出事件。

选择“36”个周期是因为加热元件为 3600W,因此每个“开启”周期都会增加一个易于记忆的 100W 功率。

驾驶SSR

TRIAC 的输入由软件定时器 (ssr_control_fun) 在每个电源周期 (= 20 ms) 上的回调确定,每个周期编号为 [0..35]。

循环是“开”还是“关”由 3 个变量控制:

  • bBoost:表示我们必须以最大速率加热,以便在下午 3 点之前达到所需的水温。
  • nDivertCycles:仍然导致净导出的最大“开启”周期数。
  • nLimitCycles:加热元件与内置机械恒温器一起位于水箱底部。水箱依靠对流将热量从底部元件传输到水箱顶部。不幸的是,在全功率下,恒温器会在水箱完全“充电”之前启动。在恒温器再次关闭电路之前,温度需要下降近 10 度。同时,可能会浪费大量太阳能…… 值会限制在水温接近恒温器触发点时发送到水箱的功率,从而允许更长的渗透时间。
// Cycles per period to divert excess power.
static int16_t		nDivertCycles;

// Max cycles per period to prevent the thermostat from triggering early.
static int16_t		nLimitCycles;

// Max power boost is required to reach by .
static bool			bBoost;



static void ssr_control_fun( void * )
// Runs on a 20msec timer, i.e. once every mains cycle.
// counts cycles, turns off power after the specified # of cycles,
// resets at the end of the PWM period.
{
	static int16_t		iCurrentCycle;	// Current cycle counter.
	
	// Turn on SSR until we have reached nDivertCycles, or when we need to boost.
	digitalWrite
	(	ssrControlPin, 
			(	bBoost											// Always on when boosting.
			||	(haveImport && (iCurrentCycle < nDivertCycles))// or when diversion is on
			)
		&&	(iCurrentCycle < nLimitCycles)	// either way, never exceed temp based power limit.
	);
	
	// Give each cycle a number 0..PwmCycles-1
	iCurrentCycle = (iCurrentCycle+1) % PwmCycles;
}

促进:

我们需要在每天下午 3 点之前达到 :我们估计从当前温度到 应用全功率需要多长时间。=67>如果晚于下一个下午 3 点,则激活“提升”。估计时间基于一组 10 度温度间隔,其中包含应用满载时估计度数/小时的增加。

// Target temperature to aim for by TargetTOD
#define TargetTemp			67



// Time-of-day after which only solar power should be used (secs)
// (start of peak tariff)
#define TargetTOD		(15 * SECS_PER_HOUR)

// Estimated average temperature rise for every hour under 100% power (C/hr)
// The rate varies depending on temp in 10 degree increments, starting at 0.

static const uint8_t	heating_rates[] =
            {	15, 15, 13, 11,  9,  7,  6,  6,  6 };
// start-temp	0    10    20    30    40    50    60	70    80

static float heatingTime( const float from, const float to ) {....}
// estimated time in hours to reach  starting at 

static void updateBoost(const uint32_t	utc, const float curTemp) {....}
// Check if it is still possible to reach  by  at less
// than full power. If not, start a 15 min timer to turn on full power.
// The timer is prevent unnecessary boosts (which cost money) due to temporary
// temperature reductions when the hot tap is opened and cold water flows in.

转移周期:

转移的功率量通过 nDivertCycles 控制,应用 36 个功率中的循环数。该值通过一个简单的反馈回路确定:系统每 10 秒检查一次当前功率输出/输入水平并调整活动周期数以获得 0 到 100W 之间的输出。

static void updateDivertCycles( const int16_t exp )
// Updates nDivertCycles to match spare power.

极限循环:

(可选)为了最大化存储容​​量,我们需要防止内置在水箱中的机械恒温器断开电路。这发生在大约 69℃。不幸的是,在全功率下,水箱内的温度分布使得我靠在水箱壁上的传感器不能很好地指示内置恒温器的温度。所以我们需要降低功率,以便在不触发恒温器的情况下进一步加热水箱。

这是通过线性减少最大值来完成的。在 67 和 69℃ 之间从 100% 到 12.5% 的活性循环数。

static void updateLimitCycles( const float curTemp )
// Limit the duty-cycle when water temperature exceeds TargetTemp

当地时间:

该系统旨在每天在同一当地时间完成对水的加热。因此,它需要访问时间服务器以获取 UTC,并将 UTC 转换为本地时间,同时考虑夏令时的变化。

获得 UTC 是相当标准的。本地时间的转换由“timeZone”库模块提供(根据 Jack Christensen 的设计稍作修改)。timeZone 模块为澳大利亚维多利亚州提供转换例程和单一时区规范。您需要修改/添加您所在地区的 TZ 规范。

时区.cpp

// Victoria, Oz timezone
static TimeChangeRule aeST = {"AEST", First, Sun, Apr, 3, 600};   // UTC + 10 hours
static TimeChangeRule aeDT = {"AEDT", First, Sun, Oct, 2, 660};   // UTC + 11 hours
Timezone ae(aeDT, aeST);

solar_diverter_report.ino:

#include                   // settimeofday_cb()
#include 

const uint32_t	utc = utcTime();
const uint32_t	localTime = ae.toLocal( utc );

网络监控:

该系统包括许多 http/svg 网页,提供多个时间尺度上的温度/功率历史记录。提供了代码,但没有记录......

cloudy_day_o9VrT4Po8V.png?auto=compress%2Cformat&w=740&h=555&fit=max
阴天:太阳能不足,导致多次升压。
 

 


下载该资料的人也在下载 下载该资料的人还在阅读
更多 >

评论

查看更多

下载排行

本周

  1. 1山景DSP芯片AP8248A2数据手册
  2. 1.06 MB  |  532次下载  |  免费
  3. 2RK3399完整板原理图(支持平板,盒子VR)
  4. 3.28 MB  |  339次下载  |  免费
  5. 3TC358743XBG评估板参考手册
  6. 1.36 MB  |  330次下载  |  免费
  7. 4DFM软件使用教程
  8. 0.84 MB  |  295次下载  |  免费
  9. 5元宇宙深度解析—未来的未来-风口还是泡沫
  10. 6.40 MB  |  227次下载  |  免费
  11. 6迪文DGUS开发指南
  12. 31.67 MB  |  194次下载  |  免费
  13. 7元宇宙底层硬件系列报告
  14. 13.42 MB  |  182次下载  |  免费
  15. 8FP5207XR-G1中文应用手册
  16. 1.09 MB  |  178次下载  |  免费

本月

  1. 1OrCAD10.5下载OrCAD10.5中文版软件
  2. 0.00 MB  |  234315次下载  |  免费
  3. 2555集成电路应用800例(新编版)
  4. 0.00 MB  |  33566次下载  |  免费
  5. 3接口电路图大全
  6. 未知  |  30323次下载  |  免费
  7. 4开关电源设计实例指南
  8. 未知  |  21549次下载  |  免费
  9. 5电气工程师手册免费下载(新编第二版pdf电子书)
  10. 0.00 MB  |  15349次下载  |  免费
  11. 6数字电路基础pdf(下载)
  12. 未知  |  13750次下载  |  免费
  13. 7电子制作实例集锦 下载
  14. 未知  |  8113次下载  |  免费
  15. 8《LED驱动电路设计》 温德尔著
  16. 0.00 MB  |  6656次下载  |  免费

总榜

  1. 1matlab软件下载入口
  2. 未知  |  935054次下载  |  免费
  3. 2protel99se软件下载(可英文版转中文版)
  4. 78.1 MB  |  537798次下载  |  免费
  5. 3MATLAB 7.1 下载 (含软件介绍)
  6. 未知  |  420027次下载  |  免费
  7. 4OrCAD10.5下载OrCAD10.5中文版软件
  8. 0.00 MB  |  234315次下载  |  免费
  9. 5Altium DXP2002下载入口
  10. 未知  |  233046次下载  |  免费
  11. 6电路仿真软件multisim 10.0免费下载
  12. 340992  |  191187次下载  |  免费
  13. 7十天学会AVR单片机与C语言视频教程 下载
  14. 158M  |  183279次下载  |  免费
  15. 8proe5.0野火版下载(中文版免费下载)
  16. 未知  |  138040次下载  |  免费