Например TDA7294

Форум РадиоКот • Просмотр темы - Как правильно посчитать потребляемую мощность?
Форум РадиоКот
Здесь можно немножко помяукать :)

Текущее время: Пт авг 08, 2025 02:08:13

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 46 ]  1, ,  
Автор Сообщение
Не в сети
 Заголовок сообщения: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Ср окт 30, 2024 22:19:10 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Нужно контролировать потребляемую мощность на розетке под управлением ESP32. Сейчас использую для этой цели ESP32-C3 (RISC-V)
Прототип выглядит так: https://youtu.be/cv17alONmCw
К нулевому каналу ADC1 подключен модуль с трансформатором ZMPT101b и LM358. К первому каналу того же ADC - модуль с ACS712.
Потоковым чтением через DMA считываю синусоиду с обоих каналов, фильтрую её медианным фильтром с фиксированным окном в пять значений, а далее считаю по отдельность RMS для напряжения и тока.
СпойлерКод на Rust.
Код:
# AppConfig:
max_measured_freq = 100 # Hz
min_measured_freq = 25 # Hz
rms_half_periods = 12
sps_freq = 20000 # Hz
voltage_channel = 0
zero_voltage = 2490 # raw
reference_voltage =  238.0 # V
reference_voltage_raw = 680.0
zero_current = 2848 # raw
reference_current = 7.4 # A
reference_current_raw = 522.0 # raw

Код:
use anyhow::bail;
use derivative::Derivative;
use esp_idf_hal::peripheral::Peripheral;
use esp_idf_svc::hal::adc::{
    AdcContConfig, AdcContDriver, AdcMeasurement, Attenuated, EmptyAdcChannels,
};
use std::convert::TryFrom;

use crate::median::*;
use crate::Config;
use crate::PERIPHERALS;

const VOLTAGE_CHANNEL: usize = 0;

#[derive(Derivative)]
//#[derivative(Default, Copy, Clone, Debug)]
#[derivative(Default)]
struct ChannelBuffers {
    zero_raw: u16,
    reference_rms: f32,
    reference_raw: f32,
    #[derivative(Default(value = "0"))]
    zero_deviation: i32,
    #[derivative(Default(value = "0"))]
    squares_sum: u32,
    #[derivative(Default(value = "0"))]
    count: u16,
    #[derivative(Default(value = "[0; 5]"))]
    median_buf: [u16; 5],
    #[derivative(Default(value = "0"))]
    median_idx: usize,
    #[derivative(Default(value = "false"))]
    median_started: bool,
}

pub struct RmsMeashureResult {
    pub volatge_rms: f32,
    pub current_rms: f32,
    pub frequency: f32,
}

pub fn rms_meashure(app_config: &Config) -> anyhow::Result<RmsMeashureResult> {
    let peripherals = PERIPHERALS.clone();
    let mut peripherals = peripherals.lock();
    let adc_config = AdcContConfig {
        sample_freq: esp_idf_hal::prelude::Hertz(app_config.sps_freq),
        frame_measurements: 16,
        frames_count: 4,
    };

    let adc_channels = EmptyAdcChannels::chain(Attenuated::none(unsafe {
        peripherals.pins.gpio0.clone_unchecked()
    }))
    .chain(Attenuated::none(unsafe {
        peripherals.pins.gpio1.clone_unchecked()
    }));
    let mut adc = AdcContDriver::new(
        unsafe { peripherals.adc1.clone_unchecked() },
        &adc_config,
        adc_channels,
    )?;

    adc.start()?;
    let mut ch = [
        ChannelBuffers {
            zero_raw: app_config.zero_voltage,
            reference_rms: app_config.reference_voltage,
            reference_raw: app_config.reference_voltage_raw,
            ..Default::default()
        },
        ChannelBuffers {
            zero_raw: app_config.zero_current,
            reference_rms: app_config.reference_current,
            reference_raw: app_config.reference_current_raw,
            ..Default::default()
        },
    ];

    let mut is_zero_crossed = false;
    let mut zero_check_block_count: u16 = 1;
    let mut zero_cross_count: u16 = app_config.rms_half_periods + 1;
    let mut last_voltage: u16 = 0;
    let mut max_measurements: i32 =
        (app_config.sps_freq as i32 * app_config.rms_half_periods as i32 * 2)
            / app_config.min_measured_freq as i32
            + 1;

    let mut samples = [AdcMeasurement::default(); 16];
    'reading_loop: loop {
        if let Ok(num_read) = adc.read(&mut samples, 100) {
            for smp in samples.iter().take(num_read) {
                if max_measurements <= 0 {
                    println!("Can't calculate frequency. May be power off?");
                    bail!("Can't calculate frequency. May be power off?");
                }
                let i: usize = usize::try_from(smp.channel())?;
                if i >= ch.len() {
                    println!("Invalid GPIO");
                    bail!("Invalid GPIO");
                } else {
                    if ch[i].median_idx > 4 {
                        ch[i].median_idx = 0;
                        if !ch[i].median_started {
                            ch[i].median_started = true;
                        }
                    }

                    if ch[i].median_started {
                        let median_value = median5(ch[i].median_buf);
                        if i == VOLTAGE_CHANNEL {
                            if zero_cross_count == 0 {
                                break 'reading_loop;
                            }

                            if zero_check_block_count > 0 {
                                zero_check_block_count -= 1;
                            } else if (last_voltage < app_config.zero_voltage
                                && median_value >= app_config.zero_voltage)
                                || (last_voltage >= app_config.zero_voltage
                                    && median_value < app_config.zero_voltage)
                            {
                                zero_check_block_count = (app_config.sps_freq
                                    / app_config.max_measured_freq as u32
                                    / 2
                                    / app_config.rms_half_periods as u32)
                                    as u16;
                                is_zero_crossed = true;
                                zero_cross_count -= 1;
                            }
                            last_voltage = median_value;
                        }

                        if is_zero_crossed {
                            let sq: u32 = if median_value >= ch[i].zero_raw {
                                (median_value - ch[i].zero_raw) as u32
                            } else {
                                (ch[i].zero_raw - median_value) as u32
                            };
                            ch[i].squares_sum += sq * sq;
                            ch[i].zero_deviation += ch[i].zero_raw as i32 - median_value as i32;
                            ch[i].count += 1;
                        }
                    }

                    ch[i].median_buf[ch[i].median_idx] = smp.data();
                    ch[i].median_idx += 1;
                }
                max_measurements -= 1;
            }
        }
    }
    drop(adc);

    let v_rms = ((ch[0].squares_sum as f32 / ch[0].count as f32).sqrt()
        / app_config.reference_voltage_raw
        * app_config.reference_voltage)
        .round();
    let c_rms = (((ch[1].squares_sum as f32 / ch[1].count as f32).sqrt()
        / app_config.reference_current_raw
        * app_config.reference_current
        * 10f32)
        .round()
        // pickups
        - 3f32)
        / 10f32;

    let res = RmsMeashureResult {
        volatge_rms: if v_rms < 55f32 { 0f32 } else { v_rms },
        current_rms: if v_rms < 55f32 || c_rms < 0.5f32 {
            // current deviation
            0f32
        } else {
            c_rms
        },
        frequency: if v_rms < 55f32 {
            0f32
        } else {
            (app_config.sps_freq as f32 / ch[0].count as f32 / 4f32
                * app_config.rms_half_periods as f32
                * 10f32)
                .round()
                / 10f32
        },
    };

    for (i, chan) in ch.iter().enumerate() {
        println!(
            "GPIO{}: freq = {}, RMS = {} (raw: {} deviation: {}) by count {}",
            i,
            (app_config.sps_freq as f32 * app_config.rms_half_periods as f32
                / chan.count as f32
                / 4f32
                * 10f32)
                .round()
                / 10f32,
            ((chan.squares_sum as f32 / chan.count as f32).sqrt() / chan.reference_raw
                * chan.reference_rms
                * 10f32)
                .round()
                / 10f32,
            (chan.squares_sum as f32 / chan.count as f32).sqrt().round(),
            (chan.zero_deviation as f32 / chan.count as f32).round(),
            chan.count
        );
    }

    Ok(res)
}

Проблема в том, что и точность никакая, да и средневзвешенная сумма положительных и отрицательных замеров странным образом улетает на +-200 попугаев.
Кто-нибудь подобное делал?

На всякий случай приложу еще и схему.
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 12:42:33 
Друг Кота
Аватар пользователя

Карма: 62
Рейтинг сообщений: 878
Зарегистрирован: Вт апр 24, 2007 07:45:40
Сообщений: 6048
Откуда: Minsk
Рейтинг сообщения: 0
далее считаю по отдельность RMS для напряжения и тока

... ну и? Перемножаем RMS напр. и тока, получаем х.з.ч., а не потребляемую активную мощность, бо без учёта сдвига фаз. Или оно только для электроплиток и утюгов, где потр. мощщность всегда активная?
СпойлерЭх, не знал я четверть века назад, когда ещё работал, об Rust (да и сейчас не знаю :)) ) . Пришлось на древней Меге104 на асме городить дивайсы. Может, потому они до сих пор работают? И считл этот энергетический мультиметр с десяток параметров, хотя камень был древний и частота всего 8МГц.


Насчёт улетающих куда-то попугаев ничего сказать не могу, к сожалению. У меня никто никуда не улетал - может по причине (см. выше). Ну дак пресловутый Хруст вроде заточен на создание безошибочных программ ? :shock:

_________________
Изображение


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 12:52:10 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Или оно только для электроплиток и утюгов, где потр. мощщность всегда активная?

На данный момент именно так. Если потребуется считать реактивную мощность, то естественно, это сделаю. Вопрос был совсем не об этом.

Ну дак пресловутый Хруст вроде заточен на создание безошибочных программ ? :shock:

Нет, конечно. Он позволяет исключить большинство ошибок при работе с динамической памятью. Само собой, на восьмибитном МК это малоактуально, в отличии от ESP32 с FreeRTOS и веб-сервером.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 13:39:34 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 3
Медали: 2
Получил миской по аватаре (2)
Варианты или циклично (хотя-бы 100 раз в секунду) перемножать мгновенные значения тока и напряжения, постаравшись их как можно одновременнее получить, или делать замеры IUI, а ток усреднять потом (или наоборот - UIU, и усреднять напряжение)
Результат умножения складывать в буфер, из которого (тоже регулярно) результат вынимать и преобразовывать из попугаев в Ватты

а можно микросхему от старого счетчика взять (которая с импульсным выходом)

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 14:13:00 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Варианты или циклично (хотя-бы 100 раз в секунду)

100 раз в секунду при частоте 50 Гц будет вообще ни о чем.
Там в коде видно, что SPS установлен в 20 Кгц. То есть, я 10 тыс. раз в секунду замеряю напряжение и ток со сдвигом в 100 микросекунд.


а можно микросхему от старого счетчика взять (которая с импульсным выходом)

Тоже вариант. Но старого счетчика, нет. Да и хотелось все же в веб-интерфейсе выдавать напряжение и ток, а не только мощность. В деревне у меня в розетке с одинаковым успехом можно обнаружить как 160 вольт, так и 260.
С реактивкой пока никаких проблем нет, так как это будет управление электронагревателем по WiFi.
Задача не считать потребление, а мониторить напряжение, ток и потребляемую мощность.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 14:30:47 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:05:30
Сообщений: 343
Рейтинг сообщения: 0
мониторить напряжение, ток и потребляемую мощность


О какой мощности идет речь?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 14:34:40 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
О какой мощности идет речь?

Написал же:
Ivanoff-iv писал(а):
это будет управление электронагревателем по WiFi

Так что пока только активная. Реактивная неинтересна.
Если же вопрос о максимальной мощности, то можно считать, что не более 2.5 КВт.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 14:45:18 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:05:30
Сообщений: 343
Рейтинг сообщения: 0
Тогда в цепь 220 последовательный шунт и мерить быстро U до и после.
U до = U 220
(U2-U1)/R = I цепи 220
U*I*cosФи =P


Предлагаю ещё один вариант, проверенный. АЦП, к примеру, ADC121S101, запитанный через REF198 от ADUM6402, он же развязывает сигнальные линии от МК. В моём случае перед АЦП стоит опер, другой (оба опера в одном корпусе) буферит REF/2 для сдвига сигнала.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 14:56:21 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
Тогда в цепь 220 последовательный шунт и мерить быстро U до и после.

И чем два трансформатора ZMPT101b с двумя LM358 лучше измерения тока датчиком Холла в ACS712 и напряжения одним трансформатором ZMPT101b с одним LM358?

Предлагаю ещё один вариант, проверенный. АЦП, к примеру, ADC121S101, запитанный через REF198 от ADUM6402, он же развязывает сигнальные линии от МК. В моём случае перед АЦП стоит опер, другой (оба опера в одном корпусе) буферит REF/2 для сдвига сигнала.

Чем он лучше, чем родной АЦП у ESP32-C3? Гляньте на схему. Там три питания:
1. МК - 3.3 В
2. ОУ и ACS712 - 5 В
3. Реле - 5 В


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 15:00:56 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
ПростоНуб писал(а):
100 раз в секунду при частоте 50 Гц будет вообще ни о чем.
Да, опечатался... 100 раз за период... :oops:

Добавлено after 4 minutes 20 seconds:
Если измеряешь с равными промежутками по очереди ток и напряжение, то тем более нужно находить среднее значение, чтобы моменты замеров совпадали хотябы виртуально

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 15:19:27 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:05:30
Сообщений: 343
Рейтинг сообщения: 0
И чем два трансформатора ZMPT101b с двумя LM358 лучше измерения тока датчиком Холла в ACS712 и напряжения одним трансформатором ZMPT101b с одним LM358?


Первое это ардуино, оно не подходит на аналоговых измерений.
Потом датчики хола, они сами по себе грубые 2% + сильная зависимость от магнитного поля вокруг. (Вы же не хотите экранировать датчик от магнитного поля?)
Даже если Вы это сделаете то их чувствительность проигрывает любому измерительному трансформатору.

Транс лучшее бюджетное решение.
Но там свои заморочки, например трансформатор сам по себе фильтр и искажает входной сигнал.
Например Вы поставили старый мотор где на роторе искра ЭДС при разрыве обмотки.
Тут Ваш транс не покажет ВЧ импульс а наоборот срежет его своей L поставляющей.
Вы будете мерить усреднённое значение.

Только решение нашего Тутанхамона из Екатеринбурга позволит Вам честно смотреть сигнал, без искажений, без расчета CosФи.
PS LM358 тоже говно, он дает смещение 2-7мВ по входу. Таких в схеме нужно минимум 2. Так что берите ОУ с смещением по напряжению не более 0.1мВ Что бы измерения 12бит АЦП не превратились в 10бит АЦП


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 15:32:32 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
Мне кажется что измерять напряжение до и после шунта - не очень правильное решение т.к. точность его будет низкой,
лучше измерять падение напряжения непосредственно на шунте, отделив гальванически трансформатором
ещё можно применить трансформатор тока, на счетчиках ведь их не стесняются ставить...

Добавлено after 3 minutes 45 seconds:
ПростоНуб, перечитал 1й пост, попробуй фильтровать для одной величины например 5, а для другой 6 значений и фильтр взять не медианный, а усреднение или медианно усреднительный (откидываем по одному крайнему, а остальное усредняем)

Добавлено after 2 minutes 52 seconds:
и ещё, мк успевает это всё обработать? как часто происходит пересчёт? после каждого измерения или значительно реже?

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: ~
СообщениеДобавлено: Чт окт 31, 2024 15:33:06 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:05:30
Сообщений: 343
Рейтинг сообщения: 0
Если хотите точность и что бы было дешёво - купить БУ детали токовых клещей. Готовое решение, точное и с развязкой.
Если правильно передадите сигнал, сможете сохранить их точность измерений


Мне кажется что измерять напряжение до и после шунта - не очень правильное решение т.к. точность его будет низкой,
лучше измерять падение напряжения непосредственно на шунте



:))) это тоже самое. Как раз падение на шунте мультиметром так и мерится. Разность напряжений до и после шунта.
Или Вы хотите развязать схему и подвесить её на U1?
Вот это хз чем обернётся. Не боитесь измерительный каскад на ~220В вешать?
Изоляцию не жалко, но если тронете рукой, то пострадать можете до 2,5кВт


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 15:40:40 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
ПростоНуб, а откуда берутся "отрицательные замеры"? по идее в + полуволну +*+=+ а в - полуволну -*-=+, поэтому их разделять не нужно

Добавлено after 1 minute 51 second:
es131245 писал(а):
это тоже самое.
В теории - да, то-же самое, но попробуй миллиВольты павшие на шунте разглядеть на фоне сотен Вольт в сети, да ещё при неодновременности измерения...

Добавлено after 3 minutes 26 seconds:
Если на ТТ делать - то ток идёт через ТТ - он дубовый и напряжения на нем малы, да ещё и шунтом закорочен, поэтому его индуктивность сигнал практически не исказит, а то, напряжение, что после ТТ уже и руками трогать не страшно

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Последний раз редактировалось Ivanoff-iv Чт окт 31, 2024 15:42:15, всего редактировалось 1 раз.

Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 15:41:58 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:05:30
Сообщений: 343
Рейтинг сообщения: 0
а откуда берутся "отрицательные замеры"? по идее в + полуволну +*+=+ а в - полуволну -*-=+, поэтому их разделять не нужно


Трансформаторы работают на переменном токе. Там ток идет в одну сторону, потом в обратную (-U).
Поэтому и делается первый каскад смещения на +U/2.
Получается ноль в середине, "0" это -U, а макс это +U

У st есть датащит AN4207, это называется ADC дифференциальный режим измерений


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 15:46:19 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
Про измерение двухполярных величин я знаю, мне не понятен термин "отрицательные замеры" и откуда он взялся...
в смысле зачем замеры делить на положительные и отрицательные, если алгоритм расчёта аболютно одинаков?

Добавлено after 1 minute 34 seconds:
Получается ноль в середине,
где вы нашли середину у чётного числа? 8) (шутка)

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 15:57:37 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:05:30
Сообщений: 343
Рейтинг сообщения: 0
es131245 писал(а):
это тоже самое.
В теории - да, то-же самое, но попробуй миллиВольты павшие на шунте разглядеть на фоне сотен Вольт в сети, да ещё при неодновременности измерения...


Почему мВ? Смотря какое сопротивление шунта. При шунте 0.1ом на нем будет 1В
А после 1В еще стоит каскад усилителя до 0.7U adc


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 16:05:13 
Друг Кота
Аватар пользователя

Карма: 51
Рейтинг сообщений: 2108
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Сообщений: 6998
Откуда: Сердце Пармы
Рейтинг сообщения: 0
Медали: 2
Получил миской по аватаре (2)
Просто из вашего описания я понял, что стоит 2 трансформатора напряжения, один до, второй после шунта, потом идёт низмерение этих 2х напряжений (соответственно до и после), а затем из этих 2х величин вычисляется падение...

и, кстати, если на 0,1 Ом резисторе падает 1 Вольт, то он греется на 10 Вт - неплохая такая печечка...

_________________
Просто не учи физику в школе, и вся твоя жизнь будет наполнена чудесами и волшебством :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 16:11:40 
Потрогал лапой паяльник
Аватар пользователя

Зарегистрирован: Пт фев 01, 2013 21:05:30
Сообщений: 343
Рейтинг сообщения: 0
Я вообще предлагал 1 шунт и без трансформаторов. Гальванические развязанные ОУ.
И в расчете вы на нолик ошиблись. Там 1Вт, тк 0.1 один из самый большых шунтов по сопротивлению. Обычно там меньше


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как правильно посчитать потребляемую мощность?
СообщениеДобавлено: Чт окт 31, 2024 16:19:21 
Собутыльник Кота
Аватар пользователя

Карма: 38
Рейтинг сообщений: 292
Зарегистрирован: Пт сен 07, 2018 20:20:02
Сообщений: 2594
Откуда: деревня в Тульской губернии
Рейтинг сообщения: 0
Медали: 1
Получил миской по аватаре (1)
И чем два трансформатора ZMPT101b с двумя LM358 лучше измерения тока датчиком Холла в ACS712 и напряжения одним трансформатором ZMPT101b с одним LM358?


Первое это ардуино

Откуда вдруг взялось ардуино?

Потом датчики хола, они сами по себе грубые 2% + сильная зависимость от магнитного поля вокруг.

Вообще то в даташит ACS712 +-1.5%. И непонятно, с чего Вы решили, что с ZMPT101B и ОУ можно получить точность заметно лучше.

(Вы же не хотите экранировать датчик от магнитного поля?)

Это как раз намного проще и займет меньше места, чем установка второго ZMPT101B.

Даже если Вы это сделаете то их чувствительность проигрывает любому измерительному трансформатору.

Так напряжение я и измеряю через трансформатор. Но как через него измерять ток?
В счетчиках ток измеряется, как разность потенциалов шунта. Так, само собой точнее, но меня вполне и 1.5% устраивают.
Само собой, что можно это делать, для примера, на ADE7755, Тогда и трансформатор не нужен, хотя схема становится существенно сложней.
Но мне не нужна точность 0.1%. Меня вполне устроит не 1.5, а даже 5%.

PS LM358 тоже говно, он дает смещение 2-7мВ по входу. Таких в схеме нужно минимум 2. Так что берите ОУ с смещением по напряжению не более 0.1мВ Что бы измерения 12бит АЦП не превратились в 10бит АЦП

Так их и есть два в схеме. Благо в корпусе их и есть два. А так как у ADC опорное напряжение ~1000 мВ, то эти милливольты, с учетом их деления на пять с выхода LM358, четырехратной (2 разряда) разницы ну уж никак дать не могут.


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 46 ]  1, ,  

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y