Jump to content

    

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

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

 

1.

 

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

 

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

 

2.

 

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

 

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

 

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

 

Share this post


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

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

Edited by @Ark

Share this post


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

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

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

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

 

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

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

Edited by p_v

Share this post


Link to post
Share on other sites

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

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

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

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

Share this post


Link to post
Share on other sites
On 9/3/2018 at 3:03 PM, Tanya said:

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

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now