任务名称
2005年_F题:数控直流电流源
任务要求
难度

一、任务

设计并制作数控直流电流源。输入交流 200~240V,50Hz;输出直流电压≤10V。其原理示意图如下所示。

二、要求

1、基本要求
(1)输出电流范围:200mA~2000mA;
(2)可设置并显示输出电流给定值,要求输出电流与给定值偏差的绝对值≤给定值的1%+10 mA;
(3)具有“+”、“-”步进调整功能,步进≤10mA;
(4)改变负载电阻,输出电压在 10V 以内变化时,要求输出电流变化的绝对值≤输出电流值的 1%+10 mA;
(5)纹波电流≤2mA;
(6)自制电源。

2、发挥部分
(1)输出电流范围为 20mA~2000mA,步进 1mA;
(2)设计、制作测量并显示输出电流的装置 (可同时或交替显示电流的给定值和实测值),测量误差的绝对值≤测量值的 0.1%+3 个字;
(3)改变负载电阻,输出电压在 10V 以内变化时,要求输出电流变化的绝对值≤输出电流值的 0.1%+1 mA;
(4)纹波电流≤0.2mA;
(5)其他。

三、说明

1、需留出输出电流和电压测量端子;
2、输出电流可用高精度电流表测量;如果没有高精度电流表,可在采样电阻上测量电压换算成电流;
3、纹波电流的测量可用低频毫伏表测量输出纹波电压,换算成纹波电流。

评审标准

参考答案

GPT-4o给出的设计方案:


一、设计思路

  1. 电流输出控制

    • 使用MCU(如STM32)通过DAC产生基准电压进行电流调节,选择精密可调电流源(如LT3080)用作主控电流源,能够精确调整输出电流范围为200mA~2000mA。
  2. 测量与反馈

    • 使用高精度电流采样电阻和运放(如INA219)进行实时电流检测,并反馈给MCU以做闭环控制,使输出电流稳定。
  3. 用户交互

    • 提供键盘输入与LCD显示屏,用于用户调节和显示当前输出电流、设定值及系统状态。

二、简单论证

通过精密可调电流源结合高精度电流采样和闭环反馈控制,保证电流输出的高精度和稳定性。MCU控制和用户交互模块提供灵活的电流调节与显示功能,使系统具有较高的实用性和易用性。

重要的指标和理论分析

  1. 输出电流范围

    • 基本要求:200mA~2000mA,步进10mA;
    • 发挥部分:20mA~2000mA,步进1mA。
  2. 输出电流精度

    • 绝对偏差:设定值的±1% + 10mA(基本要求);设定值的±0.1% + 3个字(发挥部分)。
  3. 电流稳定性

    • 在负载电阻和输入电压变化时,保持电流变动≤输出值的1%。
  4. 纹波电流

    • 基本要求:≤2mA;
    • 发挥部分:≤0.2mA。

三、电路原理图设计要点

  1. 电源管理

    • 使用AC-DC转换模块将交流220V转变为稳压直流电源(12V或24V)供给电流源和MCU。
  2. 电流源与放大器

    • 使用LT3080精密可调电流源,输出电流根据DAC设置的基准电压调整;
    • 高精度电流检测模块(如INA219)检测实际输出电流,并通过I2C通信反馈给MCU。
  3. 控制与显示

    • 使用STM32 MCU控制系统,通过DAC控制电流源,通过I2C接口读取电流检测器数据;
    • 提供键盘输入和LCD显示界面,用户设定电流值并实时显示。

四、核心器件设计要点

  1. LT3080精密可调电流源

    • 具有高精度和高稳定性,通过调节基准电压输出所需电流;
    • 输出电流范围宽,适合本设计要求。
  2. INA219高精度电流检测器

    • 具有高精度、宽范围电流检测能力;
    • I2C接口方便与MCU通信,实现闭环控制。
  3. STM32 MCU

    • 提供PWM控制信号,驱动DAC调整电流;
    • 控制和采集所有传感器数据,并通过LCD和键盘与用户交互。

五、MCU重要功能的C代码和介绍

以下是一个实现基本电流控制和电流测量反馈的示例代码:

#include "stm32f1xx_hal.h"
#include "ina219.h"
#include "lcd.h"

// DAC输出引脚配置
#define DAC_OUT_PIN GPIO_PIN_4

// 目标电流值
uint16_t target_current_mA = 500;

void setup() {
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_DAC_Init();
    MX_I2C_Init();
    LCD_Init();
    INA219_Init();
    DAC_SetValue(DAC_OUT_PIN, 0);   // 初始化设定电流为0
    LCD_DisplayString("Initializing...");
}

void set_current(uint16_t current_mA) {
    uint16_t dac_value = current_mA / 10;  // DAC输出与电流值的关系,根据具体电路调整
    DAC_SetValue(DAC_OUT_PIN, dac_value);
}

void loop() {
    while (1) {
        uint16_t measured_current = INA219_GetCurrent_mA();
        LCD_SetCursor(0, 0);
        LCD_Printf("Set: %dmA", target_current_mA);
        LCD_SetCursor(1, 0);
        LCD_Printf("Measured: %dmA", measured_current);

        if (measured_current < target_current_mA) {
            target_current_mA += 10;
        } else if (measured_current > target_current_mA) {
            target_current_mA -= 10;
        }
        set_current(target_current_mA);
        HAL_Delay(500);  // 调整间隔时间
    }
}

int main(void) {
    setup();
    loop();
}

本题考察的主要知识点:

本题考察了设计并制作一个数据控制直流电流源的能力,涉及以下核心知识点:

  1. 电流源设计与控制: 设计一个电流源,输出电流范围为200mA到2000mA,电流值可调节。
  2. 电流测量与反馈: 利用高精度电流检测模块(如INA219)进行实时电流监测,并通过MCU闭环控制确保输出精度和稳定性。
  3. 用户交互: 提供显示和键盘输入接口,用户可以设置电流值并查看电流输出和系统状态。
  4. 高精度要求: 要求电流输出的绝对偏差不超过设定值的1%+10mA,以及在负载电阻变化和输出电压在10V以内变化时保持稳定性。
  5. 纹波电流控制: 设计中需控制纹波电流不超过2mA。

本题全面考察了硬件设计和控制系统的多方面能力,涉及电路设计、精密测量以及用户界面交互等知识点。设计的稳定性和精度是系统成功的关键,步进控制和反馈机制可提升系统整体性能。

硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号