Решил самостоятельно сделать свой частотник.

Блоки питания, преобразователи напряжения, UPS'ы - это здесь :)
Ответить
Родился
Сообщения: 16
Зарегистрирован: Пн дек 24, 2012 07:22:49

Сообщение piskora »

Всем привет !
Решил самостоятельно сделать свой частотник. Программу пишу самостоятельно. В моем случае я использую ATtiny 2313, синус формирую с отставанием на 60 градусов.
Для того чтоб формировать частоты до 400 Герц пришлось сильно оптимизировать код программы. Нумерация транзисторов 135 верх 462 низ, так более правильно. Теперь если полупериод 1 то 2 отстает на 60 градусов третий от второго на 60 градусов и.т.д
Как я построил синус и где была оптимизация кода.
Пример синуса
0 0 0 0 13 13
2 0 0 0 12 14
3 0 0 0 11 14
5 0 0 0 10 15
6 0 0 0 9 15
8 0 0 0 8 15
9 0 0 0 6 15
10 0 0 0 5 15
11 0 0 0 3 14
12 0 0 0 2 14
13 0 0 0 0 13
14 2 0 0 0 12
14 3 0 0 0 11
15 5 0 0 0 10
15 6 0 0 0 9
15 8 0 0 0 8
15 9 0 0 0 6
15 10 0 0 0 5
14 11 0 0 0 3
14 12 0 0 0 2
13 13 0 0 0 0
12 14 2 0 0 0
11 14 3 0 0 0
10 15 5 0 0 0
9 15 6 0 0 0
8 15 8 0 0 0
6 15 9 0 0 0
5 15 10 0 0 0
3 14 11 0 0 0
2 14 12 0 0 0
0 13 13 0 0 0
0 12 14 2 0 0
0 11 14 3 0 0
0 10 15 5 0 0
0 9 15 6 0 0
0 8 15 8 0 0
0 6 15 9 0 0
0 5 15 10 0 0
0 3 14 11 0 0
0 2 14 12 0 0
0 0 13 13 0 0
0 0 12 14 2 0
0 0 11 14 3 0
0 0 10 15 5 0
0 0 9 15 6 0
0 0 8 15 8 0
0 0 6 15 9 0
0 0 5 15 10 0
0 0 3 14 11 0
0 0 2 14 12 0
0 0 0 13 13 0
0 0 0 12 14 2
0 0 0 11 14 3
0 0 0 10 15 5
0 0 0 9 15 6
0 0 0 8 15 8
0 0 0 6 15 9
0 0 0 5 15 10
0 0 0 3 14 11
0 0 0 2 14 12


далее переводим все в нули и единицы

привожу только часть , сразу оговарюсь что 3 и 4 выход использую для тормоза и регулятора напряжения (значение порта инверсное! 1 столбик для 1 транзистора ,второй для второго и соответственно шестой для шестого , нумерацию транзисторов приводил выше)
0 0 0 0 1 1 63 8
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63 5
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 0 0 255 2
0 0 0 0 0 0 255
1 0 0 0 1 1 62 2
1 0 0 0 1 1 62
0 0 0 0 1 1 63 8
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63 2
0 0 0 0 1 1 63
0 0 0 0 0 1 127 2
0 0 0 0 0 1 127
0 0 0 0 0 0 255 1
1 0 0 0 1 1 62 3
1 0 0 0 1 1 62
1 0 0 0 1 1 62
0 0 0 0 1 1 63 8
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 1 1 63
0 0 0 0 0 1 127 3
0 0 0 0 0 1 127
0 0 0 0 0 1 127
0 0 0 0 0 0 255 1


Теперь где закономерность, самое главное. Если посмотреть на цифру с права то это значение порта в данный момент времени. Следующая цифра это количество раз какое нужно вывести эту цифру в порт. А теперь как осуществляется компрессия, вариантов цифр у меня получилось всего 19 вот они

0 31
1 62
2 63
3 124
4 126
5 127
6 155
7 159
8 191
9 217
10 219
11 223
12 248
13 249
14 251
15 252
16 253
17 254
18 255

а количество выводов сделал до 8 таким образом можно закодировать в одном байте 5 бит под номер числа и три бита под количество которое нужно его вывести включая 0, получается 8 значений, то есть 0 выводим 1 раз, 1 два, 7 восемь раз ну и ноль в значении порта соответствует 31 а 18 соответствует 255 получаем таблицу из чисел в сжатом формате для данной таблицы получилось всего 266 значений. Таким образом на обработку одного тика у меня получилось тратить 92 машинных цикла и соответственно с синусом 12 амплитуда и 12 длинна я с легкостью укладывался на 16 мегагерцах генерировать 400 герц. Надеюсь я понятно объяснил. Да еще вывод числа я вешаю на прерывание. Ну и соответственно чем реже я его вызываю тем меньше частота итогового сигнала.
P.S. Кодировка первого числа 00010111 = 23 или 02 значение порта 00010(переводим по таблице в 63) и вывести его 8 раз 111
Реклама
Друг Кота
Сообщения: 3033
Зарегистрирован: Чт июн 26, 2014 00:04:37

Сообщение DC-AC »

piskora писал(а):Решил самостоятельно сделать свой частотник
Похвально, отчаянный шаг :write: :solder:
Сразу напомню важное предостережение - "Не зная броду, не суйся в воду."
Более конструктивно было-бы, если бы Вы создали свою тему и поделились в ней схемкой с прошивкой, а лучше сразу проектом в Протеус. Так можно сразу видеть результат генерации. Если в синусах 0 - это = выключенный транзистор, то алгоритм некорректный и нормально работать не будет.
Реклама
Родился
Сообщения: 16
Зарегистрирован: Пн дек 24, 2012 07:22:49

Сообщение piskora »

[uquote="DC-AC",url="/forum/viewtopic.php?p=3396856#p3396856"]Похвально, отчаянный шаг :write: :solder:
Сразу напомню важное предостережение - "Не зная броду, не суйся в воду."[/uquote]

Драйвера оптические, открываются открытым коллектором. Ноль это транзистор открыт.Сделано это для защиты, при ошибке убирается пять вольт со входа драйверов и они автоматически закрываются. Схемы конкретной нет, просто пробую и экспериментирую.
Двигатель разгонял до приличных оборотов. Если поделитесь опытом буду только благодарен.
Друг Кота
Сообщения: 3033
Зарегистрирован: Чт июн 26, 2014 00:04:37

Сообщение DC-AC »

Большинство информации изложено в настоящей теме + по ссылкам в моей подписи.
piskora писал(а):Двигатель разгонял до приличных оборотов
разогнать ещё не всё. Чтоб оценить работоспособность вашей модуляции, нужна модель. Нарисуйте схему в симуляторе, чтобы запустить и видеть сигнал
Реклама
Эиком - электронные компоненты и радиодетали
Родился
Сообщения: 16
Зарегистрирован: Пн дек 24, 2012 07:22:49

Сообщение piskora »

В общем сегодня память ATtiny 2313 была окончательно заполнена)
Что сейчас работает:
Быстрый старт, плавный разгон до заданной частоты, реверс, тормоз, кнопка экстренной остановки,ограничение максимальной скорости, регулировка напряжения ШИМ до 50 Гц (таблица 124 значения для диапазонов частот), все настройки передаются по 485 интерфейсу (специально не делал в данном контроллере индикацию и кнопки чтоб контроллер был занят только двигателем) частота от 1 до 400 Гц.
Реклама
Родился
Сообщения: 16
Зарегистрирован: Пн дек 24, 2012 07:22:49

Сообщение piskora »

Вот что в итоге получилось https://youtu.be/4T7XUuYbifY
Реклама
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Сообщение mixon46 »

а зависимость напряжения от частоты какая?
Родился
Сообщения: 16
Зарегистрирован: Пн дек 24, 2012 07:22:49

Сообщение piskora »

[uquote="mixon46",url="/forum/viewtopic.php?p=3426883#p3426883"]а зависимость напряжения от частоты какая?[/uquote] высчитывается по таблице ЕЕPROM , до 50 Гц 125 значений напряжения.
Родился
Сообщения: 16
Зарегистрирован: Пн дек 24, 2012 07:22:49

Сообщение piskora »

Собрал новую схему для управления драйверами. На транзисторах пока не испытывал. Напряжение питания 20 Вольт. Испытывал на 100 кГц.http://img.radiokot.ru/files/82975/medi ... 3blt77.jpg
Вложения
Осциллограмма.png
(23.91 КБ) 253 скачивания
Говорящий с текстолитом
Аватара пользователя
Сообщения: 1644
Зарегистрирован: Сб фев 18, 2012 15:42:29
Откуда: Курск

Сообщение mixon46 »

я работаю с частотниками, и настраиваю их и ремонтирую. но что бы самому сделать это нужно много знаний. нужно не только понимать принципы ШИМ нарезки трехфазного напряжения, но также много чего рассчитать. я думаю это довольно сложное устройство.

расскажите что у вас нарезает ШИМ. это нужно 6 выходов контроллера верно?
Родился
Сообщения: 16
Зарегистрирован: Пн дек 24, 2012 07:22:49

Сообщение piskora »

[uquote="mixon46",url="/forum/viewtopic.php?p=3431531#p3431531"]я работаю с частотниками, и настраиваю их и ремонтирую. но что бы самому сделать это нужно много знаний. нужно не только понимать принципы ШИМ нарезки трехфазного напряжения, но также много чего рассчитать. я думаю это довольно сложное устройство.

расскажите что у вас нарезает ШИМ. это нужно 6 выходов контроллера верно?[/uquote] Да правильно 6 выводов. Только я пошел проще. Регулировку напряжения я делаю отдельным транзистором. Так что форма шима синуса у меня постоянная. А вот напряжение меняется. Снижение напряжения нужно на частотах ниже 50 Гц. В промышленных частотниках эта регулировка делается основным шимом. Ну и один транзистор я использую для тормоза. Итого у меня восемь транзисторов.
Друг Кота
Сообщения: 3033
Зарегистрирован: Чт июн 26, 2014 00:04:37

Сообщение DC-AC »

Представьте схему, хотя-бы силовой части :dont_know: . С вашего понимания это проще (возможно управление как-бы проще), а так наличие дополнительных силовых элементов - это усложнение и имеет много минусов.
100кГц слишком большая частота для работы с двигателями, до 22кГц и с использованием du/dt фильтров
Родился
Сообщения: 16
Зарегистрирован: Пн дек 24, 2012 07:22:49

Сообщение piskora »

https://drive.google.com/open?id=1wVNTN ... DjCs32L1Dz Ссылка для скачивания проекта, программа управления, краткая схема, прошивка микроконтроллера.
Ответить

Вернуться в «Питание»