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

Добавлено: Чт авг 27, 2009 20:53:50
SeregaT
30 килогерц потянут. Нормальный синус будет.
Полевики потянут и больше, но тут надо с драйверами мутить. Чтобы транзистор очень быстро закрывался.

Добавлено: Чт авг 27, 2009 22:28:22
demson
хорошо. НО 30.36 кГц как сделать такую точную частоту? именно 30.36 :roll: какие кратные частоты надо?

Добавлено: Пт авг 28, 2009 15:59:02
SeregaT
demson писал(а):НО 30.36 кГц как сделать такую точную частоту? именно 30.36 :roll: какие кратные частоты надо?
Вот бы узнать :roll:
А почему именно такая частота? Наверное можно и под другую подстроиться?

Добавлено: Пт авг 28, 2009 16:17:31
demson
это частота с которой нам необходимо изменять параметр величины шим.
НО можно ее умножить на некоторое целое число потом пропускать столько-же действий.
например частоту умножим на 4
действие пропуск пропуск пропуск действие

Добавлено: Пт авг 28, 2009 16:36:28
clawham
Ребятки а что не понятного-то?
есть частота 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 у которых на входе + будет напряжение с выходного фильтра(дроссель и кандер) а на минус подавать синус - тогда это будет просто песня...транс не будет петь песни не будет пробиваться высоким без нагрузки и вообще...одни плюсы будут :)

Добавлено: Пт авг 28, 2009 16:51:36
SeregaT
clawham писал(а): где стабилизация по напряжению? где обратная связь?
А оно надо? Вон в сети напряжение то-же не стабилизированное. Перепад в 20 - 30 вольт (а то и больше) случается сплошь и рядом. И зачем обратная связь, если не нужна стабилизация? Ну только если как защита от перегрузок...
ИМХО вполне достаточно вывести синусоиду, и подать на трансформатор (как это происходит при включении трансформатора в розетку).

Добавлено: Пт авг 28, 2009 17:03:35
clawham
хотя лучше использовать конечно ICL8038 для изготовления синуса красивого и любой частоты скважности и т.д.

в сети оно ещё и как стабилизированное, вы даже не представляете как на электростанциях мучаются изза этой стабилизации и частоты

стабилизация нужна полюбому!
это уж поверьте очень серьёзное дело... так как транс это очень большая индуктивность а вы её качаете на максимуме что она будет делать? ну выброва с 40 вольт по первичке это не страшно а вот вторичная высоковольтная...блин..это сила....

кстати... транс в упс-ке расчитан не на 12 вольт а на 7,5 !!! так что дав ему 12 или 16 вольт с машины вы получите на выходе не 220 а все 640 %)

Добавлено: Пт авг 28, 2009 17:15:17
demson
ну и обратную связь можно сделать например вольтметр а от его показаний будет зависеть максимальное значение ocr не 255 а 100 например

Добавлено: Пт авг 28, 2009 17:18:12
SeregaT
clawham писал(а):в сети оно ещё и как стабилизированное, вы даже не представляете как на электростанциях мучаются изза этой стабилизации и частоты
Что-бы на МК сделать нестабильную частоту, это надо очень постараться. Стабилизация напряжения конечно не помешает, но и без неё достаточно нормально будет работать. Единственное что действительно надо-бы сделать, это контроль разряда аккумулятора (если инвертор будет питаться от аккумуляторов).
clawham писал(а):так как транс это очень большая индуктивность а вы её качаете на максимуме что она будет делать? ну выброва с 40 вольт по первичке это не страшно а вот вторичная высоковольтная...блин..это сила....
А откуда возьмутся выбросы 40 вольт по первичке? Мы не прямоугольные импульсы на трансформатор подаём, а синусоиду. Синусоида выводится из прямоугольных импульсов ШИМ с помощью ЦАП, и только потом идёт на транс.

Добавлено: Пт авг 28, 2009 18:01:34
demson
ну что начинаем реализацию кода ? я на с пишу :)

Добавлено: Пт авг 28, 2009 18:36:06
SeregaT
Как напишете, не забудьте со мной текстом поделиться :) Я то-же такой хочу!

Добавлено: Пт авг 28, 2009 19:17:26
demson
Как напишете, не забудьте со мной текстом поделиться
не волнуйся я же один точно не напишу ...
так что в этой тему будем вместе ошибки в коде искать :)

на счет частоты таймера пока непонятно.
частоту второго таймера ставим примерно равной - 60*4*128 = 30 килогерц и 30 тыщ раз в секунду выполняем прерывание которое будет иметь 4 режима -
от примерно частота не уплывет?

Добавлено: Пт авг 28, 2009 19:40:35
demson
#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; }
}
}
}

Добавлено: Пт авг 28, 2009 23:51:45
urry
Ребята, не все так просто, как вам кажется. Друг делал преобразователь - постоянка - в -380 вольт 3 фазы - убил 2 месяца жизни - причем программер не из последних и схемотехнику тоже хорошо знает.
Даже нагрузка - 500 и полтора киловатта - это тоже 2 большие разницы.
Да, существуют апноуты, но... Конкретная инфа на эту тему не особенно светится - на быструю победу не рассчитывайте.

Добавлено: Сб авг 29, 2009 02:00:46
А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 кГц. Вот с этой частотой и нужно приращать таймер сравнения.

Вы немного запутились и забыли о том, что период ШИМа состоит тже из частей (битность).
Аппаратный ШИМ в помощь, плюс внешняя логика для выбора ключа (если ШИМ в МК один).

Добавлено: Сб авг 29, 2009 09:53:21
demson

Частота синуса 60 Гц, умножаем её на кол-во ступенек (100), получаем 6Кгц и умножаем её на битность ШИМа (2^6.65, 100 вобщем), получаем 600 кГц. Вот с этой частотой и нужно приращать таймер сравнения.
абсолютно правильно но 100/4=25 по 25 ступеник на четверть период и 50 на полупериод. Не маловато?

как написал 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 Мгц тогда шим будет пробегать много раз прежде чем изменится величина.

Добавлено: Сб авг 29, 2009 12:49:27
Настя
Конвертер DC-AC, генерим синус
http://www.remexpert.com/ipb/ipb.html?a ... wentry=129

Конвертер DC-AC, генерим синус, часть вторая
http://www.remexpert.com/ipb/index.php? ... wentry=130

Добавлено: Сб авг 29, 2009 13:38:23
Аlex
по 25 ступеник на четверть период и 50 на полупериод. Не маловато?
Думаю нет, должно хватить.
это 60*4*100=24000 Гц.
Это вы посчитали по 100 ступенек за четверть периода, 400 на весь период (волну). Это точно излишне :)
а частота изменения шима пусть 1 Мгц тогда шим будет пробегать много раз прежде чем изменится величина.
А так и нужно делать. Фильтр (ФНЧ) за одну ступеньку должен успеть выйти на нужное значение. Для звука, например, с частотой дискретизации 44 кГц советуют ШИМ с частотой не менее 1 мГц.
Только 1мГц не сможеш сделать на МК, можно кГц 200-300 сделать, думаю нормально будет.
Но всё-же, без аппаратного ШИМа не обойтись в любом случае.

Добавлено: Сб авг 29, 2009 21:53:47
demson
Давайте задумаемся над кодом. ШИМ программный от аппаратного отличаться не сильно будет (В КОДЕ) разница в том что будет вызываться функция а не регистр.
а вот код...
он нормально составлен? ну в смысле для первого шага :))

Добавлено: Вс авг 30, 2009 11:08:42
demson
смотрим прикидку частот. вопрос какие частоты существуют? и их можно получить на меге 8