二、要求
1、基本要求
(1)在 Rs=100Ω,Es=10V~20V 时,充电电流 Ic 大于(Es-Ec)/(Rs+Rc)。
(2)在 Rs=100Ω 时,能向电池充电的 Es 尽可能低。
(3)Es 从 0 逐渐升高时,能自动启动充电功能的 Es 尽可能低。
(4)Es 降低到不能向电池充电,最低至 0 时,尽量降低电池放电电流。
(5)监测和控制电路工作间歇设定范围为 0.1 s~5s。
2、发挥部分
(1)在 Rs=1Ω,Es=1.2V~3.6V 时,以尽可能大的电流向电池充电。
(2)能向电池充电的 Es 尽可能低。当 Es≥1.1V 时,取 Rs =1Ω;当 Es<1.1V 时,取 Rs =0.1Ω。
(3)电池完全放电,Es 从 0 逐渐升高时,能自动启动充电功能(充电输出端开路电压>3.6V,短路电流>0)的 Es 尽可能低。当 Es≥1.1V 时,取 Rs =1Ω;当 Es<1.1V时,取 Rs=0.1Ω。
(4)降低成本。
(5)其他。
三、说明
1、测试最低可充电 Es 的方法:逐渐降低 Es,直到充电电流 Ic 略大于 0。当 Es 高于 3.6V时,Rs 为 100Ω;Es 低于 3.6V 时,更换 Rs 为 1Ω;Es 降低到 1.1V 以下时,更换 Rs为 0.1Ω。然后继续降低 Es,直到满足要求。
2、测试自动启动充电功能的方法:从 0 开始逐渐升高 Es,Rs 为 0.1Ω;当 Es 升高到高于 1.1V 时,更换 Rs 为 1Ω。然后继续升高 Es,直到满足要求。
GPT-4o给出的设计方案:
设计一个电能收集充电器,包含电源变换模块和充电控制部分。系统接收电源信号(太阳能、电池等),经过调节转化为适合模拟可充电池的充电电流,并输出到模拟可充电池。设计需考虑最大化电能收集效率及自动切换充电模式,以降低能耗和实现最大化充电效果。
系统根据输入电压和电源状态智能调节充电电流,确保在不同负载和电压下实现最优的充电效率和效果。在电源不足时自动降低负载,避免过度放电。同时,利用数据采集与显示模块,实时监测电源及电池状态以调整充电参数。
电源模块:
充电控制模块:
数据采集模块:
DC-DC转换器(LT1377):
恒流源IC(LM317):
运算放大器:
MCU(STM32F103系列):
以下是STM32F103单片机数据采集与充电控制的C代码示例:
#include "stm32f1xx.h"
#include "adc.h"
#include "usart.h"
// 初始化ADC和USART
void System_Init(void) {
HAL_Init();
SystemClock_Config();
MX_ADC1_Init();
MX_USART1_UART_Init();
}
// 设置稳压和恒流电路
void Set_Charging_Parameters(uint16_t voltage, uint16_t current) {
// 设定电压和电流参数函数
// 通过PWM调整输出电压和电流
TIM_OC_InitTypeDef sConfigOC;
htim1.Instance = TIM1;
htim1.Init.Prescaler = 0;
htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
htim1.Init.Period = 65535;
htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
HAL_TIM_PWM_Init(&htim1);
sConfigOC.OCMode = TIM_OCMODE_PWM1;
sConfigOC.Pulse = voltage;
sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
sConfigOC.OCNPolarity = TIM_OCNPOLARITY_HIGH;
sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1);
HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1);
}
// 采集电源和电池数据
void Data_Collection(void) {
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY);
uint32_t voltage = HAL_ADC_GetValue(&hadc1);
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, HAL_MAX_DELAY);
uint32_t current = HAL_ADC_GetValue(&hadc1);
char buffer[100];
sprintf(buffer, "Voltage: %lu, Current: %lu\r\n", voltage, current);
HAL_UART_Transmit(&huart1, (uint8_t *)buffer, strlen(buffer), HAL_MAX_DELAY);
}
// 系统初始化和主循环
int main(void) {
System_Init();
uint16_t voltage = 0;
uint16_t current = 0;
while (1) {
Data_Collection();
Set_Charging_Parameters(voltage, current);
HAL_Delay(1000); // 延迟1秒
}
}
void SystemClock_Config(void) {
// 系统时钟配置
}
通过这个设计方案,系统能够有效地采集并监控电池电压和电流,同时调节充电电流,确保高效、稳定、安全地进行电池充电。
本题考察的主要知识点:
该题目考察学生在电子电路设计与实现方面的综合能力,具体包括以下几个方面: