Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR...

 
Опции темы

Алгоритм расчета потребляемой мощности

Непрочитано 04.04.2014, 20:01  
wlad773
Прописка
 
Аватар для wlad773
 
Регистрация: 06.05.2008
Адрес: Пятигорск
Сообщений: 222
Сказал спасибо: 11
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
wlad773 на пути к лучшему
По умолчанию Re: Алгоритм расчета потребляемой мощности

Не стандартный подход, долго соображал, но все же дошло. Но в этом случае я не смогу узнать среднюю мощность за последний час если израсходовалось менее 100Вт. Поясню что это устройство будет установлено между солнечной панелью и аккумулятором, пожалуй на наго сразу нагружу и контроль заряда. Поэтому энергия не расходуется , а приходуется, но не суть важно. Еще понял что для создания посуточного журнала потребуется таймер реального времени. Но по моему его можно организовать аппаратными средствами атмега8? Отсюда вытекает следующая проблема. как мне привязать дату к ячейке с мощностью? Ведь есть только 512 байт.
Реклама:
wlad773 вне форума  
Непрочитано 04.04.2014, 20:30  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Алгоритм расчета потребляемой мощности

Сообщение от wlad773 Посмотреть сообщение
я не смогу узнать среднюю мощность за последний час если израсходовалось менее 100Вт
Та ни боже ж мой ! Об чём разговор ! Нужна точность 1Вт-час - нет проблем !

Делаете ещё одну переменную в ОЗУ, назовём Т1, для сотых и тысячных долей кВт-час. Применяем алгоритм:
PHP код:
раз в секунду
{
измеряем мощность М
кладём в Т = Т + М
если Т›= 3600, то Т = Т-3600 и Т1= Т1+1
если Т1 ›= 100, то Т1=0 и Р=Р+1
} 
Вот и всё. Раз в час сохраняете показания Р и Т1 в переменные Рs и Т1s для последуюшего сравнения.
Допустим, в 10:00 было Р=24, Т1=85. Это означает текущая энергии = 2.485кВт-час. Кладём Рs=24 и Т1s=85.
В 11:00 стало Р=25, Т1=37. Это означает значение = 2.537кВт-час.
Берём разницу (Р,Т1)-(Рs,Т1s), то есть 2.537 - 2.485 = 0.052 кВт-час энергия за час с точностью 0.001кВт-час.

Последний раз редактировалось Yurkin2014; 04.04.2014 в 20:35.
Yurkin2014 вне форума  
Сказали "Спасибо" Yurkin2014
wlad773 (04.04.2014)
Непрочитано 04.04.2014, 21:25  
wlad773
Прописка
 
Аватар для wlad773
 
Регистрация: 06.05.2008
Адрес: Пятигорск
Сообщений: 222
Сказал спасибо: 11
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
wlad773 на пути к лучшему
По умолчанию Re: Алгоритм расчета потребляемой мощности

Как все просто когда кто-то разжевал. Всегда думаешь, как это я сам не догадался? Остается еще один вопрос- Как мне привязать дату к ячейке с мощностью? Ведь есть только 512 байт.
wlad773 вне форума  
Непрочитано 04.04.2014, 21:40  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Алгоритм расчета потребляемой мощности

Сообщение от wlad773 Посмотреть сообщение
Как мне привязать дату к ячейке с мощностью?
Ну, самое простое: в первые два байта писать дату начала, типа номер дня с момента 01.04.2014. Для сегодня это будет 3. Далее пишем байты с энергией. Если писать раз в день, значит номер ячейки - 2 плюс первые два байта будет количество дней, прошедших с 01.04.2014. Можно легко вычислить дату.
Если хотите писать сериями по нескольку дней, потом пауза пару недель, потом снова запись - тут немного сложнее. Придумайте индентификатор начала серии, например 255. Тогда при чтении бежим по памяти, пока не встретим 255 - это начало серии. За идентификатором - дата старта, два байта, как описано выше. Потом идёт сама серия. Встретили 255 - конец/начало следующей серии. То есть на каждую серию будет лишний расход по 3 байта.

Последний раз редактировалось Yurkin2014; 04.04.2014 в 21:42.
Yurkin2014 вне форума  
Непрочитано 05.04.2014, 09:23  
wlad773
Прописка
 
Аватар для wlad773
 
Регистрация: 06.05.2008
Адрес: Пятигорск
Сообщений: 222
Сказал спасибо: 11
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
wlad773 на пути к лучшему
По умолчанию Re: Алгоритм расчета потребляемой мощности

Почти такое решение и пришло в голову. Память разбить на месяцы. Каждый месяц будет начинаться с FFh, далее № месяца от 1 до 12 и год от 00 до 254(2000-2254). (Придется исключить значение FFh из мощности.) Дойдя до FFh программа понимает, что месяц кончился не зависимо от кол-ва дней. И не придется писать сложный календарь. Останется указать високосные года и февраль каждый раз проверять - делать 28 или 29 записей.

Yurkin2014, Ваш алгоритм почти хорош, но он мне не совсем подходит. Во-первых он не решает проблемы первого часа, и во-вторых он покажет значения за предыдущий реальный час, а не за последний текущий. Т.е. если я смотрю в 11-50, то вижу показания с 10-00 до 11-00, что будет вводить в заблуждение. Думаю в этом случае применить такой- (Х0+Х1+Х2...+Х58+Х59)/60. А Ваш алгоритм будет удобен при подсчете энергии за 1 мин., сутки, месяц.
wlad773 вне форума  
Непрочитано 05.04.2014, 14:03  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Алгоритм расчета потребляемой мощности

Ваше разбиение на месяцы мне не нравится. Как это будет выглядеть, если я начну регистрацию энергии 5 апреля, потом с 10 по16 апреля будет прибор выключен, затем снова включу запись? Придется, помимо месяца и года, где-то еще и день писать. Получается большой расход памяти.

Далее. Зачем Вы все время хотите что-то делить на 60? Типа, средняя мощность за текущий час? А Х0 это средняя мощность за минуту? Чтобы ее получить, надо сложить 60 значений мощности за каждую секунду, а потом поделить снова на 60? А чтобы получить энергию не забыть среднее за час умножить на 3600? Сложный и запутанный метод, требующий использовать операцию умножения и деления, для 8-битных процессоров тяжело будет.

И заметьте, кстати, что если измеренные значения складывать 60 раз за минуту, потом делить на 60 для усреднения за минуту, полученное среднее складывать 60 раз за час, потом делить на 60 для среднего за час, и, наконец, среднее за час умножить на 3600, то получится просто СУММА 3600 последних значений за каждую секунду. Получается, что все эти деления-умножения вовсе не нужны!

Что я и предлагаю: алгоритм без умножений и делений. В байтах Р и Т1 находится текущая энергия. С этими значениями делайте все что хотите. Это уже готовый, посчитанный результат. Хотите за последний час? Складывайте каждую минуту байты Р и Т1 в кольцевой буфер 60 ячеек. Пишите по кругу, то есть достигли конца буфера - начинайте с начала буфера. Но перед тем, как затереть старые данные новыми значениями, возьмите разницу. Это и будет энергия за послений час, так как пишете по кругу и данные в текущей ячейке уже на час устарели.

Последний раз редактировалось Yurkin2014; 05.04.2014 в 14:22.
Yurkin2014 вне форума  
Непрочитано 06.04.2014, 12:15  
wlad773
Прописка
 
Аватар для wlad773
 
Регистрация: 06.05.2008
Адрес: Пятигорск
Сообщений: 222
Сказал спасибо: 11
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
wlad773 на пути к лучшему
По умолчанию Re: Алгоритм расчета потребляемой мощности

Сообщение от Yurkin2014 Посмотреть сообщение
Ваше разбиение на месяцы мне не нравится. Как это будет выглядеть, если я начну регистрацию энергии 5 апреля, потом с 10 по16 апреля будет прибор выключен, затем снова включу запись? Придется, помимо месяца и года, где-то еще и день писать. Получается большой расход памяти.
Тут проблем не вижу. Все равно делать часы и датор добавить не сложно. По FFh находится месяц к адресу +2 байта +день, если байт =FFh, то дата =1, перейти на следующий месяц, иначе записать мощность. С февралем сложнее.

Сообщение от Yurkin2014 Посмотреть сообщение
Далее. Зачем Вы все время хотите что-то делить на 60? Типа, средняя мощность за текущий час? А Х0 это средняя мощность за минуту? Чтобы ее получить, надо сложить 60 значений мощности за каждую секунду, а потом поделить снова на 60? А чтобы получить энергию не забыть среднее за час умножить на 3600? Сложный и запутанный метод, требующий использовать операцию умножения и деления, для 8-битных процессоров тяжело будет.
Хочешь сказать, что если складывать 60 минутных значений мощности, а потом разделить на 60 я не получу Вт*ч, а получу среднее Вт*мин?
wlad773 вне форума  
Непрочитано 06.04.2014, 12:39  
wlad773
Прописка
 
Аватар для wlad773
 
Регистрация: 06.05.2008
Адрес: Пятигорск
Сообщений: 222
Сказал спасибо: 11
Сказали Спасибо 17 раз(а) в 13 сообщении(ях)
wlad773 на пути к лучшему
По умолчанию Re: Алгоритм расчета потребляемой мощности

Сообщение от Yurkin2014 Посмотреть сообщение
Хотите за последний час?
А вот дальше нифига не понял. Распиши подробно, как это умеешь на сером фоне.
wlad773 вне форума  
Непрочитано 06.04.2014, 12:45  
akegor
Гуру портала
 
Аватар для akegor
 
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
akegor на пути к лучшему
По умолчанию Re: Алгоритм расчета потребляемой мощности

Сообщение от wlad773 Посмотреть сообщение
Хочешь сказать, что если складывать 60 минутных значений мощности, а потом разделить на 60 я не получу Вт*ч, а получу среднее Вт*мин?
Разберитесь в понятиях и единицах мощности и энергии, а потом в хотелках.
Для записи и считывания удобней всего флэш-карта. Да и анализировать при желании можно много чего - писать-то можно не стесняться, хоть посекундно.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
akegor вне форума  
Непрочитано 07.04.2014, 00:14  
Yurkin2014
Заблокирован
 
Регистрация: 21.01.2014
Сообщений: 589
Сказал спасибо: 7
Сказали Спасибо 267 раз(а) в 206 сообщении(ях)
Yurkin2014 на пути к лучшему
По умолчанию Re: Алгоритм расчета потребляемой мощности

Сообщение от wlad773 Посмотреть сообщение
складывать 60 минутных значений мощности, а потом разделить на 60
Я понял наконец Вашу идею. Да, всё правильно делаете. Если сложить 60 значений мощности, а потом разделить на 60, то получится средняя мощность за час. Что есть энергия, полученная за час в Вт-часах.
То же самое, если складывать каждую секунду, а потом разделить на 3600.
Так и делайте. Сначала занулите все переменные Х0 .. Х59. Потом каждую минуту можно обновлять соответствующий Х измеренным значением, складывать все элементы и делить на 60. И пусть Вас не смущает, что сначала все элементы равны 0. После первой минуты получится небольшая величина Х0/60, все остальные ведь нули. При постоянной мощности, постепенно эти действия будут давать всё большее значение, пока не устаканятся на какой-то величине.
Это всё равно, как ехать на автомобиле и измерять пройденный путь за последний час. Типа, начали двигаться и едем со скоростью 60 км/час, и через минуту удивляться, чтой-то так мало проехали на последний час, всего-то километр ...

Последний раз редактировалось Yurkin2014; 07.04.2014 в 00:34.
Yurkin2014 вне форума  
 
Опции темы

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программы расчета трансформаторов и дросселей Starichok51 Источники питания и свет 943 30.09.2022 18:23
Как влияет мощность УМЗЧ на SPL (звуковое давление) tauP10 Аудиотехника 49 23.11.2010 14:05
Подскажите алгоритм фазового регулятора мощности. dimka11 Микроконтроллеры, АЦП, память и т.д 2 22.11.2009 23:04
Методики расчета Reboot_s Источники питания и свет 2 28.04.2007 02:19
Помехи в сети CERGEI1982 Источники питания и свет 31 14.04.2007 01:08


Часовой пояс GMT +4, время: 20:29.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.