|
|
  |
Алгоритм стабилизации тока ШД на AVR, алгоритм |
|
|
|
Aug 7 2013, 20:52
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(izerg @ Aug 7 2013, 23:43)  ШИМ в контроллере - аппаратный , но он там - сферический в вакууме  Насмешили ШИМ там вполне неплохой  По крайней мере в AVR Цитата(izerg @ Aug 7 2013, 23:43)  Компаратор - тоже аппаратный но... с ШИМ - никак не связан, а тем более с регулировкой и поддержанием тока в обмотке двигателя. Организовать програмную прослойку (которая выполняется какое-то время ) - медленнее триггера ШИМа в L297. Вот расскажите пожалуйста как организовать прослойку  При срабатывании триггера надо уменьшать заполнение ШИМ? Код if(INT) OCRx --; else OCRx++; Верно? Цитата(izerg @ Aug 7 2013, 23:43)  Между L297 и мотором что ставить будете? Драйвер нижнего плеча + IRLB4030 или IRF3710 Мотор униполярный из очень мелким шагом. Сопротивление обмоток 4 Ом, питание поступало 48В через резистор 4.7 Ом. Судя по схеме - никакой стабилизации тока не было. Очень удивлен тем, как мог двигатель давать такие обороты с такой силовой частью в те времена....
|
|
|
|
|
Aug 7 2013, 21:15
|

Знающий
   
Группа: Свой
Сообщений: 531
Регистрация: 1-02-05
Из: Украина, Киев
Пользователь №: 2 342

|
Цитата(Artos5 @ Aug 7 2013, 23:52)  При срабатывании триггера надо уменьшать заполнение ШИМ? Код if(INT) OCRx --; else OCRx++; Верно? Насмешили  И статью вроде читали  Часть данных вы уже привели, параметры мотора известны. Выясняем дальше: Куда заведен сигнал с ВАШИХ датчиков тока? Ток в обмотках стабилизировать?
|
|
|
|
|
Aug 7 2013, 21:22
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(izerg @ Aug 8 2013, 00:15)  Насмешили  И статью вроде читали  Я что то не правильно написал? Просто я не могу понять надо выход при срабатывании компаратора вообще отключать? или уменьшать заполнение ШИМ? Делал - отключая выход , и включал его через время которое и задавало частоту работы стабилизатора. Такой метод работал. Но мне интересно какой метод применяют при построении ШИМ стабилизаторов для моторов на МК. Цитата(izerg @ Aug 8 2013, 00:15)  Часть данных вы уже привели, параметры мотора известны. Выясняем дальше: Куда заведен сигнал с ВАШИХ датчиков тока? Ток в обмотках стабилизировать? С датчиков , каких? L297 ? Или старого контроллера? Если старого, то там нету датчиков тока , там вообще не было стабилизации тока. Хотя может и была , только на отдельном независимом блоке, и то не на каждую обмотку.
|
|
|
|
|
Aug 7 2013, 21:50
|

Знающий
   
Группа: Свой
Сообщений: 531
Регистрация: 1-02-05
Из: Украина, Киев
Пользователь №: 2 342

|
Цитата(Artos5 @ Aug 8 2013, 00:22)  Но мне интересно какой метод применяют при построении ШИМ стабилизаторов для моторов на МК. Применяют замкнутый контур регулирования тока в обмотке двигателя. Вы пытаетесь притянуть ШИМ к двигателю без измерения тока - получится регулятор тока, но не стабилизатор. Открывайте еще раз статью. Внимательно смотрите "Рис. 22. Различные схемы ключевой стабилизации тока." и "Рис. 28. Типовая схема включения микросхем L297 и L298N" Для того чтобы получить стабилизацию тока на выводы 13, 14 L297 заведены сигналы токовых датчиков. Обратите внимание как это сделано на "Рис. 30. Принципиальная схема контроллера шагового двигателя" Элементы U3, R15, R16... Приведу цитату: Источник"смысл ШИМ: Индуктивность (обмотка двигателя) инерционный элемент, при подаче на нее напряжения ток нарастает постепенно. Для повышения оборотов двигателя (увеличения скорости перемещения кареток станка) стремятся увеличить скорость этого нарастания, для чего поднимают питающее напряжение. Но тут возникает другой косяк - если просто подать на обмотку большое напряжение, то ток через некоторое время (микро-мили секунды) вырастет до слишком большой величины и это приведет к перегреву двигателя, сдыханию транзисторов и другим неприятностям. Чтоб этого избежать по достижении током какой то величины управляющий транзистор начинают выключать-включать с большой частотой, тем самым не давая току расти дальше. Собственно значением тока управляют изменяя соотношения времен открытого и закрытого состояния транзистора (на графике это ширина импульса). " Поскольку вы хотите заменить L297 микроконтроллером, то так же должны обмерять ток в обмотках. Встроенным компаратором? Но Цитата(Artos5 @ Aug 8 2013, 00:22)  Драйвер нижнего плеча + IRLB4030 или IRF3710 Мотор униполярный... Значит ключей будет 4? и Датчиков тока - 4? Вот я и пытаюсь узнать "Куда заведен сигнал с ВАШИХ датчиков тока?" Цитата(Artos5 @ Aug 8 2013, 00:22)  Просто я не могу понять надо выход при срабатывании компаратора вообще отключать? или уменьшать заполнение ШИМ? Внимательно смотрите Рис. 32, Рис. 33 - это прямой ответ на ваш вопрос. Но, придется изучить еще и Рис. 31, что-бы понять откуда таки берется ШИМ.
|
|
|
|
|
Aug 7 2013, 22:11
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(izerg @ Aug 8 2013, 00:50)  Применяют замкнутый контур регулирования тока в обмотке двигателя. Вы пытаетесь притянуть ШИМ к двигателю без измерения тока - получится регулятор тока, но не стабилизатор. Не сдержался  Вы меня простите... я ток именно стабилизирую! С датчика тока измеряется напряжение компаратором, при достижении порога срабатывания компаратор будет отправлять импульс на внешнее прерывание МК. А МК будет выполнять функцию стабилизации тока. Цитата(izerg @ Aug 8 2013, 00:50)  Открывайте еще раз статью. Внимательно смотрите "Рис. 22. Различные схемы ключевой стабилизации тока." и "Рис. 28. Типовая схема включения микросхем L297 и L298N" Для того чтобы получить стабилизацию тока на выводы 13, 14 L297 заведены сигналы токовых датчиков. Обратите внимание как это сделано на "Рис. 30. Принципиальная схема контроллера шагового двигателя" Элементы U3, R15, R16... Я повторяю: статью читал два раза. Контроллер L297 собрал вот почти по такой схеме (мелкие отличия в номиналах подтягивающих резисторов): http://www.chipmaker.ru/index.php?app=core...ttach_id=184982Только не ставил таймер 555 и сила другая. У меня импульсы шагов и плавный разгон/останов задавал проц PIC16F690 Цитата(izerg @ Aug 8 2013, 00:50)  Значит ключей будет 4? и Датчиков тока - 4? Вот я и пытаюсь узнать "Куда заведен сигнал с ВАШИХ датчиков тока?" Нет, ключей 4шт. а датчиков тока 2шт. Цитата(izerg @ Aug 8 2013, 00:50)  Внимательно смотрите Рис. 32, Рис. 33 - это прямой ответ на ваш вопрос. Но, придется изучить еще и Рис. 31, что-бы понять откуда таки берется ШИМ. Спасибо, увидел. Внимательно прочитал и получил ответ на свой вопрос
|
|
|
|
|
Aug 7 2013, 22:20
|

Знающий
   
Группа: Свой
Сообщений: 531
Регистрация: 1-02-05
Из: Украина, Киев
Пользователь №: 2 342

|
Цитата(Artos5 @ Aug 8 2013, 00:56)  Не сдержался  Вы меня простите... я ток именно стабилизирую! С датчика тока измеряется напряжение компаратором, при достижении порога срабатывания компаратор будет отправлять импульс на внешнее прерывание МК. А МК будет выполнять функцию стабилизации тока. Вот, теперь Вы рассказали как подключены датчики тока, а так же своими словами рассказали то что на рисовано на указанных номерах рисунков. Значит скоро придет понимание что применение "if(INT) OCRx --; else OCRx++;" Не верно, как и использование изолированного, готового ШИМа. ШИМ в этом случае должен получаться за счет программы, путем наложения Рис. 31 и Рис. 32, что как раз и показано на Рис. 33. Цитата(Artos5 @ Aug 8 2013, 01:11)  Я повторяю: статью читал два раза. Рекомендую статью прочесть еще раз  Для более глубокого усвоения. Также рекомендую прочесть Гайка М3
|
|
|
|
|
Aug 7 2013, 22:20
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(izerg @ Aug 8 2013, 01:15)  Значит скоро придет понимание что применение "if(INT) OCRx --; else OCRx++;" Не верно, как и использование изолированного, готового ШИМа. ШИМ в этом случае должен получаться за счет программы, путем наложения Рис. 31 и Рис. 32, что как раз и показано на Рис. 33. Уже пришло понимание (оно по сути и было. Я понимал что с таким методом будет плохая реакция регулятора). Я уже делал по такому принципу стабилизатор на МК (делал стабилизатор для LED) . Спасибо Вам за выделение своего драгоценного времени на мои вопросы!
Сообщение отредактировал Artos5 - Aug 7 2013, 22:22
|
|
|
|
|
Aug 8 2013, 10:19
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(Artos5 @ Aug 8 2013, 02:20)  Уже пришло понимание (оно по сути и было. Я понимал что с таким методом будет плохая реакция регулятора). К вам в результаете обсуждения пришло понимание, а от меня оно ушло.  Посмотрела рекомедованные участниками дискуссии статьи, где регуляция ШД осуществляется с помощью электронной схемотехники, и не могу взять в толк, отчего микроконтролер не годится для этих целей? Ведь практически любая логика, собранная на электронных элементах, может быть реализована программно на МК. Тем более что скорость регулируемого процесса здесь не такова, чтобы обязательно требовать аппаратной реализации. Лично у меня сложилось иное мнение. А именно то, что только одного уровня контроля (превышения тока выше заданного порога) для решения данной задачи недостаточно. Потому что уменьшить ток при зашкале не сложно, однако непонятно, когда его снова можно увеличить. И вообще. Если есть возможность выявления случая, когда ток зашкалил за допустимый предел, то отчего бы мониторить величину этого тока постоянно? Благо АЦП в составе МК есть, и его точности для этой задачи заглаза хватит. Столько обладая информацией о текущей величине тока можно конструировать алгоритм, этот ток стабилиризирующий. Тогда как одного "концевого выключателя" для этой цели недостаточно. И суть проблемы не в особенностях управления ШД, а в общих принципах регулирования. Т.е. если информации о процессе всего один бит, то речь может идти лишь о регулировании вблизи точки перехода. Тогда как "концевой датчик", срабатывающий , когда становится совсем хреново, для этой цели не годится.
|
|
|
|
|
Aug 8 2013, 10:31
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(Xenia @ Aug 8 2013, 13:19)  К вам в результаете обсуждения пришло понимание, а от меня оно ушло.  Все очень просто  Алгоритм на МК такой: Договоримся что компаратор у нас при превышении порога на датчике тока будет выдавать лог.1 . Настраиваем внешнее прерывание по любому уровню. Ждем прерывания, поймали прерывание. Проверяем по какому уровню оно случилось. Если по высокому - выключаем активный выход, запрещаем внешнее прерывание, запускаем таймер (прописываем такое значение, чтоб прерывание по переполнению произошло через 10-20us) в этом обработчике когда произошло данное прерывание , проверяем состояние входа прерывания. Если лог.0 - включаем активный выход и активируем внешнее прерывание по любому изменению на входе. Недостаток программной реализации ШИМ стабилизатора - относительно низкое быстродействие. Но при высокой тактовой частоте: 12-16 мГц , думаю быстродействие будет хорошим.
|
|
|
|
|
Aug 8 2013, 10:50
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(Xenia @ Aug 8 2013, 13:42)  Не поняла, частота 12-16 мГц относится к тактовой частоте МК или к частоте ШИМ?
P.S. Кстати, что там известно из теории по поводу частоты PWM? Из каких сображений она выбирается? Конечно же 12-16 мГц - это тактовая частота МК. А частота ШИМ думаю выбирается в пределах 18-22 кГц 1) По выше чтоб не было шума мотора от работы ШИМ 2) Надо выбирать не сильно высокой частоту чтоб силовые ключи хорошо открывались/закрывались (меньше требования к драйверу нижнего плеча). Цитата(Xenia @ Aug 8 2013, 13:42)  У L297 верхний предел частоты где-то 8 Кгц (КГц, а не МГц!). А в моих руках он и на 1000 Гц не тянет. Не может такого быть. У меня L297 производства ST прекрасно работает на 19кГц ! Вам надо поправить "частотозадающую" цепь.
|
|
|
|
|
Aug 8 2013, 11:20
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(Xenia @ Aug 8 2013, 14:15)  Кажись, ошибочка вышла. У вас L297, а у меня L293D. прикольно вышло  ) У меня L297 работает в паре с дискретным силовым блоком. Вот схема одного такого плеча: http://forum.cxem.net/index.php?showtopic=127017&hl=пост №5 Драйвер на столько быстродействующий что теплоотвода площадью в 60см2 хватает при токе до 5А Полевики применил в предыдущем контроллере IRF3710
|
|
|
|
|
Aug 8 2013, 12:09
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
Цитата(Artos5 @ Aug 8 2013, 15:20)  Драйвер на столько быстродействующий что теплоотвода площадью в 60см2 хватает при токе до 5А Простите за вопрос, который возможно покажется вам глупым: а зачем вообще питать обмотку через PWM? Только затем, чтобы регулировать величину тока? Но для обмотки ШД меандр с частотой в десятки КГц выглядит как постоянный ток средней величины. Так почему бы не запитать обмотки постоянным током?  Устанавливаете, значит, такое напряжение, чтобы при делении на сопротивление обмотки (постоянному току) получался ток, не выходящий за пределы допустимого, и вперед! Ключи, конечно, быть должны, но не для того, чтобы "вибрировать", а только чтобы направление тока в обмотках переключать через каждые 45 градусов поворота вала. Тогда, заодно, и от вибраций тока не будет, и ток с гарантией никогда не выйдет за пределы допустимого (т.к. омическое сопротивление обмотки постоянному току уменьшиться от нагрузки не может).
|
|
|
|
|
Aug 8 2013, 12:13
|
Частый гость
 
Группа: Участник
Сообщений: 124
Регистрация: 21-07-13
Из: Украина, Ахтырка
Пользователь №: 77 613

|
Цитата(Xenia @ Aug 8 2013, 15:09)  Простите за вопрос, который возможно покажется вам глупым: а зачем вообще питать обмотку через PWM? Только затем, чтобы регулировать величину тока? Но для обмотки ШД меандр с частотой в десятки КГц выглядит как постоянный ток средней величины. Так почему бы не запитать обмотки постоянным током?  Устанавливаете, значит, такое напряжение, чтобы при делении на сопротивление обмотки поучался ток, не выходящий за пределы допустимого, и вперед! Ключи, конечно, быть должны, но не для того, чтобы "вибровать", а только чтобы направление тока в обмотках переключать через каждые 45 градусов поворота вала. Тогда, заодно, и шума от вибрации тока не будет. Дело в том что я использую ШД в широких диапазонах скоростей (от 0 до 2000 об/мин) При таком диспазоне нужно вводить стабизитор тока каждой из фаз. Для чего это нужно - можно найти ответ в статье Ридико.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|