Народ поделитесь мнениями!
Работаю с процессором STM32F103C8C4, основная задача устройство измерение действующего значения сетевого напряжения. Перед входом АЦП стоит аналоговая схема, которая поднимает «синусоидальный» сигнал сети, снятый с делителя, ровно на середину рабочего диапазона АЦП (беру с ИОН REF196). В итоге на вход АЦП поступает сигнал с постоянной составляющей 1,65 В и размахом синусоиды от 0,15 В до 3,15 В, частой 50 Гц. Для питания АЦП использую внешний ИОН, все резистивные делители и ОУ во входном каскаде относятся к классу прецизионных.
В массив размерностью 1000 значений, с периодом 100 мкс записываются данные из регистра ADC1->DR (ADC_sample[index_adc]= (ADC1->DR)). После заполнения массива на него накладывается оконная функция и вычисляется действующие значение методом прямой дискретизации. Измеренное значение RMS калибрую для 0 В и максимального измеряемого значения.
Для оценки точности использую AC Power Meter GPM-8212 (класс точность 0,1%. Для поверки беру 10 точек, в результате измерения переменного сигнала наблюдаю нелинейность, максимальное отклонение в середине диапазона составляет 3,5%. А хотелось бы убраться в 0,5%, т.е в 5-раз хуже чем AC Meter.
Провожу аналогичный эксперимент только по измерению постоянного напряжения с прецизионного источника. Калибруясь заново провожу поверку по 10 точкам, в результате класс точности на всём диапазоне не превышает 0,25%.
Теперь собственно сам вопрос. С аналоговой электроникой по серьёзному работаю недавно. Хотелось бы получить совет, каким образом можно повысить точность при измерение переменного сигнала? В чём может быть загвоздка в моём случаи? И как можно поробовать её решить?
|