Формирование синусоиды с помощью ШИМ

AVR версия программы

Формирование синусоиды с помощью ШИМ

Сообщение Sergei j (Sergei) » 04 сен 2014, 12:44

Добрый день у кого нибудь есть опыт получения синусойды при помощи ШИМ подключенные к силовому ключу. Заранее благодарен за любую помощь в этом вопросе.
Ник: Sergei j
Имя: Sergei
(Казань)
Заинтересованный
Заинтересованный
Информация о пользователе

Re: Как получить синусойду при помощи ШИМ

Сообщение mim (mim) » 04 сен 2014, 13:07

I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе

Re: Как получить синусойду при помощи ШИМ

Сообщение Sergei j (Sergei) » 05 сен 2014, 09:42

А как по этому принципу можно сделать лабораторный блок питания на 400 герц 115 в
Ник: Sergei j
Имя: Sergei
(Казань)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Как получить синусойду при помощи ШИМ

Сообщение Sergei j (Sergei) » 05 сен 2014, 09:52

Как я понимаю здесь нужно два выхода ШИМ на верхний и нижний ключ (полевик), чтобы на выходе получился синус частотой 400 герц.
Но сам алгоритм построения ШИМ чтобы на выходе образовался ток с напряжением 115 в 400 герц мне не понятен.
На сколько я помню чтобы получить синусойду надо последовательно открывать верхний потом нижний ключ, а как вычислить эту последовательность и реализовать ее программно?
Ник: Sergei j
Имя: Sergei
(Казань)
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: Как получить синусойду при помощи ШИМ

Сообщение mim (mim) » 05 сен 2014, 10:30

Достаточно набрать поиск в инете - преобразователи напряжения - и все станет понятно. Например... или здесь. Для преобразователя лучше использовать специализированные микросхемы (или логику) - это намного проще - например. Для подачи сигнала на трансформатор не обязательно выдавать синусоиду - пример Далее приводить примеры нет смысла.
Sergei j писал(а):чтобы получить синусойду надо последовательно открывать верхний потом нижний ключ, а как вычислить эту последовательность и реализовать ее программно?
Как вычислить и реализовать - я дал ссылку и примеры... вместо одного вывода синуса нужно сделать две полуволны...
sin.JPG
или же стоит обратить внимание на такие драйверы как ir2104-2105, тогда выход ШИМа с одного порта.
У вас нет доступа для просмотра вложений в этом сообщении.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Формирование синусоиды с помощью шим

Сообщение Vovan_G5 (Владимир) » 20 ноя 2015, 14:58

Всем привет.
Мне нужна помощь с регулировкой амплитуды синусоиды (т.е тока в обмотке) с помощью шим.
Мне дано. Atmega88, Timer1 и Timer2 включены в режиме Шим с коррекцией фазы, 2 обмотки - 2 таймера. При простое (удержание) Шимы примерно 50% , частота 39кГц.
OCR1AL = 129 обмотка А
OCR1BL = 129
OCR2A = 125 Обмотка С
OCR2B = 125
При работе ток в обмотках изменяется по синусоидальному закону в обмотке А и по косинусу в обмотке С
Я задал 2 массива по 64 значения синуса и косинуса, как описано вот тут
Формирование сигналов (принцип DDS и PWM)
Но мне нужно ограничивать ток в обмотках. В оригинальном изделии это сделано так - есть зависимость значений переменных А и С от частоты. Эту зависимость я содрал с готового изделия. А(С)макс=0,19*Н+138 и А(С)мин=-0,19*Н+115 Н - частота. Зависимость справедлива до 500Гц
Работаем с частотой от 25 до 500Гц. Можно и меннее 25, но так протеус тормозит.
Т.е на частоте в 100Гц в регистрах OCRх должны быть записаны максимальные\мин значения 157/96, а промежуточные значения должны быть плавно пересчитаны и описывать синус\косинус, а не просто быть обрезаными или ограничеными маской.
25Гц - 46/107, 200Гц 172/84, 500Гц -239/20. Как видите, на низких оборотах ток в обмотках должен падать.
Когда я делал первую версию программы, я значения синуса и косинуса считал на каждом шаге,ток ограничивался, и все получилось отлично, если бы не одно но. Из-за того, что атмега88 слабовато на ходу считает у меня плавала частота вращения, хотя с пивом покатит.
Прилагаю 2 проекта. Первый считает синус на лету, второй пока только выдает табличные значения в регистры.
Так же прилагаю файлы с анализатора.
Вобщем как мне плавно изменять в заданном пределе значения в регистрах OCRх?
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: Vovan_G5
Имя: Владимир
(Харьков)
Консультант
Консультант
Информация о пользователе
Вернуться наверх

Re: Формирование синусоиды с помощью шим

Сообщение mim (mim) » 20 ноя 2015, 16:05

Vovan_G5 писал(а):Мне нужна помощь с регулировкой амплитуды синусоиды
Значение в регистрах OCRх это и есть значение амплитуды, изменяй их и будет меняться амплитуда... Простейший пример.
SIN_PWM.rar
Хватит ли тебе ресурса? Не знаю. Пробуй.
У вас нет доступа для просмотра вложений в этом сообщении.
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Формирование синусоиды с помощью шим

Сообщение Vovan_G5 (Владимир) » 20 ноя 2015, 23:51

Спасибо, формула то, что надо.
Ник: Vovan_G5
Имя: Владимир
(Харьков)
Консультант
Консультант
Информация о пользователе
Вернуться наверх

Re: Формирование синусоиды с помощью шим

Сообщение mim (mim) » 21 ноя 2015, 06:29

Глядя на твои изыскания и любовь к формулам, я подумал что ты предложишь доработку формулы под целочисленные действия ..., а не будешь сходу ее восхвалять... :)
I Am Legend
Аватар пользователя
Ник: mim
Имя: mim
(Из Лесу, вестимо...)
Легенда
Легенда
Информация о пользователе
Вернуться наверх

Re: Формирование синусоиды с помощью ШИМ

Сообщение Yushik (Андрей) » 21 ноя 2015, 17:59

Насколько я помню этот метод называется DSP во ФК-5.5 уже есть такая приблуда выглядет как на скрине работать с ней пока не приходилось. DSP формирует на выходе МК пачки импульсов у которых длительность меняется по синусоидальному закону общий период этих пачек соответствует заданной частоте. Дальше эти импульсы нужно отфильтровать RC-цепями. После фильтрации можно получить синусоиду и не только.
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: Yushik
Имя: Андрей
(Симферополь)
Консультант
Консультант
Информация о пользователе
Вернуться наверх

След.

Вернуться в Flowcode AVR

Кто сейчас на форуме

Пользователь просматривает форум: нет зарегистрированных пользователей