Страница 1 из 2

Как Atmega16-й можно мерять последовательность фаз ?

Добавлено: Пн янв 12, 2009 16:08:42
kybertech
Всем доброго времени суток !
Скажите плз. может кто-то сталкивался - как можно МК Atmega16 мерять последовательность фаз ?
Если это можно выполнить программным путём, то подскажите плз как!
или есть у кого-то примерчик . . .
Заранее благодарин всем !

Добавлено: Пн янв 12, 2009 18:14:55
ARV
последовательность каких фаз, точнее фаз чего вы собрались мерить?! растолкуйте...

Добавлено: Пн янв 12, 2009 18:24:28
kybertech
ARV писал(а):последовательность каких фаз, точнее фаз чего вы собрались мерить?! растолкуйте...
Ага ! Ща соберусь с мыслями и попробую растолковать !

Подходит питание 380 вольт, т.е. три фазы (А,В,С) по 220 вольт.

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

сначала А перешла через ноль
потом В перешла через ноль
потом С перешла через ноль и по кругу.
и если происходит сбой в чередовании фаз мне это нужно отловить !

Если не очень объяснил то постараюсь нарисовать )

Если это возможно выполнить программно, то я просто не пойму как.
Я меряю напряжение на этих трёх фазах этим же МК Atmega16
а вот как переход через ноль отловить не пойму.

Добавлено: Пн янв 12, 2009 20:15:04
Илья79
Вот вы уважаемый kybertech сами почти ответили на свой вопрос:
1)Берем за опорную фазу А (ждем пока фаза А не перейдет через ноль)
2) За фазой А переходит через ноль фаза В, то это прямая последовательность чередования фаз
3) за фазой А переходит следом фаза С то обратная последовательность
П.С. как фазу назовешь так она и поплывет :))

Добавлено: Пн янв 12, 2009 20:18:20
kybertech
Илья79 писал(а):Вот вы уважаемый kybertech сами почти ответили на свой вопрос:
1)Берем за опорную фазу А (ждем пока фаза А не перейдет через ноль)
2) За фазой А переходит через ноль фаза В, то это прямая последовательность чередования фаз
3) за фазой А переходит следом фаза С то обратная последовательность
П.С. как фазу назовешь так она и поплывет :))
А как же программно реализовать это ?
В какой переменной мне смотреть что фаза а к примеру перешла через 0 ?

Добавлено: Пн янв 12, 2009 21:15:15
Илья79
Для этого надо знать, на каком языке ты хотел бы писать программу, какую схему подключения используешь
И вообще кто я такой :)

Добавлено: Пн янв 12, 2009 21:19:26
kybertech
Илья79 писал(а):Для этого надо знать, на каком языке ты хотел бы писать программу, какую схему подключения используешь
И вообще кто я такой :)
МК : Atmega16
писать хочу на языке C, хотя пойму пример на любом.

Добавлено: Пн янв 12, 2009 21:46:38
Илья79
вот что получилось, код не очень, как получился :))


while (1) // Основной цикл
{
if (PINA.0==0) //переход фазы А через ноль
{while (1) //цикл опроса
{if (PINA.1==0) //Переход фазы В через ноль
{PORTB.3=1; //прямая последовательность зажигаем светодиод
break; //выпрыгиваем из цикла
}
{if (PINA.2==0) //переход фазы В через ноль
{PORTB.3=0; //обратная последовательность гасим светодиод
break; //выпрыгиваем из цикла
}
}
}


}

Добавлено: Пн янв 12, 2009 21:50:34
kybertech
Илья79 писал(а):вот что получилось, код не очень, как получился :))


while (1) // Основной цикл
{
if (PINA.0==0) //переход фазы А через ноль
{while (1) //цикл опроса
{if (PINA.1==0) //Переход фазы В через ноль
{PORTB.3=1; //прямая последовательность зажигаем светодиод
break; //выпрыгиваем из цикла
}
{if (PINA.2==0) //переход фазы В через ноль
{PORTB.3=0; //обратная последовательность гасим светодиод
break; //выпрыгиваем из цикла
}
}
}


}
C таким решением я согласен ! Но на тех лапах я ещё меряю напряжение ! разве можно одновременно и мерять напряжение и смотреть не ноль ли там ?

Вот мне только что посоветовали как - то мерять полуволну или как её там ...

Если с измерением полуволны не получится придётся ещё циплять делители на другие дапы контроллера и там смотреть !
Но вот хотелось бы всё сделать так как нада, что бы и мерять напрядение и смотреть переход через 0.

Добавлено: Пн янв 12, 2009 23:25:38
Aheir
Напряжение измеряется постоянно?
В конце концов, можно подать тот же сигнал еще и на другие ноги контроллера, на которых отлавливать только переход через 0.

Добавлено: Пн янв 12, 2009 23:30:58
kybertech
Aheir писал(а):Напряжение измеряется постоянно?
В конце концов, можно подать тот же сигнал еще и на другие ноги контроллера, на которых отлавливать только переход через 0.
в том то и дело, напряжение переменное но я ставлвлю после делителя конденсатор для сглаживания и напряжение меряется постоянно.

Если убрать этот конденсатор то значение начнёт прыгать но при этом можно измерять его каким-то другим способом - вернее как мне сказали мерять эту самую половолну потом что-то на что-то делить и в результате получиться нормальное значение напряжения и ко всему этому можно отлавливать одновременно переход через ноль.

Добавлено: Вт янв 13, 2009 00:31:16
NiTr0
Измерить пиковое напряжение, поделить на 1.4- получите грубо RMS.
Или суммировать все отсчеты за 1 (а лучше 2, 3, 4 или больше) периодов, умножить потом на 2 (т.к. половина периода выпадет) и поделить на кол-во отсчетов - получите настоящее RMS.
А еще можно подтягивать "ноль" делителей к половине опорного напряжения, выкинуть диоды и в итоге измерять настоящее RMS.
Определить переход через ноль - тоже не проблема будет по показаниям АЦП.

Добавлено: Вт янв 13, 2009 00:46:24
kybertech
NiTr0 писал(а):Измерить пиковое напряжение, поделить на 1.4- получите грубо RMS.
Или суммировать все отсчеты за 1 (а лучше 2, 3, 4 или больше) периодов, умножить потом на 2 (т.к. половина периода выпадет) и поделить на кол-во отсчетов - получите настоящее RMS.
А еще можно подтягивать "ноль" делителей к половине опорного напряжения, выкинуть диоды и в итоге измерять настоящее RMS.
Определить переход через ноль - тоже не проблема будет по показаниям АЦП.

Спасибо огромное вот бы ещё наглядно взглянуть на это всё что бы понять полностью !

А подскажите плз. сколько нужно измерять раз одну полуволну ? я так понимаю чем больше тем лутше или я не прав ? (для того что бы потом всё сложить и т.д.)

Сейчас нарисую эту синусоиду и буду думать дальше.
Прошу не теряйтесь я подумаю и выложу то что надумал в картинках ))).

Ещё раз огромное спасибо.

Добавлено: Вт янв 13, 2009 10:11:48
Сэр Мурр
Извините за вмешательство.
Никогда не слыхал, чтоб во время работы в трёхфазной цепи сменилось чередование фаз. Для этого нужно менять местами провода в сети, или же- это аварийная ситуация на подающей линии, вроде перехлёста проводов и срабатывания защиты.
Короче, первый раз слышу о такой проблеме.

Добавлено: Вт янв 13, 2009 10:26:04
МитяРа
Сэр Мурр.. к сожалению такое часто бывает..
Для слежения за этим есть устройства "реле контроля фаз" называется..
А происходит это в основном из-за "ошибок персонала".. при ремонте не туда посадили или ещё какая нить фигня..
..
Так вот по сути - предлагаю разделить "мухи отдельно, котлеты отдельно"..
Ставятся три детектора перехода через 0, например на оптроне, а напряжения по фазам меряется через другие выводы..
И не надо ничего совмещать - гемора меньше... :)

Добавлено: Вт янв 13, 2009 12:50:32
NiTr0
kybertech писал(а):Спасибо огромное вот бы ещё наглядно взглянуть на это всё что бы понять полностью !
А что смотреть? В вашей схеме выкидываете делители, делаете внешний ИОН (моно даже 5В питающих заюзать, только о стабильности позаботиться), от него - делитель скажем 2 резистора по 4.7к и от средней точки кондер эдак 100-1000 мкф на землю...
Итого при 0 на входе имеем на выходе АЦП 2^10-1; при -Umax.ампл - имеем 0 (при правильно подобранном делителе), при Umax.ампл - 2^11-1.
Делитель рассчитывать так, чтобы был запас по пиковому напряжению (иначе - показания будут неточными), к примеру для 380В - номинальное амплитудное значение будет 220 (фазовое напряжение)*1.41 (корень из 2) = 310В, с запасом стоит взять 400В (283В фазовое)
kybertech писал(а):А подскажите плз. сколько нужно измерять раз одну полуволну ? я так понимаю чем больше тем лутше или я не прав ? (для того что бы потом всё сложить и т.д.)
Чем больше, тем лучше.
Имея АЦП 10бит, 10й бит будет как знак (от показаний АЦП будем отнимать 2^10-1) - итого 9 значащих бит (при отрицательном числе - оно инвертируется), и работая с 16бит переменными получаем до 128 отсчетов в переменной без ее переполнения. Имея 32 отсчета на период (что вполне достаточно) - можно спокойно 4 периода анализировать.

А насчет совмещения - зачем усложнять обвязку, если будет измеряться мгновеное значение напряжения? Определить переход через 0 - элементарно в таком случае...

Добавлено: Вт янв 13, 2009 13:49:22
kybertech
NiTr0
На данный момент у меня делитель такой как на рисунке прикреплённом, а для того чтобы мне мерять полуволну мне нужно выкинуть оттуда конденсаторы, правильно я понимаю ?
И тогда измеряя к примеру 1000 раз в секкунду я буду получать значение от 0 до Umax и опять до 0. потом из полученых значений получаю максимальное и дальше уже делю, умножаю его и тд. и тп. и тр. и др. и вместе с измерениями я программно могу отлавливать переход через ноль.

Я правильно понимаю ?
Может что-то нужно исправить в моём делители для такого варианта измерения ?

Добавлено: Вт янв 13, 2009 14:12:01
NiTr0
kybertech писал(а): потом из полученых значений получаю максимальное и дальше уже делю, умножаю его и тд. и тп. и тр. и др. и вместе с измерениями я программно могу отлавливать переход через ноль.
Только лучше суммировать все измерения за полуволну, после - получить их среднее арифметическое. Т.к. пиковое значение хорошо для синуса, но совсем не годится при наличии в сети помех.
А еще лучше - суммировать за весь период ;)

Добавлено: Вт янв 13, 2009 14:32:03
kybertech
NiTr0 писал(а): Только лучше суммировать все измерения за полуволну, после - получить их среднее арифметическое. Т.к. пиковое значение хорошо для синуса, но совсем не годится при наличии в сети помех.
А еще лучше - суммировать за весь период ;)
В прикреплённом файле нрисовал синусоиду и коментарии.

Судя по рисунку я меряю значение за полуволну та что идёт от 0 до 255 (от 0 до +5 вольт) полчаю Х-количество измерений и Y-сумму этих измерений, и потом нахожу среднее.
Y / X = среднее значение. а что мне потом с ним делать я не могу понять !
вот я понимаю так - у меня 255 это приравнивается к +5 вольтам, а 0 к 0 вольтам. А если я получаю среднее значений к примеру 127 как я буду знать чо у меня максимальное было 5 вольт. ? или нада ещё какие-то операции математические производить ?

И на счёт делителя - такой делитель будет пригоден для таких замеров ?

Добавлено: Вт янв 13, 2009 14:32:50
kybertech
NiTr0 писал(а): Только лучше суммировать все измерения за полуволну, после - получить их среднее арифметическое. Т.к. пиковое значение хорошо для синуса, но совсем не годится при наличии в сети помех.
А еще лучше - суммировать за весь период ;)
В прикреплённом файле нрисовал синусоиду и коментарии.

Судя по рисунку я меряю значение за полуволну та что идёт от 0 до 255 (от 0 до +5 вольт) полчаю Х-количество измерений и Y-сумму этих измерений, и потом нахожу среднее.
Y / X = среднее значение. а что мне потом с ним делать я не могу понять !
вот я понимаю так - у меня 255 это приравнивается к +5 вольтам, а 0 к 0 вольтам. А если я получаю среднее значений к примеру 127 как я буду знать чо у меня максимальное было 5 вольт. ? или нада ещё какие-то операции математические производить ?

И на счёт делителя - такой делитель будет пригоден для таких замеров ?