Инвертор 12-220 (sin на МК)
- Реклама
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
Ребятки а что не понятного-то?
есть частота 60 герц
это значит что 60 раз в секунду надо сделать полную синусоиду от нуля вверх потом сверху вниз до нуля от нуля вниз и снизу вверх....имеем 2 четверть синусоиды для двух каналов по очереди 120 раз в секунду....теперь нам надо сделать этот красивый изгиб плавного подъёма вверх синусоиды и потом последовательно вывести его в прямом порядке на первый канал, потом задом-наперед в первый канад потом в прямом порядке во второй канал и наконец задомнаперед во второй канал....
теперь этот плавный переход от нуля до максимума - четвертесинусоида так сказать.....нужно сделать массив-табличку....в которой чем больше значений будет тем лучше но на глаз и 128 штук хватит вот и записать в неё последовательно значения регистра для соответствующего синусоиде процента PWM а дальше если у нас например 128 значений в таблице то частоту второго таймера ставим примерно равной - 60*4*128 = 30 килогерц и 30 тыщ раз в секунду выполняем прерывание которое будет иметь 4 режима -
1) _--`` для первого канала
2) ``--_ для первого канала
3) аналог первого только на второй канал
4) аналог второго на второй канал
и теперь при старте ставим переменную режима = 1, переменную текущего значения = 0 и запускаем таймер
в прерывании таймера:
Если переменная режима =
1) инкрементируем переменную текущее значение, вычитываем и записываем в регистр PWM а первого канала значение таблицы, проверяем переменную на предмет выхода за 128 и если вышли - ставим режим 2
2) декрементируем переменную текущее значение, читаем содержимое таблицы и пишем его в регистр PWM а первого канала, проверяем не пришли ли мы к 1 в переменной текущее значение если пришли - ставим режим 3
3) инкрементируем переменную текущее значение, вычитываем и записываем в регистр PWM а второго канала значение таблицы, проверяем переменную на предмет выхода за 128 и если вышли - ставим режим 4
4) декрементируем переменную текущее значение, читаем содержимое таблицы и пишем его в регистр PWM а второго канала, проверяем не пришли ли мы к 1 в переменной текущее значение если пришли - ставим режим 1
вот и весь алгоритм....если взять таблицу из 10-ти значений то получится гораздо меньшие частоты - 60*4*10 = 2400 раз в секунду нужно будет вызывать эту процедурку ну и пределы изменить со 128 на 10 но тогда синус ступенчатым получится
и драйверы в любом случае надо ставить и причем не просто а мостовые у которых на выходе 2 транзюка, тогда не будет потерь на диоде
да и частоту самого PWM таймера тогда можно будет задрать хоть до 2 мегагерц
- чем выше частоты тем ближе мы к аналогу
ХОТЯ! МОЁ ЛИЧНОЕ ИМХО!!!
это всё бред!
где стабилизация по напряжению? где обратная связь? таблицу надо коректировать на предмет размаха..тоесть делить её значения на некий индекс-процент нагруженности
ибо транс без нагрузки выдаст пару тыщ вольт поубивает нахрен силовые транзюки и спалит микроконтроллер - знаю по своему опыту ибо брал транс из УПС и подключал к ЛАТРу на котором было намотано 12 витков медной шины сварочной....результаты были просто супер
такой ДУГИ во вторичке (которая на 220) я давно не видовал
в общем это ужос.
Вам нужно делать это дело на аналоговой вещи - ТЛ494
просто на одном операционнике сделать генератор синуса, но втором инвертор ещё на одном - повторитель напряжения первого и подавать эти синусы через ещё пару операционников на входы двух ТЛ494 у которых на входе + будет напряжение с выходного фильтра(дроссель и кандер) а на минус подавать синус - тогда это будет просто песня...транс не будет петь песни не будет пробиваться высоким без нагрузки и вообще...одни плюсы будут
есть частота 60 герц
это значит что 60 раз в секунду надо сделать полную синусоиду от нуля вверх потом сверху вниз до нуля от нуля вниз и снизу вверх....имеем 2 четверть синусоиды для двух каналов по очереди 120 раз в секунду....теперь нам надо сделать этот красивый изгиб плавного подъёма вверх синусоиды и потом последовательно вывести его в прямом порядке на первый канал, потом задом-наперед в первый канад потом в прямом порядке во второй канал и наконец задомнаперед во второй канал....
теперь этот плавный переход от нуля до максимума - четвертесинусоида так сказать.....нужно сделать массив-табличку....в которой чем больше значений будет тем лучше но на глаз и 128 штук хватит вот и записать в неё последовательно значения регистра для соответствующего синусоиде процента PWM а дальше если у нас например 128 значений в таблице то частоту второго таймера ставим примерно равной - 60*4*128 = 30 килогерц и 30 тыщ раз в секунду выполняем прерывание которое будет иметь 4 режима -
1) _--`` для первого канала
2) ``--_ для первого канала
3) аналог первого только на второй канал
4) аналог второго на второй канал
и теперь при старте ставим переменную режима = 1, переменную текущего значения = 0 и запускаем таймер
в прерывании таймера:
Если переменная режима =
1) инкрементируем переменную текущее значение, вычитываем и записываем в регистр PWM а первого канала значение таблицы, проверяем переменную на предмет выхода за 128 и если вышли - ставим режим 2
2) декрементируем переменную текущее значение, читаем содержимое таблицы и пишем его в регистр PWM а первого канала, проверяем не пришли ли мы к 1 в переменной текущее значение если пришли - ставим режим 3
3) инкрементируем переменную текущее значение, вычитываем и записываем в регистр PWM а второго канала значение таблицы, проверяем переменную на предмет выхода за 128 и если вышли - ставим режим 4
4) декрементируем переменную текущее значение, читаем содержимое таблицы и пишем его в регистр PWM а второго канала, проверяем не пришли ли мы к 1 в переменной текущее значение если пришли - ставим режим 1
вот и весь алгоритм....если взять таблицу из 10-ти значений то получится гораздо меньшие частоты - 60*4*10 = 2400 раз в секунду нужно будет вызывать эту процедурку ну и пределы изменить со 128 на 10 но тогда синус ступенчатым получится
и драйверы в любом случае надо ставить и причем не просто а мостовые у которых на выходе 2 транзюка, тогда не будет потерь на диоде
да и частоту самого PWM таймера тогда можно будет задрать хоть до 2 мегагерц
ХОТЯ! МОЁ ЛИЧНОЕ ИМХО!!!
это всё бред!
где стабилизация по напряжению? где обратная связь? таблицу надо коректировать на предмет размаха..тоесть делить её значения на некий индекс-процент нагруженности
ибо транс без нагрузки выдаст пару тыщ вольт поубивает нахрен силовые транзюки и спалит микроконтроллер - знаю по своему опыту ибо брал транс из УПС и подключал к ЛАТРу на котором было намотано 12 витков медной шины сварочной....результаты были просто супер
Вам нужно делать это дело на аналоговой вещи - ТЛ494
просто на одном операционнике сделать генератор синуса, но втором инвертор ещё на одном - повторитель напряжения первого и подавать эти синусы через ещё пару операционников на входы двух ТЛ494 у которых на входе + будет напряжение с выходного фильтра(дроссель и кандер) а на минус подавать синус - тогда это будет просто песня...транс не будет петь песни не будет пробиваться высоким без нагрузки и вообще...одни плюсы будут
- Реклама
- SeregaT
- Генеральный секретарь МЯУ
- Сообщения: 18856
- Зарегистрирован: Пн сен 03, 2007 18:24:27
- Откуда: Россия. Омск.
- Контактная информация:
А оно надо? Вон в сети напряжение то-же не стабилизированное. Перепад в 20 - 30 вольт (а то и больше) случается сплошь и рядом. И зачем обратная связь, если не нужна стабилизация? Ну только если как защита от перегрузок...clawham писал(а): где стабилизация по напряжению? где обратная связь?
ИМХО вполне достаточно вывести синусоиду, и подать на трансформатор (как это происходит при включении трансформатора в розетку).
-
clawham
- Поставщик валерьянки для Кота
- Сообщения: 1957
- Зарегистрирован: Пт окт 31, 2008 09:38:55
- Откуда: Одесса
- Контактная информация:
хотя лучше использовать конечно ICL8038 для изготовления синуса красивого и любой частоты скважности и т.д.
в сети оно ещё и как стабилизированное, вы даже не представляете как на электростанциях мучаются изза этой стабилизации и частоты
стабилизация нужна полюбому!
это уж поверьте очень серьёзное дело... так как транс это очень большая индуктивность а вы её качаете на максимуме что она будет делать? ну выброва с 40 вольт по первичке это не страшно а вот вторичная высоковольтная...блин..это сила....
кстати... транс в упс-ке расчитан не на 12 вольт а на 7,5 !!! так что дав ему 12 или 16 вольт с машины вы получите на выходе не 220 а все 640 %)
в сети оно ещё и как стабилизированное, вы даже не представляете как на электростанциях мучаются изза этой стабилизации и частоты
стабилизация нужна полюбому!
это уж поверьте очень серьёзное дело... так как транс это очень большая индуктивность а вы её качаете на максимуме что она будет делать? ну выброва с 40 вольт по первичке это не страшно а вот вторичная высоковольтная...блин..это сила....
кстати... транс в упс-ке расчитан не на 12 вольт а на 7,5 !!! так что дав ему 12 или 16 вольт с машины вы получите на выходе не 220 а все 640 %)
- SeregaT
- Генеральный секретарь МЯУ
- Сообщения: 18856
- Зарегистрирован: Пн сен 03, 2007 18:24:27
- Откуда: Россия. Омск.
- Контактная информация:
Что-бы на МК сделать нестабильную частоту, это надо очень постараться. Стабилизация напряжения конечно не помешает, но и без неё достаточно нормально будет работать. Единственное что действительно надо-бы сделать, это контроль разряда аккумулятора (если инвертор будет питаться от аккумуляторов).clawham писал(а):в сети оно ещё и как стабилизированное, вы даже не представляете как на электростанциях мучаются изза этой стабилизации и частоты
А откуда возьмутся выбросы 40 вольт по первичке? Мы не прямоугольные импульсы на трансформатор подаём, а синусоиду. Синусоида выводится из прямоугольных импульсов ШИМ с помощью ЦАП, и только потом идёт на транс.clawham писал(а):так как транс это очень большая индуктивность а вы её качаете на максимуме что она будет делать? ну выброва с 40 вольт по первичке это не страшно а вот вторичная высоковольтная...блин..это сила....
не волнуйся я же один точно не напишу ...Как напишете, не забудьте со мной текстом поделиться
так что в этой тему будем вместе ошибки в коде искать
на счет частоты таймера пока непонятно.
от примерно частота не уплывет?частоту второго таймера ставим примерно равной - 60*4*128 = 30 килогерц и 30 тыщ раз в секунду выполняем прерывание которое будет иметь 4 режима -
в спорах рождается ИСТИНА [AND] flud.
#include <delay.h> // библиотека пауз CVAVR
char del_clock=1; // делитель частоты таймера
char del_clock_i=0; //счетчик события
char PMW_flag_pluss=1; //счетчик события полупериода прибавляем/убавляем шим
прерывание {
if (del_clock_i < del_clock){del_clock_i++;}else{del_clock_i=0
//наше событие
if (PMW_flag_pluss==1){
if (PMW<255){ PMW++; }else{PMW_flag_pluss=0; }
}else{
if (PMW>0){ PMW--; }else{PMW_flag_pluss=1; }
}
}
}
char del_clock=1; // делитель частоты таймера
char del_clock_i=0; //счетчик события
char PMW_flag_pluss=1; //счетчик события полупериода прибавляем/убавляем шим
прерывание {
if (del_clock_i < del_clock){del_clock_i++;}else{del_clock_i=0
//наше событие
if (PMW_flag_pluss==1){
if (PMW<255){ PMW++; }else{PMW_flag_pluss=0; }
}else{
if (PMW>0){ PMW--; }else{PMW_flag_pluss=1; }
}
}
}
в спорах рождается ИСТИНА [AND] flud.
- urry
- Сверлит текстолит когтями
- Сообщения: 1262
- Зарегистрирован: Пн дек 08, 2008 10:58:48
- Откуда: Винница
- Контактная информация:
Ребята, не все так просто, как вам кажется. Друг делал преобразователь - постоянка - в -380 вольт 3 фазы - убил 2 месяца жизни - причем программер не из последних и схемотехнику тоже хорошо знает.
Даже нагрузка - 500 и полтора киловатта - это тоже 2 большие разницы.
Да, существуют апноуты, но... Конкретная инфа на эту тему не особенно светится - на быструю победу не рассчитывайте.
Даже нагрузка - 500 и полтора киловатта - это тоже 2 большие разницы.
Да, существуют апноуты, но... Конкретная инфа на эту тему не особенно светится - на быструю победу не рассчитывайте.
-
Аlex
Ребята, Вы чего-то не правильно считаете.
Если период синуса 16666 мкс (60 Гц), за этот период, предположим, будет 100 периодов ШИМа (разбили волну на 100 дискрет). Значит делим на 100 получаем 166.66 мкс. Это получился период ШИМа (частота ШИМа 6000 Гц). А в этом периоде шима ещё например 100 дискрет (разрядность получается ~6.65), делим ещё на 100, получаем 1.6 микросекунд (600 Кгц). Т.е. одно приращение ШИМного таймера сравнения получаеться 1.6 микросекунд. Попробуйте сделайте таймер на такую длительность, да и ещё все прибамбасы чтобы влезали в это время.
Немножко по другому: Частота синуса 60 Гц, умножаем её на кол-во ступенек (100), получаем 6Кгц и умножаем её на битность ШИМа (2^6.65, 100 вобщем), получаем 600 кГц. Вот с этой частотой и нужно приращать таймер сравнения.
Вы немного запутились и забыли о том, что период ШИМа состоит тже из частей (битность).
Аппаратный ШИМ в помощь, плюс внешняя логика для выбора ключа (если ШИМ в МК один).
Если период синуса 16666 мкс (60 Гц), за этот период, предположим, будет 100 периодов ШИМа (разбили волну на 100 дискрет). Значит делим на 100 получаем 166.66 мкс. Это получился период ШИМа (частота ШИМа 6000 Гц). А в этом периоде шима ещё например 100 дискрет (разрядность получается ~6.65), делим ещё на 100, получаем 1.6 микросекунд (600 Кгц). Т.е. одно приращение ШИМного таймера сравнения получаеться 1.6 микросекунд. Попробуйте сделайте таймер на такую длительность, да и ещё все прибамбасы чтобы влезали в это время.
Немножко по другому: Частота синуса 60 Гц, умножаем её на кол-во ступенек (100), получаем 6Кгц и умножаем её на битность ШИМа (2^6.65, 100 вобщем), получаем 600 кГц. Вот с этой частотой и нужно приращать таймер сравнения.
Вы немного запутились и забыли о том, что период ШИМа состоит тже из частей (битность).
Аппаратный ШИМ в помощь, плюс внешняя логика для выбора ключа (если ШИМ в МК один).
абсолютно правильно но 100/4=25 по 25 ступеник на четверть период и 50 на полупериод. Не маловато?
Частота синуса 60 Гц, умножаем её на кол-во ступенек (100), получаем 6Кгц и умножаем её на битность ШИМа (2^6.65, 100 вобщем), получаем 600 кГц. Вот с этой частотой и нужно приращать таймер сравнения.
как написал clawham
нам надо в каждом периоде синуса сделать (60 периодов в секунду - 60 Гц) сделать изменения шим
1канал
1 ++ 0-255
2 - - 255-0
2 канал
3 ++ 0-255
4 - - 255-0
ну пусть даже до 100 считать
это 60*4*100=24000 Гц. ( еще кстати надо выкинуть крайние 0 и 100 получится 98 а это уже 60*4*98=23520 кратных частот нет ) - значит считаем до 102 и ищем частоту 24 кГц
а частота изменения шима пусть 1 Мгц тогда шим будет пробегать много раз прежде чем изменится величина.
в спорах рождается ИСТИНА [AND] flud.
- Настя
- Мявтор!
- Сообщения: 878
- Зарегистрирован: Чт авг 07, 2008 09:12:38
- Откуда: не скажу
- Контактная информация:
Конвертер DC-AC, генерим синус
http://www.remexpert.com/ipb/ipb.html?a ... wentry=129
Конвертер DC-AC, генерим синус, часть вторая
http://www.remexpert.com/ipb/index.php? ... wentry=130
http://www.remexpert.com/ipb/ipb.html?a ... wentry=129
Конвертер DC-AC, генерим синус, часть вторая
http://www.remexpert.com/ipb/index.php? ... wentry=130
натуральная блондинка
-
Аlex
Думаю нет, должно хватить.по 25 ступеник на четверть период и 50 на полупериод. Не маловато?
Это вы посчитали по 100 ступенек за четверть периода, 400 на весь период (волну). Это точно излишнеэто 60*4*100=24000 Гц.
А так и нужно делать. Фильтр (ФНЧ) за одну ступеньку должен успеть выйти на нужное значение. Для звука, например, с частотой дискретизации 44 кГц советуют ШИМ с частотой не менее 1 мГц.а частота изменения шима пусть 1 Мгц тогда шим будет пробегать много раз прежде чем изменится величина.
Только 1мГц не сможеш сделать на МК, можно кГц 200-300 сделать, думаю нормально будет.
Но всё-же, без аппаратного ШИМа не обойтись в любом случае.
смотрим прикидку частот. вопрос какие частоты существуют? и их можно получить на меге 8
- Вложения
-
- T.xls
- (64 КБ) 238 скачиваний
в спорах рождается ИСТИНА [AND] flud.


