一、题目
数字式工频有效值多用表
二、任务
设计并制作一个能同时对一路工频交流电(频率波动范围为 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给出的设计方案:
以下是基于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采样和计算关键参数,并通过显示界面向用户展示测量值。有效地满足了各种测量需求,达成了测量范围广、精度高、显示直观的目标。
这个题目考察的知识点: