Свежие обсуждения
Измерения

Измерение пульсирующего тока микроконтроллером

1 8

ШИМ работает на частоте 32500Гц, меряю ток (усиливает с шунта MAX4372F) с помощью АЦП на Атмеге8 (тактовая 8 МГц). АЦП Меги симплирует за 13 АЦПешных тактов.
При делителе АЦП 32 или 64 получается fADC 250 или 125 кГц, и частота Найквиста (fADC/2) много больше частоты ШИМ.
Получается, что измеряться будет мгновенное значение тока в DC бустере.
А как проинтегрировать (получить среднее значение) тока за измеряемый период - например за 13 тактов при частоте 125 кГц ?
На землю вешать шунт и проинтегрировать конденсатором ток нельзя.

Помогите умные люди!!!

В протеусе приложено.

 

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

Среднее значение это будет среднеарифметическое ваших выборок АЦП, т.е. сумма тринадцати измерений делённая на тринадцать. А вот действующее значение тока получить будет трудновато… Легче взять сигнал с шунта и усилить, усиленный сигнал подать на лампочку накаливания, и через фотоприёмник подать на ваш АЦП, поострить функцию аппроксимации по заведомо известному постоянному току и напряжению на лампочке. Т.е. подаёте в режиме наладки постоянную мощность от внешнего источника и сигнал с фотоприёмника привязываете к показаниям АЦП. Можно конечно каждое показания АЦП возводить в квадрат, потом суммировать делить на количество выборок, потом брать корень из этого результата, и фиг его знает какую погрешность вы получите, считать нужно, а мне лень формулы вспоминать…

 

Link: сумма тринадцати измерений делённая на тринадцать
Почему 13? Не понимаю, объясните плииз!

Что-то файл не выкладывается (((

 

Эй Джей: Почему 13? Не понимаю, объясните плииз!

Да я просто предположил что за период вы получаете тринадцать измерений... Вообще то всё просто при нахождении среднего тока просто накапливаете в результат и постоянно делите по палам Icp=(Icp+I(АЦП))/2 I(АЦП) это ток измеренный АЦП.

 

Link: и постоянно делите по палам Icp=(Icp+I(АЦП))/2
А если подумать? И для этой "формулы" для простоты вычислить что получим, если ток такой: 2,3,4 (например)

Эй Джей: А как проинтегрировать (получить среднее значение) тока за измеряемый период - например за 13 тактов при частоте 125 кГц ?
Проинтегрировать . Или определиться с максимальной частотой ИЗМЕНЕНИЯ тока и уже с ней подходить к формулам. И к Найквисту тоже. А лучше - к Шеннону и Котельникову. Прочитав, что означают формулы. А то "в огороде бузина, а в Киеве дядька".

 

Эй Джей: Получается, что измеряться будет мгновенное значение тока в DC бустере.
В меге8 время выборки у АЦП составляет 1.5 такта, так что не совсем мгновенно. Если засинхронизироваться с началом импульса шим, то, сдвигая начало преобразования, можно измерять ток каждые 1.2 мкс. Потом найти средне-арифметическое всех измерений, как-то так.

 

Сам когда-то столкнулся с этой проблемой.
Во первых, сигнал ШИМ далек от синусоидального (Вам на это уже намекали) и его граничная частота (наивысшая) в принципе лежит в бесконечности. Поэтому с помощью АЦП последовательного приближения измерить такой сигнал в принципе невозможно (точнее не возможно передать его без потерь).
Дальше - надо определиться, что Вы хотите померить: среднее, среднеквадратичное или какое-то ещё значение тока (а какое? хм, может больше и не бывает). Если среднее, то можно перед АЦП поставить интегрирующую цепочку, с полосой пропускания ниже частоты дискретизации / 4 (с запасом) - сделать это надо в любом случае.
Затем заводим оконный циклический буфер размером больше периода. При каждом отсчёте АЦП (после занесения нового значения в буфер) суммируем значения, затем делим на количество отсчётов. (можно и проще: есть сумма с предыдущего расчёта, вычитаем старое, записываем в буффер новое, прибавляем новое, если буфер большой, то так будет намного быстрее).
Если же нужно среднеквадратичное значение...
1. По определению RMS - корень квадратный из суммы квадратов отсчётов, делённое всё на количество отсчётов.
2. Также заводим буфер. Пишем туда либо сами значения, либо сразу квадраты значений (если памяти достаточно)
3. Также суммируем как описывал раньше, только теперь квадраты.
4. Берём квадратный корень и делим его на количество отсчётов.

т.к. в меге8 есть аппаратный перемножитель, то в принципе не так уж и сложно и долго получается. Корень с любой заранее заданной точностью можно посчитать по достаточно простым формулам (за 4 шага для 5 знаков после запятой), правда там деление участвует, что не есть хорошо

Опять же, если нам не нужно значение в прямом виде - то и корень брать не надо, можно все настройки (уставки и т.д.) хранить в виде квадратов, тогда отметается самая длинная операция - извлечение корня (в котором несколько раз надо делить). А умножение мега делает за 2 такта.

 

GM: Эй Джей: Получается, что измеряться будет мгновенное значение тока в DC бустере.
В меге8 время выборки у АЦП составляет 1.5 такта, так что не совсем мгновенно. Если засинхронизироваться с началом импульса шим, то, сдвигая начало преобразования, можно измерять ток каждые 1.2 мкс. Потом найти средне-арифметическое всех измерений, как-то так.

На самом деле мгновенно. Почти. 1.5 такта - это время, когда заражается конденсатор УВХ, в идеальном случае, когда выходное сопротивление источника сигнала равно 0 (ну мало, как в случае бустера на ОУ) конденсатор УВХ будет следить за этим напряжением и в момент отключения его будет запоминаться последнее значение входного мгновенного напряжения. В принципе, ёмкость УВХ и сопротивление ножек и ключа УВХ составляют простейший фильтр RC. Но его постоянная достаточно мала (в даташите, кстати, приводится её значение оценочное и зависимость от напряжения и температуры).
Что-то не нашёл данных в даташите, похоже или видел на тини эти данные или в пиках. В пиках, кстати, очень хорошо расписано влияние УВХ и сопротивления источника на точность преобразования. Зато в даташите на мегу есть параметр: полоса пропускания входного тракта АЦП - 32 кГц. Так что увы и ах - похоже померить ШИМ такой частоты Вам врядли удастся. Осциллограмку бы измеряемого тока посмотреть.
Кстати, предложенный Linkом вариант тоже неплох, хотя на первый взгляд кажется корявым (опять возвращаться к этим лампам, в век микропроцессоров-то) В))) Так работают некоторые высокоточные приборы.

А вот мне сейчас мысль пришла. Высокочастотная составляющая обычно не такая большая. Что если её в аналоговой части как-то преобразовывать и потом прибавлять/отнимать от основной? Если плохо мысль понятная, поясню... сам пока её не понял. Т.е.: сигнал наш состоит из основной частоты (50 Гц или 32 кГц) и кучи высокочастотных составляющих. Основную энергию будет содержать первая-третья гармоники, дальше довесок не больше 5%. Нельзя ли как-нибудь отделить этот довесок, измерить его отдельно с точностью пусть 5% и добавить потом к оснвной гармонике, измерив вторым АЦП (допусим, хранить его на внешней RC цепи). Глупость какая-то, но ведь делают похожими методами корректировку средней точки АЦП.

 

Pitty: А вот мне сейчас мысль пришла.

Автор топика уже пропал… для того что бы воротить огород нужно знать необходимую достаточную погрешность измерения и знать что конкретно нужно получить на выходе, с какой скоростью отображать результат…

Pitty: Во первых, сигнал ШИМ далек от синусоидального

Это точно… Там треугольник с «рогами»… Я честно говоря не понял почему нельзя проинтегрировать сигнал после усиления напряжения шунта, а потом уже делать с ним что хочешь, после интеграции скорость АЦП уже не так важна, тем более если сделать интегратор на ОУ, то требования к АЦП снижаются… нам же не нужен в конце концов осциллограф, а всего лишь нужно знать ток который протекает в первичной цепи трансформатора…

 

GM: время выборки у АЦП составляет 1.5 такта, так что не совсем мгновенно. Если засинхронизироваться с началом импульса шим
Источник тока - солнечная панель, ШИМ работает на частоте 32500Гц, нагрузка - DC-DC конвертер. Внутри периода ШИМ - 8 периодов АЦП (250 КГц). Можно успеть померить до 4-5 раз.
Когда включается мосфет, солн.панель вгоняется в режим короткого замыкания. Не могу понять, будет ли при этом пульсировать ток, и в какой моент надо мерять ток - когда открыт мосфет или закрыт, или брать среднее от этих двух измерений.
Pitty: его граничная частота (наивысшая) в принципе лежит в бесконечности.
Вот уже написал выше - 32500Гц.
Pitty: Кстати, предложенный Linkом вариант тоже неплох, хотя на первый взгляд кажется корявым (опять возвращаться к этим лампам, в век микропроцессоров-то) В)))
Так может заменить лампочку с фотодиодом на оптрон - вроде инерционность у оптрона большая (большая по сравнению с 32500Гц).
Link: Я честно говоря не понял почему нельзя проинтегрировать сигнал после усиления напряжения шунта, а потом уже делать с ним что хочешь
Не подскажите - как проинтегрировать после MAX4372F (К=50, на выходе от 0.5 до 2.5 В)

З.Ы. А как выложить файл, чего-то не получается...