Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: помогите алгоритмом
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
atas
Здравствуйте уважаемые
Никак не могу придумать алгоритм
необходимо ограничить потребляемую в доме мощность 5ю киловатами

Есть управляемые контроллером потребители
обогреватели
1. 1 квт
2. 2 квт
3. 2 квт
бойлер 2 квт
и неуправляемые потребители
чайник 2 квт
духовка 2 квт

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

бойлер включается только 23:00-6:00
чайник имеет максимальный приоритет
духовка чуть меньше
обогреватели - самый низкий
соответственно при включении чайника или духовки
должен отключится один (или 2) из обогревателей

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

algidim
Оригинально, я такого нигде не видел ! А вы уже придумали как будите коммутировать нагрузку и мереть мощность, по моему это самое главное ! А как это сделаете, подключите к мк разберетесь с алгоритмом по ходу оперетты )))
Палыч
Цитата(atas @ Sep 1 2011, 11:25) *
соответственно при включении чайника или духовки
должен отключится один (или 2) из обогревателей

Наверное, это и есть алгоритм управления:
1. Контролтруется мощность потребления, при превышении нагрузки отключаете один из обогревателей.
2. Если после выключения одного обогревателя лимит мощности всё равно превышен - на п 3., иначе - циклически через определённое время Т с целью выравнивания потреблённой энергии: включенный обогреватель отключается, выключенный - включается. Так до тех пор, пока потребляемая мощность не упадёт ниже некоего порога - тогда снова включаются оба обогревателя и на п.1.
3. Если после превышения мощности и выключения одного обогревателя лимит мощности всё равно оказался превышенным, то отключаются оба обогревателя. Так до тех пор, пока потребляемая мощность не упадёт ниже некоторого порога, тогда включаете один обогреватель и действуете по п.2
kovigor
Цитата(atas @ Sep 1 2011, 10:25) *
Здравствуйте уважаемые
Никак не могу придумать алгоритм
необходимо ограничить потребляемую в доме мощность 5ю киловатами


А зачем ? Купите лучше хороший автомат. Он и отключит квартиру, если потребляемая мощность выйдет за допустимый предел. а вся эта автоматика - явное излишество. Защита должна быть предельно простой и предельно же надежной ...
atas
Цитата(algidim @ Sep 1 2011, 09:39) *
Оригинально, я такого нигде не видел ! А вы уже придумали как будите коммутировать нагрузку и мереть мощность, по моему это самое главное ! А как это сделаете, подключите к мк разберетесь с алгоритмом по ходу оперетты )))

ну комутировать симисторами
а мощность мерять датчиком Холла


Цитата(Палыч @ Sep 1 2011, 09:52) *
Наверное, это и есть алгоритм управления:
1. Контролтруется мощность потребления, при превышении нагрузки отключаете один из обогревателей.
2. Если после выключения одного обогревателя лимит мощности всё равно превышен - на п 3., иначе - циклически через определённое время Т с целью выравнивания потреблённой энергии: включенный обогреватель отключается, выключенный - включается. Так до тех пор, пока потребляемая мощность не упадёт ниже некоего порога - тогда снова включаются оба обогревателя и на п.1.
3. Если после превышения мощности и выключения одного обогревателя лимит мощности всё равно оказался превышенным, то отключаются оба обогревателя. Так до тех пор, пока потребляемая мощность не упадёт ниже некоторого порога, тогда включаете один обогреватель и действуете по п.2


п1. понятно
п2. вся проблема как обеспечить получение равного количества энергии всеми обогревателями

Цитата(kovigor @ Sep 1 2011, 10:20) *
А зачем ? Купите лучше хороший автомат. Он и отключит квартиру, если потребляемая мощность выйдет за допустимый предел. а вся эта автоматика - явное излишество. Защита должна быть предельно простой и предельно же надежной ...


Не стоит задача защиты
стоит задача автоматизации
Палыч
Цитата(atas @ Sep 1 2011, 12:38) *
вся проблема как обеспечить получение равного количества энергии всеми обогревателями
М-да... Не заметил, что у Вас не 2, а 3 нагревателя и они разной мощности... И Вам нужно, чтобы нагреватели работали не примерно равное время, а получали примерно равную энергию за длительный интервал времени? Странно: ведь если, ограничивать потребляемую мощность не требуется и включены все три нагревателя, то энергия будет потреблятся пропорционально мощности нагревателей. Или и в этом случае нужно регулировать их включение таким образом, чтобы потреблённая им энергия была примерно равна?

Если уравнивать энергию нагревателей нужно только в режиме ограничения потребления мощности, тогда алгоритм такой:
1. Система работает в трёх режимах:
А - без ограничения потребляемой мощности, когда лимит мощности не превышен;
Б - ограничение мощности выключением одного нагревателя;
В - ограничение мощности выключением двух нагревателей;
2. Начальный режим - режим А
3. При обнаружении превышения мощности переходит в режим Б, если и в режиме Б превышена мощность - переход в режим В
4. Обратные переходы В -> Б -> А, каждый на одну ступень, осуществяются при снижении потребляемой мощности ниже некоего порога.

Алгоритм уравнивания энегрии нагревателей в режиме ограничения мощности:
1. При переходе из режима А в режим Б - обнуляются три счетчика энергии нагревателей
2. Циклически, через интервал времени Т выбираются для включения два (режим Б) или один (режим В) нагревателя, которые имеют минимальные значения счетчиков.
3. Выбранные нагреватели включаются (остальные, естественно, отключаются). Для включенных нагревателей увеличиваются счетчики энергии на величину их мощности. Для исключения переполнения счетчиков можно периодически вычитать из всех трёх минимальное значение. На п.2.
e-serg
Цитата(atas @ Sep 1 2011, 16:25) *
Здравствуйте уважаемые
Никак не могу придумать алгоритм
необходимо ограничить потребляемую в доме мощность 5ю киловатами

Есть управляемые контроллером потребители
обогреватели
=============================
5 квт будут контролироватся датчиком тока
и при превышении нужно решить что выключить а что включить
обогреватели должны получить одинакововое количество энергии за тот
промежуток времени что отведен обогревателям и бойлеру

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

при перегрузке 2 квт один из счетчиков останавливается, нагрузкой не управляет.
при следующей перегрузке остановим второй счетчик. ждем пока чайник не вскипит или духовка не отключится.



Прохожий
Цитата(atas @ Sep 1 2011, 12:38) *
а мощность мерять датчиком Холла

Это как?
DmitryM
Цитата(Прохожий @ Sep 1 2011, 20:06) *
а мощность мерять датчиком Холла

Это как?

Имеется в виду измеритель тока на эффекте Холла
Warlockwolf
а может диммер поставить. тогда можно плавно снижать потребление на обогревателях. как только ток растет, сразу команду диммерам на снижение.

ой не заметил "каждый потребитель имеет терморегулятор.....". наверно с димеррами не получится.
Прохожий
Цитата(DmitryM @ Sep 1 2011, 22:00) *
Имеется в виду измеритель тока на эффекте Холла

Эффект Холла позволяет измерить лишь магнитный поток.
Для измерения тока необходимо туда добавить еще кое-что...
А для измерения мощности неплохо было бы измерить еще и напряжение.
А для переменного тока вполне достаточно ТТ и ТИ.
Эффект Холла здесь притянут за уши.
@Ark
Цитата
Никак не могу придумать алгоритм...


Это типовая задачка из области распределения и управления ресурсами. Решается, в общем виде, примерно так:

1) Устройства (потребители энергии) могут получать доступ к ресурсу (в данном случае питание от сети) только после запроса к некоему к супервизору (ваша программа на МК). Устройствам достаточно использовать два вида запросов - выделить ресурс (включить питание) и освободить ресурс (выключить питание). Супервизор, после запроса устройства, может выделить ресурс или отказать в выделении. В процессе работы, он также может самостоятельно отобрать ресурс (выключить питание) или предоставить ресурс ожидающим устройствам (включить питание).

2) Устройства, в процессе работы, имеют три состояния:

- ожидание (отправлен запрос к супервизору на получение ресурса, но питание еще не подано)

- активно (ресурс предоставлен и используется, питание устройства включено)

- выключено (ресурс освобожден, питание не требуется, отправлено уведомление супервизору об освобождении ресурса)

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

Теперь собственно сам алгоритм:

1) Определяете имеющийся в вашем распоряжении текущий лимит ресурса - мощности (в данном случае - постоянно 5кВт).

2) Определяете текущее состояние каждого устройства. Составляете список активных устройств - те, что уже подключены или требуют подключения (отправили запрос и ожидают).

3) Выстраиваете активные устройства согласно их приоритетам. Распределяете (пока виртуально) имеющийся в данный момент лимит полной мощности, последовательно выделяя ресурс до исчерпания согласно списку активных устройств по приоритету.

4) Проверяете для каждого устройства его текущее состояние и полученное вами в пункте 3. В процессе проверки, устраняете несоответствия - какие-то устройства подключаете, какие-то отключаете (переводите в режим ожидания).

5) Повторяете пункты 1 -4 с заданной периодичностью, или работаете по событиям - изменению состояния устройств.

6) В более сложном случае, можно ввести в алгоритм дополнительные события - изменение текущих приоритетов, изменение текущего лимита ресурса (имеющейся в данный момент мощности) и другие.

P.S. Примерно так, в первом приближении...
Забыл еще указать, что запросы должны содержать требуемую величину ресурса - подключаемую/отключаемую мощность. Текущие приоритеты устройствам устанавливаете исходя из своих задач - что, собственно, хотите в первую очередь - обед приготовить или помещение нагреть. Это и будет управлением ресурсами электропитания, остальное - автоматика.
DmitryM
Цитата(Прохожий @ Sep 2 2011, 00:40) *
Эффект Холла позволяет измерить лишь магнитный поток.
Для измерения тока необходимо туда добавить еще кое-что...
А для измерения мощности неплохо было бы измерить еще и напряжение.
А для переменного тока вполне достаточно ТТ и ТИ.
Эффект Холла здесь притянут за уши.


Например,
http://www.allegromicro.com/en/Products/Pa.../0714/index.asp

З.Ы. ушли в оффтоп.
Tanya
Цитата(Прохожий @ Sep 1 2011, 20:06) *
Это как?

Непосредственно. Для тех, кто не знает. Напряжение, обусловленное эффектом Холла, пропорционально произведению напряженности (хотите - индукции) магнитного поля, которая пропорциональна току, и току через датчик. Таким образом можно получить произведение тока на напряжение, которое (произведение) пропорционально мощности. Это если запитать датчик током пропорциональным напряжению, а магнитное поле сделать пропорциональным нужному току.

Цитата(Прохожий @ Sep 2 2011, 00:40) *
Эффект Холла позволяет измерить лишь магнитный поток.

Эффект Холла здесь притянут за уши.

Вот. Вы все путаете. Эффект Холла позволяет много разного измерить. А не лишь... магнитный поток..
И не магнитный поток непосредственно, а напряженность. Это разные вещи.
И не нужно лапшу на уши притягивать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.