RSS лента

Тарахтелка

Специалисты по ТАУ есть?

Оценить эту запись
13.06.2018 в 12:24 (623 Показов)
Настало время приводить прошивку регуля бормашинки во вменяемое состояние. С красивыми блок-схемами, формулами и т.п. Без "магических коэффициентов", которые так любят программисты от сохи. Начали бодро, но тут полезло...

Вот есть абстрактный регулятор скорости, который умеет мерять все что происходит в моторчике (обычном, не асинхроннике). Допустим, мы хотим просто стабилизировать обороты. Тут все просто - ставим ПИ(Д), заводим на него уставку, реальную скорость, и радуемся. Методики настройки стандартного ПИД-а известны и просты. Д-компоненту вообще херим, чтобы не заморачиваться.

Теперь, добавим "маленькое" условие - хочется ограничить максимальную потребляемую мощность, чтобы не спалить мотор. Вроде бы мелочь, и практически никогда не "используется". Но при попытке построить схему регулятора выходит какой-то ад. Можно конечно поступить тупо в лоб - поставить 2 последовательных ПИД-а, но радости настройки это никому не прибавит. У нас ведь какая цель? Чтобы юзеру было легко. Если для защиты надо еще пару параметров крутить - это плохо, очень.

Хочется что-то простое, не требующее дополнительных усилий в настройке. Т.к. ограничение мощности работает с тем же режимом, что регулировка скорости (и с тем же мотором), то "на глаз" должны прокатить те же параметры ПИД-а. Дальше, по логике, простых вариантов два:
  • Используем один ПИД, но пытаемся завести на вход 2 сигнала через хитрый микшер
  • Используем 2 одинаковых пида, и коммутируем выходы как Min(out1, out2). Типа, кто больше ограничил скорость, тот и прав.
Ну и конечно нужен гладкий преход между режимами работы. Для первого варианта я нарисовать формулу не осилил. Второй вроде на глаз должен сойтись, но смущает что подобные схемы как-то не встречались.

Кто-нибудь знает простое готовое решение? Ключевой момент - ПРОСТОЕ (не требующее отдельной ручной настройки для ограничения мощности).
Категории
Железо

Комментарии

  1. Аватар для Lazy
    Электродвигатели насколько я помню имеют линейную ( или почти линейную ) зависимость оборотов от мощности. Вместо регулирования оборотов не проще сразу регулировать мощность?
  2. Аватар для Taboo
    Вам надо ограничить мощность, или управлять ею?
    Если ограничить, то возмите и ограничте её после ПИДа.
    Там конечно с интегральной состовляющей херня приключится, но её можно просто обнулить.
  3. Аватар для Vitaly
    Цитата Сообщение от Lazy
    Электродвигатели насколько я помню имеют линейную ( или почти линейную ) зависимость оборотов от мощности. Вместо регулирования оборотов не проще сразу регулировать мощность?
    Если очень упрощать, то регулируют обычно то, что хотят сделать стабильным. Стабильная потребляемая мощность, в отличие от оборотов, нахер не нужна.

    Переходи сразу к блок-схемам, на этом обычно валятся все мамкины рецепты
  4. Аватар для Панкратов Сергей
    Мотор палит не мощность на него подаваемая, а ток.
    Потому если просто то нужно просто брать интеграл по току за определенный промежуток времени (зависящий от тепловой инерции обмотки).
    Более верно и точнее - интеграл по току с учетом оборотов ( потому как охлаждение зависит от оборотов).
  5. Аватар для Vitaly
    Цитата Сообщение от Taboo
    Вам надо ограничить мощность, или управлять ею?
    Если ограничить, то возмите и ограничте её после ПИДа.
    Мне надо регулировать скорость и ограничивать максимально допустимую мощность.

    Как конкретно "ограничить мощность после ПИД"? И удовлетворить тем требованиям, которые я назвал. Покажите блок-схему, или формулу хотя бы.
  6. Аватар для SergejK
    Если напряжение остается постоянным, то ограничение максимальной мощности будет означать ограничение максимального тока. Похоже имелось ввиду ограничивать по току выход пида оборотов. Если ток превышает максимально допустимый - выдавать на мотор последнее значение пида оборотов до тех пор, пока ток не упадет ниже ограничения. Это как самый простой вариант.
  7. Аватар для Vitaly
    Цитата Сообщение от SergejK
    Если напряжение остается постоянным, то ограничение максимальной мощности будет означать ограничение максимального тока. Похоже имелось ввиду ограничивать по току выход пида оборотов. Если ток превышает максимально допустимый - выдавать на мотор последнее значение пида оборотов до тех пор, пока ток не упадет ниже ограничения. Это как самый простой вариант.
    Это бормашинка, а не вентилятор. Многое зависит от того, как юзер давит на вал. Если заморозить угол открытия симистора - будет полная фигня.

    И я настойчиво рекомендую перейти от рассуждений к блок-схемам или формулам. Это очень наглядный критерий, как отличить конструктивные вещи от болтовни или дилетанства с магическими константами.
  8. Аватар для SergejK
    Ну а если поконкретнее, как имеряются обороты в данном случае, прямо на валу сенсором или еще как? Измеряется ли вообще ток?
  9. Аватар для Vitaly
    Обороты меряются опосредованно, через BackEMF. Но считайте что таходатчиком, чтобы не отвлекаться на те вопросы, которые сейчас не имеют значения. Ток меряется, напряжение тоже. Схема тут.

    Постановка задачи такова:

    - Есть возможность померять все стандартные процессы, происходящие в моторе, включая скорость.
    - Нужно построить регулятор, который стабилизирует скорость и лимитирует мощность.
    - Настройка регулятора должна быть такая же простая, как просто у ПИД-а, который только регулирует скорость. По этим критериям двухконтурный ПИД мне не нравится, и он явно избыточен для данной задачи.
  10. Аватар для SergejK
    Избыточность не порок, если ускоряет процесс разработки и внедрения и позволяет получить желаемый результат. Отсюда мне видится вариант с двумя параллельными пидами и выбором по минимуму на выходе наиболее оптимальным. Пид ограничения мощности в силу простоты и некритичности к скорости реакции наверняка будет нормально работать на широком круге устройств со среднестатистическими настройками. Зато данная схема позволит осуществлять плавный переход от регулировки оборотов к ограничению мощности и наоборот и легко реализуема.
  11. Аватар для Vitaly
    Параллельные пиды действительно где-то ставят в реальной жизни?

    Везде где я встречал - только последовательное включение, а это довольно мутная хрень, если грамотно прорабатывать а не на соплях лепить. Было б просто - поставил бы классический вариант и не парился.
  12. Аватар для SergejK
    Параллельные они только в плане параллельной работы и вычислений результата. Регулировать же мотор в любой момент времени будет только один из них, в зависимости от того, что нужно регулировать в этот момент.
  13. Аватар для Vitaly
    Вы не могли бы ответить именно на мой вопрос, а не вообще ? Такая схема включения где-то встречается в реальной жизни? Меня смущает, что я не видел подобного ни в одной публикации, когда искал.
  14. Аватар для Lazy
    ШИМ с обратной связью по току? Или я что то не понимаю?
  15. Аватар для SergejK
    В реальной жизни, особенно если нужно сделать хорошую публикацию, для комбинирования многих входных сигналов часто используют калмановские алгоритмы. Только вот не думаю, что здесь это будет проще. На мой взгляд предложенный вариант выглядит вполне работоспособным.
  16. Аватар для Vitaly
    Цитата Сообщение от Lazy
    Или я что то не понимаю?
    Не понимаешь. Мне нужен регулятор, который работает от ДВУХ параметров. Скорости и мощности. ДВУХ, а не ОДНОГО. Но при этом такой же простой в настройке, как регуль, который трекает один параметр (только скорость). И мне нужна нормальная аналитическая запись, это обычно либо блок-схема из стандартных модулей, либо пачка формул - кому как удобнее.

    От слов "обратная связь по току" у меня каждый раз глазик дергается. Если интересно - загугли "BackEMF speed" и посмотри нормальные статьи, как определяют скорость мотора, вместо малограмотного творчества.
  17. Аватар для ADF
    Ну, по генераторному ЭДС обороты оценить, а нагрузку на валу (момент) проще всего через ток. Чтобы сопоставить: напряжение И ток - с парой: обороты И момент.

    Пршу простить за капитанство.
  18. Аватар для Taboo
    Я понял вашу проблему.
    Действительно, когда вникаешь, получаетса, что мощность зависит и от тока и от напряжения. Мощностью надо как-то управлять и хочется поставить ещё один ПИД.
    Но как Вы заметили - это сложно.
    Я бы в таком проекте, мощность ограничил бы аппаратно. Либо крутил напряжение. Либо поставил источник тока.
  19. Аватар для Панкратов Сергей
    Повторю- мотор сгорает не от подаваемой на него мощности, а от мощности, что на нем рассеивается.
    Мотору можно скормить и 300 вт и он не сгорит. Но в то же время может сгореть и при 30 вт поданной мощности.
    В первом случае подали 300, 270 ушло на вал, а 30 вт расселось на якоре и при хорошем обдуве ( обороты).
    А во втором случае подали всего 30, но мотор застопорен, обдува нет- все на якоре..
    Потому-
    Мотор палит не мощность на него подаваемая, а ток.
    Потому если просто то нужно просто брать интеграл по току за определенный промежуток времени (зависящий от тепловой инерции обмотки).
    Более верно и точнее - интеграл по току с учетом оборотов ( потому как охлаждение зависит от оборотов).
    Тут формула и написана, только словами.
    Обновлено 14.06.2018 в 11:25 [ARG:5 UNDEFINED]
  20. Аватар для amaora
    Самое простое это добавить поверх основного контура ограничение на уставку (заданное значение). Именно ограничение а не регулятор, то есть если мощность больше предела, то уменьшаем уставку до значения когда при текущем значении тока она станет не больше предела. И еще его нужно замедлить относительно основного контура регулирования, например взяв не мгновенное значение мощности а пропущенное через НЧ-фильтр. Иначе можно испортить работу контура, появятся колебания. Я так делаю вот здесь, но у меня совсем иначе построено управление.

    Да и про то, что сжигает мотор не потребляемая мощность а потери, все правильно говорят, надо ток ограничивать. Мощность ограничивается чтобы не навредить цепям питания, источнику.