Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как сделать регулируемое 3х фазное напряжение
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
kamedi_clab
Есть выпрямленое напряжение 550 вольт и нужен алгоритм или исходника кусочек чтоб свормировать 6 ключами IGBT 3х фазную синусоиду с регулируемой частотой и напряжением на нагрузке. Помогите чем можете. Может есть проект подобный или рефдизайн или апноут. Спасибо.
SasaVitebsk
Цитата(kamedi_clab @ Dec 22 2007, 14:45) *
Есть выпрямленое напряжение 550 вольт и нужен алгоритм или исходника кусочек чтоб свормировать 6 ключами IGBT 3х фазную синусоиду с регулируемой частотой и напряжением на нагрузке. Помогите чем можете. Может есть проект подобный или рефдизайн или апноут. Спасибо.


Выскажу своё мнение. В своё время работал с высоковольтными ключами. Это очень неблагодарная работа. Один сбой при отладке программы и 2-3 ключа ушли из жизни. А денег они стоят - мама не горюй. А выходят они из строя иногда совершенно не по программной, а по аппаратной части. (Выбросы, превышение мгновенной мощности, малый фронт нарастания). Чтобы раскачать такие ключи вам одного транзистора будет не достаточно. Нодо будет транзистор на открывание и закрывание. Хотя, конечно, всё зависит от многих параметров. Например от нагрузки. Обычно для таких напряжений ставят тиристоры или оптотиристоры.

С другой стороны, для формирования трёхфазки вам понадобится трансформатор. Дабы фазы развязать и сигнал двуполярный сформировать. Тогда совершенно непонятно, зачем всё это городить на таком напряжении диком? Я бы взял вольт 30, не больше, сделал бы по две обмотки + два ключа на фазу и зашимовал синусоиду, программно сдвинув фазы. Иногда делают трансы многообмоточные и, тогда используют много ключей на фазу. Всё зависит от требуемого коэффициента искажений синусоиды на выходе.


Наверняка существуют и другие выходы. Другие подскажут. А то я в данной области теоретик. smile.gif
umup
Цитата
Это очень неблагодарная работа. Один сбой при отладке программы и 2-3 ключа ушли из жизни

отлаживать можно и на низком напряжении, ключики взять слабые и дешевые.

если нагрузка до нескольких киловатт, можно использовать трехфазные драйверы ir213х (или ir223х - на 1200В) + IGBT, или готовые сборки (напр. irams10up60b), в последнее время сильно подешевели.

контроллеров для управления много - готовые irmck201, ML4423, MC3PHAC или неспециализированные - MC56F8хх, DSPIC, tms320lf2xx,
LPC210x.
kamedi_clab
Цитата(SasaVitebsk @ Dec 22 2007, 14:44) *
Один сбой при отладке программы и 2-3 ключа ушли из жизни.


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

Вы очень много кода опубликовали в "исходниках" - может и по этой тематике есть кусочек ?

Мне именно алгоритм интересен и пока не ясен.

Цитата(umup @ Dec 22 2007, 15:38) *
отлаживать можно и на низком напряжении, ключики взять слабые и дешевые.


+ токоограничительный резистор.

Цитата(umup @ Dec 22 2007, 15:38) *
можно использовать трехфазные драйверы ir213х (или ir223х - на 1200В) + IGBT


Я планирую ir21363

Но меня АЛГОРИТМ интересует - последовательность включения этих 6 ключей чтоб результат получить.

За помощь спасибо.

Ясно что будет 1 алгоритм и 2 повторения со сдвигом на 120 градусов. Но вот хочется УЦЕЛОМ обозреть.
umup
Цитата
Но меня АЛГОРИТМ интересует - последовательность включения этих 6 ключей чтоб результат получить.

аогоритм там простой - генерировать с помощью ШИМа огибающую синуса. предварительно нужна таблица синуса, например круглое количество - 256 отсчетов в памяти программ или данных, 16-битные счетчики текущего отсчета, старший байт используется как индекс в этой таблице, плюс коррекция амплитуды в сторону уменьшения для понижения частоты. при каждом переполнении частотозадающего таймера новое значение загружается в регистры ШИМа.
управление таймерами зависит от конкретного выбранного контроллера - формирование мертвого времени программное или аппаратное, если это поддерживается.
kamedi_clab
Вот 1 синус сделать просто, но когда вмешиваются еще 2 то непонятки возникают.
evgeny_ch
Цитата(kamedi_clab @ Dec 22 2007, 14:45) *
3х фазную синусоиду с регулируемой частотой и напряжением на нагрузке.

Про предполагаемую нагрузку расскажите что-нибудь.
М. б. это электродвигатель?
kamedi_clab
МоХэбыть, МоХэбыть ... (А.Райкин)

По идее это должна быть РОЗЕТКА 380 Вольт ! до 10 ампер. С защитой от всяких пакостей в нее втыкаемых.
umup
Цитата
Вот 1 синус сделать просто, но когда вмешиваются еще 2 то непонятки возникают.

а что тут сложного, для 2х остальных отсчеты читаются из таблицы с соотвестсвующими смещениями на 1/3 и 2/3 (так как таблица из 256 отсчетов, счетчики автоматически зацикливаются по старшему байту - никаких доп. контролей не нужно).
kamedi_clab
это если 6 ШИМ аппаратных - да? Нашел уже апноуты у микрочипа такие.

А я хочу на таймере (может на паре) изголиться и вывести ШИМ на простых IO.
evgeny_ch
Цитата(kamedi_clab @ Dec 22 2007, 22:01) *
МоХэбыть, МоХэбыть ... (А.Райкин)

По идее это должна быть РОЗЕТКА 380 Вольт ! до 10 ампер. С защитой от всяких пакостей в нее втыкаемых.

Ничего лучше трехфазного генератора для розеток smile.gif еще не придумали.
Если это фотоэлектричество, тогда однако....
umup
Цитата
А я хочу на таймере (может на паре) изголиться и вывести ШИМ на простых IO.


разве что на быстром контроллере быстрой перезагрузкой регистров таймера, но будут проблемы с накладкой прерываний.
это имхо не имеет смысла, например LPC2101 с кучей ШИМов на 4х таймерах и частотой до 70МГц стоит 3$.
SasaVitebsk
Цитата(kamedi_clab @ Dec 22 2007, 18:15) *
Спасибо за предупреждение, но я обычно отлаживаю с использованием токкограничивающего балласта (резисторы по простецки) и пониженое напряжение питания.

Вы очень много кода опубликовали в "исходниках" - может и по этой тематике есть кусочек ?

Мне именно алгоритм интересен и пока не ясен.
+ токоограничительный резистор.
Я планирую ir21363

Но меня АЛГОРИТМ интересует - последовательность включения этих 6 ключей чтоб результат получить.

За помощь спасибо.

Ясно что будет 1 алгоритм и 2 повторения со сдвигом на 120 градусов. Но вот хочется УЦЕЛОМ обозреть.


А на пониженном напряжении всё будет работать просто песня! Подаёшь 550V - 05.gif .

Мне как то рассказывали быль. Разговор в очереди в столовой в одном из институтов занимающихся проблемой лазеров. Два работника, - один другому.
- у меня составной транзистор сдох, - 1500 транзисторов. 08.gif


По поводу алгоритма. Здесь как то недавно обсуждался алгоритм формирования многоканального ШИМ. Принципиально вам необходимо не более 3 каналов одновременно. Всего 6. Это легко реализуется программно на самой дешёвой AVR.

Дать алгоритм - не проблема. Проблема будет в реализации. Я подозреваю, что необходимо рассчитывать всё. Включая частоту ШИМ. Здесь не подойдёт решение "чем больше - тем лучше". Необходимо учитывать индуктивность и ёмкость обмоток, максимальную частоту для ключей, время рассасывания и прочие характеристики. Конечно, полупроводниковые приборы далеко ушли вперёд, но я не верю что ключ на такое напряжение будет работать просто так. Надо ставить полевик и три раскачивающих. Надо максимально быстро открывать и максимально быстро закрывать. Иначе - удачи не видать. Надо хороший схемотехник. По букварю такие вещи не делаются. Я в это не верю.
kamedi_clab
Ну вроде привод на 60 КВт довольно комактно выглядит - Рефдезин - IRMD22381Q irf.com

"AC and BLDC motor driver 1200V 50A with 6PACK IGBT module"

модуль под платкой виднеется - пркручивается на радиатор




==========

Я ПРО ХАРД НЕ СПРАШИВАЮ !!!

Я про СОФТ пекусь !
repairDV
Цитата(kamedi_clab @ Dec 22 2007, 20:45) *
Есть выпрямленое напряжение 550 вольт

Да там вроде 590 В.

Мысля очень правильная. Рекуперативное торможение приводит в сильному искажению сети. Если это в цеховых условиях, то страшного ничего не произойдёт. Но если это жилой дом и в лифте используется электропривод с рекуперацией, то как это отразится на всей домашней аппаратуре? Вывод - при рекуперативном торможении в сеть должна отдаваться чистая неискажённая синусоида.
(А мы будем работать над этим вопросом)
SasaVitebsk
Цитата(kamedi_clab @ Dec 23 2007, 11:23) *
Я про СОФТ пекусь !


Так а что в софте вам не понятно. Его уже описали подробно. Ну например на AVR один из вариантов.

Потребуется 1 таймер.

1) Формируется таблично пол синуса.
2) Таймер инициализируется в режиме с перезагрузкой.
3) Обрабатываются 4 прерывания. По переполнению, и по сравнению A,B,C.
4) по переполнению все рабочие (3 из 6) каналы устанавливаются в 1 и текущее табличное значение по каждому из каналов заносится в соответствующий OCR. Тут же осуществляется выбор рабочих каналов (по сути - полярность синуса)
5) По OCR сбрасывается текущий канал.
evgeny_ch
Цитата(kamedi_clab @ Dec 23 2007, 11:23) *
Я ПРО ХАРД НЕ СПРАШИВАЮ !!!

Я про СОФТ пекусь !

Зря хардом пренебрегаете. В приводных драйверах, в качестве нагрузки используется только индуктивность обмотки электродвигателя, в случае же "розетки" тип нагрузки может быть любой, как и последствия. biggrin.gif
repairDV
Цитата(evgeny_ch @ Dec 23 2007, 21:59) *
В приводных драйверах, в качестве нагрузки используется только индуктивность обмотки электродвигателя

Немножко можно поправить, хотя смысл от этого не меняется. Свойства, аналогичные индуктивности, получаются из-за воздействия противоэдс ротора на статорную обмотку.
evgeny_ch
Цитата(repairDV @ Dec 23 2007, 16:11) *
Немножко можно поправить, хотя смысл от этого не меняется. Свойства, аналогичные индуктивности, получаются из-за воздействия противоэдс ротора на статорную обмотку.

Если есть постоянные магниты. smile.gif
kamedi_clab
Цитата(repairDV @ Dec 23 2007, 12:48) *
Да там вроде 590 В.


Да вроде 514 в сети 220/380

Цитата(repairDV @ Dec 23 2007, 12:48) *
Мысля очень правильная. Рекуперативное торможение приводит в сильному искажению сети. Если это в цеховых условиях, то страшного ничего не произойдёт. Но если это жилой дом и в лифте используется электропривод с рекуперацией, то как это отразится на всей домашней аппаратуре?

Вывод - при рекуперативном торможении в сеть должна отдаваться чистая неискажённая синусоида.
(А мы будем работать над этим вопросом)


ПАФТАРЯЮ !

Я делаю РОЗЕТКУ ! в которой юудет 3х вазное напряжение сделаное из постоянного.

Цитата(evgeny_ch @ Dec 23 2007, 14:59) *
Зря хардом пренебрегаете.


Да я не пренебрегаю ! Я просто не спрашиваю про него.

Цитата(evgeny_ch @ Dec 23 2007, 15:18) *
Если есть постоянные магниты. smile.gif


да и без них тоже.

Цитата(SasaVitebsk @ Dec 23 2007, 14:23) *
Так а что в софте вам не понятно. Его уже описали подробно. Ну например на AVR один из вариантов.

Потребуется 1 таймер.

1) Формируется таблично пол синуса.
2) Таймер инициализируется в режиме с перезагрузкой.
3) Обрабатываются 4 прерывания. По переполнению, и по сравнению A,B,C.
4) по переполнению все рабочие (3 из 6) каналы устанавливаются в 1 и текущее табличное значение по каждому из каналов заносится в соответствующий OCR. Тут же осуществляется выбор рабочих каналов (по сути - полярность синуса)
5) По OCR сбрасывается текущий канал.


Спасибо. Но еще корректировки по данным АЦП нужно вносить. Т.е. не просто чтение по таблицам.
SasaVitebsk
Цитата(kamedi_clab @ Dec 23 2007, 18:20) *
Спасибо. Но еще корректировки по данным АЦП нужно вносить. Т.е. не просто чтение по таблицам.


Надо более полную картину знать. В каких пределах меняется частота? В каких - амплитуда?

Если отслеживается нагрузка, то возможно всё несколько сложнее.
kamedi_clab
Наверно от 10% до 100% и то и другое.
repairDV
Цитата(kamedi_clab @ Dec 24 2007, 00:20) *
ПАФТАРЯЮ !

Я делаю РОЗЕТКУ !

Ну, конечно же, вы совершенно правы. Никто с этим и не спорит. Всем известно, что вы делаете розетку. Но, тем не менее, рисунки-то вы тоже должны иногда добавлять. Где у вас дроссели, где конденсаторы, где диоды.
evgeny_ch
Цитата(repairDV @ Dec 23 2007, 19:52) *
Ну, конечно же, вы совершенно правы. Никто с этим и не спорит. Всем известно, что вы делаете розетку. Но, тем не менее, рисунки-то вы тоже должны иногда добавлять. Где у вас дроссели, где конденсаторы, где диоды.

В "розетке" разные там "шашечки" побоку, софт давай! lol.gif
И про ЭМС молчать!
SasaVitebsk
Цитата(kamedi_clab @ Dec 23 2007, 19:41) *
Наверно от 10% до 100% и то и другое.

Ещё один вопрос. Каким образом контроллер должен узнавать, что надо изменить частоту или амплитуду? Как ему это передаётся? Какое время реакции от передачи до выставления данных параметров?
kamedi_clab
Путь это будут две переменные в которые прога "заглядывает" и узнает.
_Pasha
biggrin.gif
Прикольная тема получается.
Чувак посмотрел аппликухи от микрочипов и поле этого хочет алгоритмов.
А для чего Вам эта розетка?
SasaVitebsk
Цитата(kamedi_clab @ Dec 23 2007, 23:26) *
Путь это будут две переменные в которые прога "заглядывает" и узнает.

Вы не указали время реакции. Я по умолчанию выбираю достаточно длительное.

Тогда всё что я написал по алгоритму в силе, с той разницей что таблица синуса находится не во флэш а в ОЗУ однокристалки и формируется в голове исходя из этих двух переменных. Очевидно придётся делать две таблицы и указатель на "текущую таблицу". Вторая в это время обновляется.

формулы - очевидны. Сначала расчитывается частота при максимальной амплитуде путём вычисления значения синуса с учётом числа отсчётов. Затем расчитывается амплитуда, как произведение значения отсчёта на понижающий коэффициент.
_Pasha
Цитата(SasaVitebsk @ Dec 23 2007, 14:23) *
Потребуется 1 таймер.

1) Формируется таблично пол синуса.
2) Таймер инициализируется в режиме с перезагрузкой.
3) Обрабатываются 4 прерывания. По переполнению, и по сравнению A,B,C.
4) по переполнению все рабочие (3 из 6) каналы устанавливаются в 1 и текущее табличное значение по каждому из каналов заносится в соответствующий OCR. Тут же осуществляется выбор рабочих каналов (по сути - полярность синуса)
5) По OCR сбрасывается текущий канал.


Для меги8 и фиксированной выходной частоты

Потребуется 2 таймера (1 и 2)

1) Формируется таблично полный синус. Можно даже с добавлением 3-й гармоники для улучшения КПД системы.
2) Таймера на phase correct PWM. Возможные варианты - либо 8-битный ШИМ, либо
max(OCR1x)=2040; Timer2 prescaler = ck/8
3) Обрабатывается одно прерывание таймера 1 или 2- какое больше нравится smile.gif
Кроме того, надо читать АЦП и вычислять среднее значение напряжения пульсаций. Назовем его AVG. Лично я делаю это в том же прерывании без зазрения совести- точности хватает. Для измерения напряжения на кондерах достаточно 8-бит точности.

4) По прерыванию берете самое свеженькое значение из АЦП, назовем его Ux. Вычисляете
Kf=(Ux*256)/AVG;
Mag=Commanded_Mag*Kf>>8; /* Mag-амплитуда по выходу, Commanded_Mag - параметр, задающий ограничение амплитуды по выходу */

Едем дальше.

Взяли Uphase_U из таблицы;
Взяли Uphase_V из таблицы со смещением в 120 градусов;
Посчитали

Uphase_U= (Uphase_U*Mag)/256;
Uphase_V=(Uphase_V*Mag)/256;
Uphase_W=- (Uphase_U+Uphase_V);/*вспомнили, что сумма фаз должна быть равна нулю*/

5) Добавляем смещение, соотв. нулю на выходе, выполняем двустороннее ограничение и плюемся в порты. Для 8-битного OCR2 еще и делим на 8 одну из понравившихся фаз.
6) Не забываем, что синусоидальный у нас только ток и только на индуктивной нагрузке.
kamedi_clab
Большое спасибо за помощь. Попытаюсь оформить в виде кода.
defunct
Цитата(umup @ Dec 22 2007, 21:17) *
а что тут сложного, для 2х остальных отсчеты читаются из таблицы с соотвестсвующими смещениями на 1/3 и 2/3 (так как таблица из 256 отсчетов, счетчики автоматически зацикливаются по старшему байту - никаких доп. контролей не нужно).

может тада и табличку на 768 элементов а не 256 (чтобы количество на 3 делилось). Правда надо будет ручками индекс обнулять.
umup
я делаю на LPC2103, для ШИМа использую 2 таймера (по 4 match на каждом).
таблица синуса на 256 отсчетов - во Flash,
по ней в RAM формирую реальные отсчеты для регистров сравнения таймеров согласно с текущей частотой несущей, мертвым временем, частотой генерации и количеством отсчетов синуса на период (все можно плавно менять с клавиатуры).
в прерывании переполнения увеличиваю счетчик отсчета, читаю следующее значение из таблицы (и для других фаз с соотв. смещением), загружаю регистры сравнения.
сигналы на внешн. выводах форм аппаратно (ШИМов - завались smile.gif) ).
Erv&Sed
Если это еще актуально - то можете скачать программу VMLab отсюдо: http://www.amctools.com/ , она бесплатная, в примерах для AVR есть программа формирования 3-х синусоид - именно то что вам нужно, вам остается только разбираться с частотой.

Частоту можно изменять добавляя не единицу к индексу таблицы, а 2, 5, т.о. можно увеличывать частоту/за счет качества синусоиды, а вот что именно добавлять (1, 2, 3 ... 5 и т.д.) можно читать из памятиЮ либо из портов ввода/вывода.

И совет на последок, если будете делать - берите такой контроллер у которого есть 3 канала сравнения. У ATMega88 как по-моему как-раз есть эти три канала, но надо посмотреть.
evgeny_ch
Цитата
Стабилизация U1 и f1 может быть осуществлена двумя способами: механическим (дифференциальные редукторы, гидромеханические уст-ройства) и электрическим (преобразователи частоты (ПЧ). Оба способа обеспечивают необходимое качество вырабатываемой электроэнергии, од-нако, второй, отличающийся простотой механической части, наиболее приемлем для малой и средней мощности (до 1500 кВт).

Хорошая розетка. biggrin.gif http://www.nntu.sci-nnov.ru/RUS/aspir_dokt...haritonov01.pdf
kamedi_clab
Цитата(umup @ Dec 26 2007, 15:58) *
я делаю на LPC2103, для ШИМа использую 2 таймера (по 4 match на каждом).
таблица синуса на 256 отсчетов - во Flash,


Может дадите кусочек кода ?
umup
Цитата
Может дадите кусочек кода ?

выложу весь проект с исходниками, схемами и платами, но еще не готово.
подключив другую плату ключей можно сделать например контроллер 2х шаговых двигателей с микрошаговым режимом, контроллер и индикация остаются те же.
kamedi_clab
Класс ! Буду ждать но не сложа руки.
ilyxa_SPB
Если подавать на драйвера чистый ШИМ синус, то верхний ключ обычно долго не живёт, всё конечно зависит от частоты преобразования. У нас задача управления сельсином, так мы на фазные обмотки подаём сигнал ввиде "попы", т.е. Фаза A=1 B=sin+ C=sin- потом B=1 A=sin- C=sin+ и тд.. Таблицы строятся исходя из разности фаз, где должен быть синус. Такое управление позволяет шимовать только нижним транзистором. Для регуслировки амплитуды, можно использовать шим стадилизатор по питанию, либо разные таблицы шима для нижнего ключа.
Gogan
Электроприводы переменного тока с частотным регулированием, Г. Г. Соколовский, 2006

страница 90-98 :
Преобразователь частоты с автономным инвертором напряжения и векторной широтно-импульсной модуляцией.

Почитайте, все делается на одном таймере и двух сравнениях (именно так !) для генерации трех фаз переменной частоты и амплитуды. Если не найдете - пишите, выложу картинками, у меня djvu целая книга 2.5мб.
Benazir
Цитата(ilyxa_SPB @ Dec 28 2007, 15:23) *
Если подавать на драйвера чистый ШИМ синус, то верхний ключ обычно долго не живёт, всё конечно зависит от частоты преобразования.


Наверно из-за недостатка бустстрапного питания, я обычно
трансформаторное питание драйверов верхних ключей делаю.

Цитата(Gogan @ Dec 28 2007, 16:57) *
Электроприводы переменного тока с частотным регулированием, Г. Г. Соколовский, 2006


Отличный учебник по электроприводу - я скачал на http://twirpx.com
evgeny_ch
Трехфазная розетка.
repairDV
Цитата(Benazir @ Dec 29 2007, 16:20) *
Отличный учебник по электроприводу - я скачал на http://twirpx.com

А точнее ссылку дать не можете?
Benazir
Цитата(repairDV @ Dec 29 2007, 11:44) *
А точнее ссылку дать не можете?


мистер Магу ! http://www.twirpx.com/downloads.special.emotor.html

библиотека книг, курсовых работ, методичек.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.