一、任务
设计并制作一个低频相位测量系统,包括相位测量仪、数字式移相信号发生器和移相网络三部分,示意图如下:
二、要求
1、基本要求
(1)设计并制作一个相位测量仪(参见图 1)
a.频率范围:20Hz~20kHz。
b.相位测量仪的输入阻抗≥100kΩ 。
c.允许两路输入正弦信号峰-峰值可分别在 1V~5V 范围内变化。
d.相位测量绝对误差≤2°。
e.具有频率测量及数字显示功能。
f. 相位差数字显示:相位读数为 0o~359.9o,分辨力为 0.1°。
(2)参考图 2 制作一个移相网络
a.输入信号频率:100Hz、1kHz、10kHz。
b.连续相移范围:-45°~+45°。
c.A'、B'输出的正弦信号峰-峰值可分别在 0.3V~5V 范围内变化。
2.发挥部分
(1)设计并制作一个数字式移相信号发生器(图 3),用以产生相位测量仪所需的输入正弦信号,要求:
a.频率范围:20Hz~20kHz,频率步进为 20Hz,输出频率可预置。
b.A、B 输出的正弦信号峰-峰值可分别在 0.3V~5V 范围内变化。
c.相位差范围为 0~359°,相位差步进为 1°,相位差值可预置。
d.数字显示预置的频率、相位差值。
(2)在保持相位测量仪测量误差和频率范围不变的条件下,扩展相位测量仪输入正弦电压峰-峰值至 0.3V~5V 范围。
(3)用数字移相信号发生器校验相位测量仪,自选几个频点、相位差值和不同幅度进行校验。
(4)其它。
三、说明
1、移相网络的器件和元件参数自行选择,也可以自行设计不同于图 2 的移相网络。
2、基本要求(2)项中,当输入信号频率不同时,允许切换移相网络中的元件。
3、相位测量仪和数字移相信号发生器互相独立,不允许共用控制与显示电路。
GPT-4o给出的设计方案:
相位测量仪
数字式移相信号发生器
通过相位比较器测量输入信号相位差,再将相位差转换为电压信号输入MCU,通过数字计算实现高精度相位测量。通过移相网络和DAC输出控制,可以实现精准的信号移相,覆盖0-359°的范围。
频率范围
相位测量精度
信号幅度
相位测量电路
移相网络
MCU(如STM32系列)
锁相环(如CD4046)
运放(如LM324)
以下是STM32实现基本相位测量和移相信号控制的示例代码:
#include "stm32f1xx_hal.h"
// ADC和DAC通道定义
#define PHASE_ADC_CHANNEL ADC_CHANNEL_0
#define PHASE_DAC_CHANNEL DAC_CHANNEL_1
uint32_t read_phase_voltage() {
// 启动ADC读取相位电压信号
HAL_ADC_Start(&hadc1);
HAL_ADC_PollForConversion(&hadc1, 100);
return HAL_ADC_GetValue(&hadc1);
}
void set_phase_shift(uint16_t degree) {
// 转换角度到相应DAC数值,假定0-359°对应DAC的一个满幅值范围
uint32_t dac_value = ((float)degree / 360.0) * 4096;
HAL_DAC_SetValue(&hdac, PHASE_DAC_CHANNEL, DAC_ALIGN_12B_R, dac_value);
}
void setup() {
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_ADC_Init();
MX_DAC_Init();
}
void loop() {
uint32_t phase_voltage = read_phase_voltage();
uint16_t desired_phase = 90; // 目标相位调节值
set_phase_shift(desired_phase);
HAL_Delay(1000); // 调节和测量各1秒一次
}
int main(void) {
setup();
while (1) {
loop();
}
}
这个题目考察的知识点:
本题主要考察通过集成硬件和软件设计实现低频数字式相位测量的方法。关键知识点包括:
通过相位测量仪和数字移相信号发生器的结合,实现0°~359°精准、稳定的相位调节和测量。整个系统采用高度集成的模块设计,包括相位比较器、移相网络和MCU控制,实现频率范围内的高精度相位测量和信号调节。