roboforum.ru

Технический форум по робототехнике.

Стабилизация оборотов DC мотора

Стабилизация оборотов DC мотора

Aseris » 17 апр 2014, 13:47

Вопрос такой: Есть мотор который управляется ШИМ, нагрузка мотор может вариироватся. Напряжение питания тоже варируется. Есть энкродер. Вопрос куда копать по поводу поиска алгоритма управления. Простой PID не катит ибо модель поведения мотора меняется от напряжения, PID начинает колбасить при изменении напряжения питания :no: .

Время выхода на заданые обороты 0.1-0.5s :cry:

Re: Стабилизация оборотов DC мотора

Duhas » 17 апр 2014, 14:17

ну дык может мерить напряжение и корректировать ПИД?

Re: Стабилизация оборотов DC мотора

Aseris » 17 апр 2014, 14:23

Угу там минимум 5 параметров для "тонкой" настройки методом тыка.. :( напряжение меняется от 8 до 24В... творить таблицу коефициентов от напряжения мне кажется унылым... Пороще получается модель сделать и полиномом запихнуть...

Хотя може я неправ и незнаю класического решения.

Re: Стабилизация оборотов DC мотора

Duhas » 17 апр 2014, 14:34

в классических случаях напряжение питания квазипостоянно.. на самом деле возможен вариант следующий, ограничить ШИМ при максимальном питании так, чтобы скорость максимальная была как при минимальном питании и 100% ШИМ

Re: Стабилизация оборотов DC мотора

Aseris » 17 апр 2014, 15:35

Хм вроде бы разобрался, пока в первом приближении заработало, но пид коефц-ты вышли совсем наоборот чем рекомендовалось в мануалах на пид, D компонента самой толстой оказалась...
iGain ((float) 0.00005) /*integral gain*/
pGain ((float) 0.01) /*proportional gain*/
dGain ((float) 0.1) /*derivative gain*/

Еще выяснил что колбасило изза транзистора в H-мосте.. он почемуто горит но постепенно, буду искать косяк в схеме :(

P.S. В первую очередь нужно было охрану по току писать а не алгоритм регулеровки. Лабораторный бп не успевает... :cry:

Re: Стабилизация оборотов DC мотора

Radist » 17 апр 2014, 17:09

А может быть есть смысл посмотреть в сторону каскадного регулятора? По оборотам и напряжению.

Re: Стабилизация оборотов DC мотора

Aseris » 17 апр 2014, 18:06

Хм всмысле каскадный?

дать PWM=f(V,E,target) или PWM=f(V,f(E,target))?

Re: Стабилизация оборотов DC мотора

tegauss » 18 апр 2014, 00:59

А если взглянуть на это так: ПИД, по сути, на выходе дает мощность, которую требуется подать на мотор. Эта мощность зависит от величины питающего напряжения и от скважности. Если найти это соотношение, то при наличии мощности (то, что выдает ПИД) и величины питающего напряжения (измеряем) можно найти требуемую скважность для ШИМ.

Если глупость сказал, извините :D

Re: Стабилизация оборотов DC мотора

linvinus » 18 апр 2014, 12:59

Aseris писал(а):Вопрос такой: Есть мотор который управляется ШИМ, нагрузка мотор может вариироватся. Напряжение питания тоже варируется. Есть энкродер. Вопрос куда копать по поводу поиска алгоритма управления. Простой PID не катит ибо модель поведения мотора меняется от напряжения, PID начинает колбасить при изменении напряжения питания :no: .

Время выхода на заданые обороты 0.1-0.5s :cry:

Подобный алгоритм мы рассматривали тут
forum87/topic7318-255.html#p298989

какой драйвер двигателя используете?
ШИМ разные бывают.

ПИД хорошо отрабатывает любые изменения нагрузки, главное частоту итераций выбрать как можно большей.
при заданных 100ms-500ms частоту желательно выбрать в 10 раз больше т.е. 1/10ms - 1/50ms но лучше как можно больше (зависит от ресурсов контроллера и вашей щедрости :) ).
Но тут много разных но, главное но - разрешение энкодера, сколько импульсов будет при минимальной необходимой скорости за 10ms?

Для стабилизации оборотов можно использовать не только энкодер но и противо ЭДС, если обороты двигателя, для вашего рабочего диапазона, достаточно высоки.
Плюс в том что это аналоговая линейная обратная связь, т.е. данные доступны в любой момент времени и их достаточно легко получить, сигнал с делителя усиливается на ОУ и далее в АЦП.


Rambler\'s Top100 Mail.ru counter