реклама на сайте
подробности

 
 
> Неверный результат измерения потреблённой энергии, Не могу найти ошибку
Motion
сообщение Apr 29 2008, 17:03
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297



Добрый день.

Есть регулятор мощности (диммер). В самом устройстве есть возможность измерения потребляемой энергии в кВт*ч. Но результат измерения не является истинным.

Мощность нагрузки (лампы накаливания) - 150Вт.

Схема устройства - Прикрепленный файл  _____.zip ( 420.86 килобайт ) Кол-во скачиваний: 232
(вообше сделана в Visio, но можно открыть и через Internet Explorer)


Схема состоит из:

- Блока защиты (FU1, R1) - защита от перенапряжения и сверх тока
- Входного фильтра (C1, L1, C3, C4, C5) - для подавления помех исходящих из сети и помех, которые генерирует само устройство
- Блок синхронизации (R3, R4, R5, VD2, VD3, R8) на выходе генерирует меандр. Используется для сигнализации МК (ATMega 16) о пересечении нуля.
- Ключевой элемент (VS1, DA2, R6, R18) - ключ и драйвер к нему для управления мощностью нагрузки
- Датчик напряжения (R7=10КОм, R9=1360КОм, R10=10КОм). При 0В на входе - 1,28В на выходе датчика. Таким образом возможно измерения напряжения как положительной так и отрицательной полуволны.
- Датчик тока (R11=40кОм, R12=40кОм, R13=10кОм, R14=0.1Ом, R16=10кОм, R17=20кОм, DA3 ) - происходит усиление сигнала с шунта R14 в 2 раза. При токе 0А - на выходе датчика 1,28В.
- Внутренний источник питания (DA1) - AC/DC конвертер на +5В.
- МК ATmega 16 (DD1) - для управления симистором и измерения потребляемой энергии

X2 - разъём для подключения нагрузки
Vref=2.56В

Результаты измерения такие:

0% 10 сек 5.8343192677057230e-7 кВт*ч
0% 20 сек 8.0240965871780650e-7 кВт*ч
0% 30 сек 1.1658407856884878e-6 кВт*ч

10% 10 сек 2.3212598989630350e-6 кВт*ч
10% 20 сек 4.5253750613483135e-6 кВт*ч
10% 30 сек 6.8126664700685070e-6 кВт*ч

30% 10 сек 5.3651533562515400e-6 кВт*ч
30% 20 сек 1.0688728252716828e-5 кВт*ч
30% 30 сек 1.5965944839990698e-5 кВт*ч

60% 10 сек 1.1322937098157126e-5 кВт*ч
60% 20 сек 2.3698581571807154e-5 кВт*ч
60% 30 сек 3.6179320886731150e-5 кВт*ч

90% 10 сек 8.4226830949774010e-6 кВт*ч
90% 20 сек 1.6873924323590472e-5 кВт*ч
90% 30 сек 2.5354749595862813e-5 кВт*ч



60% 60 сек 1.0975133045576513e-4 кВт*ч
60% 300 сек 5.5118359159678220e-4 кВт*ч
60% 600 сек 1.0919348569586873e-3 кВт*ч

90% 60 сек 1.1617362179094926e-4 кВт*ч
90% 300 сек 5.8644410455599430e-4 кВт*ч
90% 600 сек 1.1541526764631271e-3 кВт*ч

Результат может отличаться на порядок и даже больше от теоретически расчитаного. Например для 60% 10 сек теоретически результат должен получиться E=P*t= (0.150/100)*60 кВт * (10/3600)ч = 0.09 кВт * 0.0027 ч = 0.00025 кВт*ч = 2.5 * е-4 кВт*ч. А результат измерения получился - 1.1322937098157126e-5

А если к примеру сравнить результат измерения 60% 30 сек и 90% 30 сек. Теоретически во втором случае количество потреблимой энергии должно быть на 30% больше. Но согласно результату измерения - при 90% киловат-часов получилось меньше.

Не могу понять почему так получается.

Программа - Прикрепленный файл  _________.zip ( 3.74 килобайт ) Кол-во скачиваний: 165


В работе самого регулятора я уверен. Так как при изменении мощности можно визуально это отследить.
Есть пару осцилограмм. Смотрел работу устройства в реальном времени с помощью осцилографа. Всё чётко отрабатывается. Сначала плавный пуск - площадь синусоиды плавно растёт до номинального значения. Потом происходит само регулирование. Есть даже пару осцилограмм на нагрузке:

Прикрепленное изображение
для 90% мощности

Прикрепленное изображение
для 50% мощности

Когда всё смотрел с помощью осцилографа всё вроде бы чётко работает в плане регулирования мощности. Пробовал плавный пуск, регулирование при разных углах. Осцилограмы чётко такие, какие должны быть в теории.

В ближайшее время возможности посмотреть осцилограммы нет.

То есть проблем с железом вроде не должно быть. Значит скорее всего что-то с программой.

Это мой первый проэкт. Другого опыта не имею.

Прошу помощи у вас, участников форума. Так как сам уже несколько недель безрезультатно не могу ничего сделать.

В чём может быть ошибка/ошибки?
Go to the top of the page
 
+Quote Post
4 страниц V  < 1 2 3 4 >  
Start new topic
Ответов (15 - 29)
demaven
сообщение Apr 30 2008, 13:33
Сообщение #16


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



Уважаемые, из всего выше прочитанного я так и не понял, уловил ли автор топика разницу между МОЩНОСТЬЮ и ЭНЕРГИЕЙ, между показаниями "мощометра" и счетчика. Или я не прав?
Go to the top of the page
 
+Quote Post
Motion
сообщение Apr 30 2008, 13:46
Сообщение #17


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297



Цитата
Уважаемые, из всего выше прочитанного я так и не понял, уловил ли автор топика разницу между МОЩНОСТЬЮ и ЭНЕРГИЕЙ, между показаниями "мощометра" и счетчика. Или я не прав?


P=A/t (количество работы за единицу времени)

E=P*t=A/t*t=A (работа)
Go to the top of the page
 
+Quote Post
galjoen
сообщение Apr 30 2008, 14:34
Сообщение #18


Знающий
****

Группа: Свой
Сообщений: 841
Регистрация: 10-05-07
Из: Чебоксары (Россия)
Пользователь №: 27 640



'Владимир_КПИ', а если ток =0, а напряжение имеется, или наоборот - ваш счётчик ничего не считает? Это я к тому, что нули-то верно выставлены? И как вы нули тока и напряжения настраивали?
Go to the top of the page
 
+Quote Post
bzx
сообщение Apr 30 2008, 14:43
Сообщение #19


Местный
***

Группа: Свой
Сообщений: 482
Регистрация: 5-07-05
Из: Санкт-Петербург
Пользователь №: 6 528



Бардак в голове у Вас Владимир, Вы не понимаете что делаете, а отсюда и не срастается Ваша ”теория” c практикой. Вы пишите
Цитата(Владимир_КПИ @ Apr 30 2008, 12:55) *
Я считаю среднеквадратические значения тока и напряжения. А зачем их считать?

В ступор такие вопросы ставят после утверждения, что считается rms. Ради интереса посмотрел исходник. Да, действительно берётся выборка мгновенных токов и напряжений и далее делается совсем непонятная манипуляция
Код
per=(((current*voltage)/1000)*(t/3600));

это не мощьность.

По поводу калибровки.
Цитата(Владимир_КПИ @ Apr 30 2008, 15:02) *
Нет, а что это значит?

А с чего Вы взяли, что измеренным токам и напряжениям можно верить? В коде у Вас есть место
Код
voltage=(u-1.28)*136;

если кратно, то 1,28 - смешение 0, а 136 масштабный коэффициент, то бишь, калибровочный коэффициент, и естественно, он будет свой для каждой вашей железки. Как калибровать - подать эталон, для тока - эталон тока, для напряжения - эталон напряжения, для мощности - эталон мощности, для энергии - эталон энергии.
В общем, почитайте что-нибудь по метрологии, хотя бы парочку статей.


--------------------
Для связи email: info собака qbit.su
Go to the top of the page
 
+Quote Post
Motion
сообщение Apr 30 2008, 16:21
Сообщение #20


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297



Цитата
'Владимир_КПИ', а если ток =0, а напряжение имеется, или наоборот - ваш счётчик ничего не считает? Это я к тому, что нули-то верно выставлены? И как вы нули тока и напряжения настраивали?


Решил проверить с помощью тестера что же у меня на ножках МК, отвечающих за измерения тока и напряжения. Удивился результату. Во первых при касании к земляному выводу (земля АЦП, вывод 31 для ATmega 16) щупом тестера у меня как бы произошла перезагрузка МК. На мгновение свет погас, произошёл плавный пуск и установился заданый угол регулирования. Но не при каждом касании такое происходит.

Потом проверил всё же напряжение - показывает по 2В на каждой из ножек в не зависимости от % мощности. Странно... Тестером мерял в режиме "переменка".
Если мерять в режиме "постоянка" - меряет 1,23 для тока и 1,28В для напряжения.

Следавательно, "виртуальный ноль" выставлен правильно. А вот почему при разных значениях мощности сигнал на датчиках не меняется, пока не понял. Тот же датчик напряжения (обычный делитель) просто обязан менять выходное значение в зависимости от входного напряжения.

Буду проверять электрические связи и само "железо".

Цитата
Бардак в голове у Вас Владимир, Вы не понимаете что делаете, а отсюда и не срастается Ваша ”теория” c практикой. Вы пишите


Я уже писал выше, что я не считаю rms. Я пропустил "не" перед словом считаю. Да и можно было догадаться по смыслу следующего предложения, что я не измеряю rms.

Цитата
per=(((current*voltage)/1000)*(t/3600));

Это не мощность, а энергия в киловатт-часах.

Цитата
Как калибровать - подать эталон, для тока - эталон тока, для напряжения - эталон напряжения, для мощности - эталон мощности, для энергии - эталон энергии.
В общем, почитайте что-нибудь по метрологии, хотя бы парочку статей.


Я когда-то ещё не подключая устройство к сети запитывал МК и ОУ напряжением +5В от батареек. В итоге запустился МК, на ножке Vref получилось 2,56В, которые появились в нужных местах на датчике тока и напряжения. В итоге на ножках МК измерения тока и напряжения с датчиков у меня получилось по 1,28В. Я и решил, что так как входное напряжение отсутствует, что эквивалентно 0% мощности значит "виртуальный ноль" выставлен у меня верно и точно.


Вообщем нужно мне тщательно проверить "железо", отвечающее за измерение. Что-то там не так.
Go to the top of the page
 
+Quote Post
tyro
сообщение Apr 30 2008, 16:28
Сообщение #21


Любитель Кошек
*****

Группа: Свой
Сообщений: 1 593
Регистрация: 8-06-06
Пользователь №: 17 873



Цитата(Владимир_КПИ @ Apr 30 2008, 13:20) *
Что вы хотите этим сказать? Что диплом писали вы?

Мне почему-то все время кажется, что диплом Вы писали не для себя, а например для своей подруги. smile.gif


--------------------
По современному этикету, в левой руке держат вилку, в правой - мышку.
Go to the top of the page
 
+Quote Post
Motion
сообщение Apr 30 2008, 16:33
Сообщение #22


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297



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


smile.gif

На самом деле диплом писался для себя, а устройство разрабатывалось для кафедры.
Go to the top of the page
 
+Quote Post
demaven
сообщение May 1 2008, 03:55
Сообщение #23


Частый гость
**

Группа: Свой
Сообщений: 108
Регистрация: 10-05-05
Из: Киргизия Бишкек
Пользователь №: 4 886



на токе-напряжении сложной формы, имеющем место быть в Вашей схеме, делать выводы по ОДНОМУ замеру тока и напряжения нельзя, необходимо, по крайней мере за один период замерить достаточно много раз ток и напряжение с помощью АЦП, а затем призвать на помощь математику и обсчитать полученные результаты. Делать измерения с помощью тестера не есть правильно
Go to the top of the page
 
+Quote Post
Motion
сообщение May 1 2008, 07:02
Сообщение #24


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297



Цитата
на токе-напряжении сложной формы, имеющем место быть в Вашей схеме, делать выводы по ОДНОМУ замеру тока и напряжения нельзя, необходимо, по крайней мере за один период замерить достаточно много раз ток и напряжение с помощью АЦП, а затем призвать на помощь математику и обсчитать полученные результаты. Делать измерения с помощью тестера не есть правильно


1. Я вспомнил - я точно смотрел осцилограмы на измерительных выводах МК и они были правильны - при изменении мощности нагрузки, сигналы на них пропорционально менялись. Значит что-то я не то тестером меряю.

2. Я не знаю как меряет тестер. По-идее у него внутри есть АЦП. Он ведь показывает действующее значение. А оно должно меняться при изменении формы сигнала(мощности нагрузки).
Go to the top of the page
 
+Quote Post
Alex11
сообщение May 1 2008, 07:18
Сообщение #25


Гуру
******

Группа: Свой
Сообщений: 2 106
Регистрация: 23-10-04
Из: С-Петербург
Пользователь №: 965



Тестер, если на нем не написано TrueRMS, при не синусоидальной форме сигнала измеряет температуру воздуха в Лондоне. А если написано, то как повезет, в зависимости от производителя. То, что у Вас при отсутствии тока в нагрузке растет показание с увеличением времени, означает, что нули выставлены не совсем верно. Далее, как Вам уже писали, откалибруйте каналы измерения. Отключите симистор, подайте регулируемое постоянное напряжение от внешнего источника (его можно измерить приличным вольтметром с хорошей точностью), установите несколько значений и сравните показания своего АЦП и действительные значения тока и напряжения.
И еще. Я не смотрел Вашу схему - замечание для профилактики - есть ли у Вас на входе АЦП RC-цепочка? Дело в том, что там могут быть довольно большие помехи на фронтах включения симистора, АЦП будет показывать все что угодно, потом это сильно скажется на результате.
Go to the top of the page
 
+Quote Post
Motion
сообщение May 1 2008, 07:38
Сообщение #26


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297



Цитата
Тестер, если на нем не написано TrueRMS, при не синусоидальной форме сигнала измеряет температуру воздуха в Лондоне.



На нём такой записи не нашёл. Тестер Goldtool GSM-880.

Цитата
есть ли у Вас на входе АЦП RC-цепочка?

Да, на выходе каждого датчика стоит RC-фильтр(1 кОм, 1 нФ). Когда смотрел осцилограмы, обращал внимание на помехи. Есть небольшие, но явных выбросов нет.


Цитата
Далее, как Вам уже писали, откалибруйте каналы измерения. Отключите симистор, подайте регулируемое постоянное напряжение от внешнего источника (его можно измерить приличным вольтметром с хорошей точностью), установите несколько значений и сравните показания своего АЦП и действительные значения тока и напряжения.


Так и поступлю. О результатах отпишусь.
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 1 2008, 11:02
Сообщение #27


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Прежде чем что то мерять и вычислять, неплохо бы что -нибудь почитать из теории. Вот например для начала вот это http://www.analog.com/UploadedFiles/Data_Sheets/ADE7753.pdf, там с картинками и с теорией довольно все понятно разжевано, как мерять и чего вычислять smile.gif


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
Motion
сообщение May 1 2008, 14:06
Сообщение #28


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 23-07-07
Из: Киев
Пользователь №: 29 297



А можно подать постоянное напряжение 9В с батареек?

Дело в том, что это напряжение пойдёт на нагрузку. Сопротивление лампочки в холодном состоянии 26Ом. Почти к.з. Не взорвутся ли у меня, например, батарейки при включении?
Go to the top of the page
 
+Quote Post
Stanislav_S
сообщение May 1 2008, 19:11
Сообщение #29


извечный пессимист
*****

Группа: Свой
Сообщений: 1 113
Регистрация: 9-10-06
Из: Днепропетровск
Пользователь №: 21 125



Цитата(Владимир_КПИ @ May 1 2008, 19:06) *
А можно подать постоянное напряжение 9В с батареек?

Дело в том, что это напряжение пойдёт на нагрузку. Сопротивление лампочки в холодном состоянии 26Ом. Почти к.з. Не взорвутся ли у меня, например, батарейки при включении?

нет не взорвутся smile.gif


--------------------
Slaves are those of this world
Given freedom to lay chains upon The Master
The wolf is no longer free
Release the chains and come for me
Go to the top of the page
 
+Quote Post
singlskv
сообщение May 1 2008, 19:58
Сообщение #30


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Владимир_КПИ @ May 1 2008, 18:06) *
А можно подать постоянное напряжение 9В с батареек?

Дело в том, что это напряжение пойдёт на нагрузку. Сопротивление лампочки в холодном состоянии 26Ом. Почти к.з. Не взорвутся ли у меня, например, батарейки при включении?
Обычно, когда Вы например включаете фонарик, никто не взрывается smile.gif
Хотя наверное фонарики разные бывают... smile.gif


Ну а для затравки глянул ваш код:
Цитата
unsigned char EEPROM_read(unsigned int uiAddress) //описание функции чтения из EEPROM
{
#asm("cli");
/* Wait for completion of previous write */
while(EECR & (1<<EEWE))
;
/* Set up address register */
EEAR = uiAddress;
/* Start eeprom read by writing EERE */
EECR |= (1<<EERE);
/* Return data from data register */
return EEDR;
#asm("sei");
}

очень порадовался вот этому:
#asm("cli");
.........
return EEDR;
#asm("sei");

Угадайте что будет после возврата из этой функции...
прерывания будут разрешены ?
Go to the top of the page
 
+Quote Post

4 страниц V  < 1 2 3 4 >
Reply to this topicStart new topic
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th July 2025 - 17:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.10288 секунд с 7
ELECTRONIX ©2004-2016