任务名称
1999年_B题:数字式工频有效值多用表
任务要求
难度

一、题目
数字式工频有效值多用表
二、任务
设计并制作一个能同时对一路工频交流电(频率波动范围为 50 ±1Hz、有失真的正弦波)的电压有效值、电流有效值、有功功率、无功功率、功率因数进行测量的数字式多用表。参见附图。


三、要求
1. 基本要求
(1)测量功能及量程范围
a、 交流电压:0~500V;
c、 有功功率:0~25kW;
d、 无功功率:0~25kvar;
e、 功率因数(有功功率/视在功率):0~1 。为便于本试题的设计与制作,设定待测 0~500V 的交流电压、0~50A 的交流电流均已经相应的变换器转换为 0~5V 的交流电压。
(2)准确度
a、 显示为 位(0.000~4.999),有过量程指示;
b、 交流电压和交流电流:±(0.8%读数+5 个字),例:当被测电压为 300V 时,读数误差应小于±(0.8%×300V+0.5V)=±2.9V ;
c、 有功功率和无功功率:±(1.5%读数+8 个字);
d、 功率因数:±0.01 。
(3)功能选择:用按键选择交流电压、交流电流、有功功率、无功功率和功率因数的测量与显示。
2.发挥部分
(1)用按键选择电压基波及总谐波的有效值测量与显示。
(2)具有量程自动转换功能,当变换器输出的电压值小于 0.5V时,能自动提高分辨力达 0.01V。
(3)用按键控制实现交流电压、交流电流、有功功率、无功功率在测试过程中的最大值、最小值测量。
(4)其它(例如扩展功能,提高性能)。

评审标准

参考答案

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


一、设计思路

  1. 电压转换器和电流转换器:将交流电压(0~500V)和交流电流(0~50A)转换为0~5V的直流信号输入到检测处理控制单元。
  2. 检测处理控制单元:利用MCU对转换后的信号进行采样、数据处理、计算有效值、有功功率、无功功率、功率因数等电参数。
  3. 显示和控制:使用液晶显示屏和按键做用户界面,显示测量值并提供用户输入选择功能。

二、简单论证

  • 电压和电流变换器:使用高精度线性变换器保证信号稳定转换到0~5V范围。
  • MCU(微控制器):进行多路ADC采样,确保采集电压和电流的高精度数据,进行运算处理。
  • 显示模块:实时显示各项测量参数,用户能通过按键切换查看不同测量值。

三、重要指标理论分析

  1. 测量范围及精度
    • 电压测量范围:0~500V,误差小于0.8%。
    • 电流测量范围:0~50A,误差小于1.5%。
    • 功率测量范围:0~25kW,功率因数范围0~1。
  2. 显示分辨率和准确定义
    • 四位小数显示,确保精度且便于读取。

四、原理图设计要点

  1. 电压、电流转换器
    • 使用精密电压互感器和电流互感器,将高压高流换为低电压。
    • 后接运算放大电路调整输出电压到0~5V。
  2. MCU电路
    • 采用STM32系列微控制器,内置ADC,进行数字信号采样和处理。
    • 核心处理器连接LCD显示及按键模块,输出测量值。
  3. 电源管理
    • 稳定的电源设计,确保各模块正常供电工作。

五、核心器件设计要点

  1. 电压互感器
    • 选择高精度互感器确保信号转换准确性。
  2. 电流互感器
    • 选择宽量程、高精度互感器支持大电流采集。
  3. MCU
    • STM32系列,提供高精度ADC,多路采样,快速计算能力。
    • 支持外部中断,按键和显示控制。

六、简单C代码(位于MCU中)

以下是基于STM32的简易频率测量和显示代码示例:

#include "stm32f4xx_hal.h"

ADC_HandleTypeDef hadc1; 
UART_HandleTypeDef huart1;

void SystemClock_Config(void);
void ADC_Init(void);
void UART_Init(void);
float MeasureVoltage(void);
float MeasureCurrent(void);
float CalculatePower(float voltage, float current);
void DisplayResult(float voltage, float current, float power);

int main(void) {
    HAL_Init();
    SystemClock_Config();
    ADC_Init();
    UART_Init();

    float voltage, current, power;
    while (1) {
        voltage = MeasureVoltage(); 
        current = MeasureCurrent();
        power = CalculatePower(voltage, current);
        DisplayResult(voltage, current, power);
        HAL_Delay(1000);
    }
}

void SystemClock_Config(void) {
    // 时钟配置
}

void ADC_Init(void) {
    // ADC初始化
}

void UART_Init(void) {
    // UART初始化
}

float MeasureVoltage(void) {
    // ADC采样电压
    HAL_ADC_Start(&hadc1);
    HAL_ADC_PollForConversion(&hadc1, 100);
    return HAL_ADC_GetValue(&hadc1) * (500.0f / 4095.0f);
}

float MeasureCurrent(void) {
    // ADC采样电流
    HAL_ADC_Start(&hadc1);
    HAL_ADC_PollForConversion(&hadc1, 100);
    return HAL_ADC_GetValue(&hadc1) * (50.0f / 4095.0f);
}

float CalculatePower(float voltage, float current) {
    // 功率计算
    return voltage * current;
}

void DisplayResult(float voltage, float current, float power) {
    char buf[50];
    sprintf(buf, "Voltage: %.2f V, Current: %.2f A, Power: %.2f W\r\n", voltage, current, power);
    HAL_UART_Transmit(&huart1, (uint8_t*)buf, strlen(buf), HAL_MAX_DELAY);
}

结论

通过设计该多用表系统,实现了对交流电压、电流和各种功率参数的高精度测量。设计中使用高准确度的电压电流转换器,将信号转为易处理的0-5V信号,由STM32系列MCU采样和计算关键参数,并通过显示界面向用户展示测量值。有效地满足了各种测量需求,达成了测量范围广、精度高、显示直观的目标。


这个题目考察的知识点:

  1. 交流电测量:理解如何测量交流电的有效值、电流有效值、频率,以及相关功率因数的计算和分析。
  2. 信号转换:使用电压互感器和电流互感器进行信号的转换,将高压高流信号变换为适合ADC采样的低电压信号。
  3. 模数转换与处理:AD转换的应用,通过微控制器(如STM32)的内置ADC进行精确的电压电流采样,并计算功率等参数。
  4. 数据处理与显示:设计数据处理算法,包括有功功率、无功功率的计算,使用LCD或LED显示测量结果,开发用户交互界面。
  5. 系统集成与误差分析:整合各个模块,实现系统的整体功能,并进行误差分析和精度调整,提高测量准确度和稳定性。
硬禾服务号
关注最新动态
0512-67862536
info@eetree.cn
江苏省苏州市苏州工业园区新平街388号腾飞创新园A2幢815室
苏州硬禾信息科技有限公司
Copyright © 2024 苏州硬禾信息科技有限公司 All Rights Reserved 苏ICP备19040198号