81

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic, *ROSE*  спасибо, понял. Придут детали с Али, попробую собрать. Опыта нет, а руки чешутся.

82 (2019-09-27 01:21:13 отредактировано Александр Волков)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic ©:

и в итоге имеем примерно 380 выборок за полупериод.
Корень из 380 приблизительно 19, так что точность можно предполагать в районе 0,07 вольта.
Но это не точность, а шаг квантования, наверное.

Хотел бы уточнить метод измерения напряжения на нагрузке, я так понял среднеквадратичное (RMS), то есть 380 раз за полупериод берется выборка возводится в квадрат, затем все выборки суммируются, делятся на количество выборок, и вычисляется корень квадратный


или как то по другому, уточните пожалуйста

  • rms_n.jpg
    size: 5.39Кб type: jpg
  • rms_n1.jpg
    size: 2.49Кб type: jpg
  • rms_n.jpg
    size: 5.39Кб type: jpg
  • rms_n1.jpg
    size: 5.64Кб type: jpg
  • rms_n2.jpg
    size: 7.45Кб type: jpg

83

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

Александр Волков, совершенно верно.
Так, как на приведённой формуле.

РК 35х1600

84 (2019-09-27 09:04:35 отредактировано Александр Волков)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic ©:

Так, как на приведённой формуле.

тогда еще 2 вопроса
1. При 380 выборках за полупериод 0,01 мСек выборки следуют через  26 мкСек. Позволяет нет время преобразования на контроллере обеспечивать такую частоту, вроде бы в даташите на этот контроллер стоит 112 мкСек, или вы повышали скорость в ущерб разрешения.
2. RMS  при 360 выборках разрешением 1 в. и 220 вольтах на выходе дает сумму квадратов 17409780 единиц, среднее число в квадрате 48361 единиц,  вопрос по функции извлечения квадратного корня из этого числа

85 (2019-09-27 09:25:45 отредактировано kvic)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

Александр Волков,
по п.1 - просто увеличил частоту выборок.
В процессе экспериментов менял разрядность.
И при 8 и при 10 разрядах точность регулирования примерно одинаковая.
Т.к. в младших разрядах в основном шум.
Если вопрос по поводу линейности преобразования, то нам же нужно не получить некое точное число,
а поддерживать некоторую величину на заданном значении.
по п.2 - не совсем понял вопрос, если по быстродействию, то вполне хватает.

РК 35х1600

86 (2019-09-30 01:46:37 отредактировано Александр Волков)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic ©:

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

Просто я тоже  занимался измерением  RMS контроллером, правда я работаю с PIC, но суть не в том, даже при непрерывном преобразовании ADC, время на преобразование  на многих контроллерах достаточно велико для скорости 380 (26 мкСек) выборок за полупериод, связано это с зарядом разрядом конденсатора и количеством разрядов.
А так как на  ATMEGA328P  заявлено 112 мкСек поэтому и вопрос

kvic ©:

по п.2 - не совсем понял вопрос, если по быстродействию, то вполне хватает.

Нет не быстродействие, мне интересна функция извлечения корня на ассемблере

87

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

Александр Волков ©:

функция извлечения корня на ассемблере

Функцию писал не я, нашёл на просторах интернета.
А именно:
https://radiokot.ru/forum/viewtopic.php … 71#p779071
Там она называется CalcSquareRoot.asm
Ассемблер для avr.
Перед использованием проверял разными входными значениями.
Соответствует.

РК 35х1600

88 (2019-09-30 08:59:59 отредактировано Александр Волков)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic ©:

Функцию писал не я, нашёл на просторах интернета.

Почему спрашивал, я пишу на си и функция соответственно такая есть, и если применять ее по окончании периода, все в норме.
Но у меня есть мысль считать не по окончанию полупериода а во время. То есть заменить симистор IGBT модулем(есть у меня парочка таких 100А 600В) и открывать сразу при начале полупериода и после каждой выборки высчитывать RMS как только значение напряжения сравнялось с  заданным закрывать модуль.
Так вот, возвести в квадрат, суммировать с предыдущим значением, а потом разделить на количество прошедших выборок, ни каких проблем, каждая операция по одному такту, а вот извлечь корень для последующего сравнения, это уже функция и занимает время.
Так вот какая у меня родилась мысль, например необходимо держать напряжение 100 В, мы берем и 100 возводим в квадрат и храним в переменной, и полученный результат после возведения, суммирования и деления сравниваем с этим значением, а корень квадратный в этом случае не извлекаем. Не знаю може что и получится

  • стабилизатор мощ.jpg
    size: 105.4Кб type: jpg
  • стабилизатор мощ.jpg
    size: 105.4Кб type: jpg

89 (2019-09-30 09:28:04 отредактировано kvic)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

Извлечение корня занимает 35 мкс, для предлагаемого алгоритма это очень долго.

Александр Волков ©:

необходимо держать напряжение 100 В, мы берем и 100 возводим в квадрат и храним в переменной, и полученный результат после возведения, суммирования и деления сравниваем с этим значением, а корень квадратный в этом случае не извлекаем.

Видимо так будет лучше.
Правда тут ещё деление затесалось.
Его тоже неплохо ликвидировать.
Например, 100^2 = U/n преобразовать в (100^2)*n = U,
где U - сумма квадратов, n - число отсчетов, 100 - необходимое напряжение.
Т.е. предлагаю сравнивать две переменные.
В одну каждый отсчет суммировать квадрат необходимого напряжения,
в другую - суммировать квадраты измеренных величин.
И по итогу сравнения выносить решение на включение/выключение силового ключа.
-----------
Единственно, гложут сомнения насчет способности контроллера обеспечить требуемое быстродействие.
Ведь на пике (в районе пи/4 периода) сетевого напряжения (сеть 220в 50 гц) задержка в 10 мкс добавит лишние 0.69 вольта к заказанному напряжению.

РК 35х1600

90 (2019-09-30 09:46:57 отредактировано Александр Волков)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic ©:

Извлечение корня занимает 35 мкс, для предлагаемого алгоритма это очень долго.

На си это будет еще дольше

kvic ©:

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

Да наверное можно и так


kvic ©:

Единственно, гложут сомнения насчет способности контроллера обеспечить требуемое быстродействие.
Ведь на пике (в районе пи/4 периода) сетевого напряжения (сеть 220в 50 гц) задержка в 10 мкс добавит лишние 0.69 вольта к заказанному напряжению.

Пока не попробуешь не узнаешь, а на пике напруга даже больше 311 В

91

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

Александр Волков ©:

Пока не попробуешь не узнаешь

Это точно.
Даже если будет добавка, но не рандомная, то фиг бы с ней.

РК 35х1600

92 (2019-10-02 21:52:09 отредактировано Александр63)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic, доброго времени суток :)
Пришли запчасти и плата с Китая, всё спаял, прошил  ардуину. Почти работает. Руки не с того места. Стоп и разгон работают как положено, а стабилизация ни фига. До 20 вольт нормально, даже диод загорается, а выше лампочка на нагрузке вспыхивает и гаснет. Индикатор не работает, мерял вольтметром. Куда копать подскажите пожалуйста. Резисторы проверил, они в норме....

93 (2019-10-02 22:25:20 отредактировано kvic)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

Александр63, что то не то.
До 20 вольт он просто работать не будет.
(При управлении энкодером)
Начинает с 40.
Возможно прошивка криво встала ?
Как прошивал ?
Как вариант фьюзы стоят неправильно.
Что наиболее вероятно.
---
Вот:

  • fuses.JPG
    size: 80.89Кб type: JPG
РК 35х1600

94 (2019-10-02 22:33:44 отредактировано )

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic, прошивал через usb.  Прога avrdude 3.2, только вместо usbasp выбрал встроенный программатор  в меню, фьюзы как у вас сделал на картинке. Сначала стер всё, написал кристалл чист, потом нажал программирование, прошивка зашла.. Программатор  заказал, ещё не пришёл, решил так, видимо зря...

Фьюзы отдельно шьются?

95 (2019-10-02 22:39:46 отредактировано kvic)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

Александр63 ©:

вместо usbasp выбрал встроенный программатор

А это как ?
У меня тоже 3.2, но такого я там не обнаружил.
Может используется встроенный в ардуину загрузчик ?
С ним работать, думаю, не будет.
Хотя не экспериментировал.
Руки не дошли.
---
Если есть ещё одна ардуина, то она легко перешивается в программатор.
В Arduino IDE вроде как есть.

Александр63 ©:

Фьюзы отдельно шьются?

Нет, они шьются автоматически.
В настройках можно изменить.

РК 35х1600

96

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic, да встроенный загрузчик, не помню как называется  mkl на конце, выбираешь тип программатора вместо usbasp

97 (2019-10-02 22:49:51 отредактировано kvic)

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

Александр63, видимо такой вариант прошивки не корректен.
Судя по https://tsibrov.blogspot.com/2018/07/ar … s-isp.html

загрузчик не может изменить Fuse-биты и Lock-биты (в отличие от программаторов)

В логику загрузчика не вникал, но похоже встроенный загрузчик для прошивки не годится.
Видимо он занимает какие-то ресурсы, используемые прошивкой.

РК 35х1600

98 (2019-10-02 22:59:58 отредактировано )

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic, а может обвес не рабочий? Завтра ещё раз всё проверю. Сам симистор или оптопара? Их можно проверить как нибудь?

kvic ©:

встроенный загрузчик для прошивки не годится.

2 КБ встроенный загрузчик занимает в памяти. На ютубе один американский дядька сказал. Значит жду программатор  и не дергаюсь пока.


Отрицательный результат тоже опыт, чтобы другие на эти грабли не наступили. Спасибо большое за помощь  *ROSE*

99 (2019-10-02 23:03:21 отредактировано )

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

Александр63, вряд ли.
Симистор и оптопара исправны.
Иначе не было бы работы в режимах разгон/стоп.
Это программная проблема.
Я тут по быстрому погуглил на эту тему.
И:

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

Подпрограмма обслуживания прерывания по переполнению таймера запускается через каждые 16000 циклов в фоновом режиме. Это сделано для работы функций millis() и micros(), даже когда они не используются;

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

Вывод - прошивать внешним программатором с предварительным полным стиранием.

Александр63 ©:

2 КБ встроенный загрузчик занимает в памяти

Это ладно, там свободного места ещё не то что вагон с тележкой, а целый товарный состав запихнуть можно.


Александр63 ©:

жду программатор  и не дергаюсь пока.

Либо, если есть вторая ардуина, сделать программатор из неё.

РК 35х1600

100

Re: Стабилизированный регулятор на базе Arduino с управлением через UART

kvic ©:

Либо, если есть вторая ардуина, сделать программатор из неё.

Есть. Заказывал как раз 2 штуки. Попробую погуглить по теме. Спасибо!