Перейти к содержанию

    

Посоветуйте по ПИД-у и его автокалибровке для мелкого AC-коллекторника

Делаем регулятор со стабилизацией оборотов для бормашинки через противо-ЭДС (бездатчиковый). В принципе все пашет, но хотелось бы сделать автонастройку, чтобы не подбирать вручную константы для каждого мотора.

 

1.

 

Хочется сделать совсем в лоб, то есть подбирать коэффициенты регулятора до возникновения автоколебаний и т.п. Собственно вопрос - а как дешево и сердито эти автоколебания детектить? Желательно - с периодом.

 

Пока из простого в голову пришел такой вариант. Подаем на мотор напряжение без ПИД-а, и считаем дисперсию вычисленной скорости (фактически - уровень шумов). Далее подключаем ПИД, и если дисперсия больше - значит есть автоколебания. Есть варианты получше?

 

2.

 

AC-коллекторник неудобен тем, что у него нет тормоза. Поэтому, если я правильно понимаю, постоянная интегрирования будет зависеть не от времени разгона, а от времени торможения на холостых оборотах. При этом если бормашинкой начать что-нибудь точить, то появляется механический тормоз, и ПИД можно было бы сделать жестче. Но ведь никому не понравится, если на холостых оборотах девайс будет дергаться.

 

Можно этот момент как-то обойти, чтобы регулировка была оптимальной в широком диапазоне нагрузок?

 

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

 

Поделиться сообщением


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

1)Настраивать регулятор под каждый конкретный экземпляр двигателя, как правило, нет необходимости. Достаточно один раз найти нужные настройки и использовать их для всей серии.

2)В данном случае, из ПИД-регулятора можно исключить Д-компоненту. ПИ-регулятора будет достаточно.

3)Пример алгоритма полуавтоматической настройки ПИ-регулятора можете посмотреть в этом документе (раздел 2.7.2 стр 18): http://ellab.ru/assets/files/%D0%A0%D0%AD_AWD17_v0.1.pdf

4)По моим данным, оптимальные коэффициенты регулятора зависят не столько от нагрузки, сколько от текущего значения задаваемой скорости. А еще, от скорости работы петли обратной связи. В данном случае - от частоты измерения противо-ЭДС. Чем выше частоту удастся использовать, тем лучшего результата регулирования можно добиться.

5)Вот еще ссылка для вас: http://ellab.ru/serijnaya-produkcziya/borm...lkix-rabot.html

Изменено пользователем @Ark

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1)Настраивать регулятор под каждый конкретный экземпляр двигателя, как правило, нет необходимости. Достаточно один раз найти нужные настройки и использовать их для всей серии.

Вряд ли. PID надо перестраивать даже при изменении характера нагрузки.

Лучше использовать ADRC, там всего один параметр.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Наибольшее быстродействие в широком диапазоне нагрузок дает релейное управление, то есть пропорциональный коэффициент должен быть большим насколько это возможно, чтобы регулятор всегда был в насыщении. Но если где-то инерционность или задержки, то чистое релейное управление будет приводить к колебаниями. А шум в измерении скорости будет проходить обратно в управление. Поэтому нужна линейная область и дополнительное слагаемое которое будет медленно подстраиваться и выводить невязку в 0. Какие измерения такое и управление.

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самое правильное - управлять моментом, который квадратично зависит от тока. Сначала сделать такое. Без линеаризации тут плохо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А про алгоритм детектора автоколебаний какие-нибудь идеи есть?

 

Лучше использовать ADRC, там всего один параметр.

Спасибо. Ни разу не сталкивался. Почитаю.

 

Самое правильное - управлять моментом, который квадратично зависит от тока. Сначала сделать такое. Без линеаризации тут плохо.

Без линеаризации чего именно и зачем управлять моментом если юзеры хотят управлять оборотами?

Изменено пользователем p_v

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На случай если кому понадобится, сделали тупо подбором, методом половинного деления. Т.к. каждый шаг ~2 сек, и всего их около 6, то усложнять смысла нет.

  • P - подбираем по отсутствию автоколебаний. Сначала меряем дисперсию шума, и потом смотрим, чтобы она не росла.
  • I - т.к. автоколебаний не вызвать, то подбираем по отсутствию перерегулирования. Меняем скорость с 0.3 до 0.4 и смотрим чтобы не "заносило".

Начальное значение I определяем по времени разгона-останова (больше быть точно не может).

Ссылка на исходники в первом посте, если кому надо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
On 9/3/2018 at 3:03 PM, Tanya said:

Самое правильное - управлять моментом, который квадратично зависит от тока. Сначала сделать такое. Без линеаризации тут плохо.

Разве не линейно? В формуле силы ампера ток в первой степени

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Двигатель с последовательным возбуждением.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти