roboforum.ru

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

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

Резисторы, транзисторы, конденсаторы, микросборки, чип компоненты ...
Вопросы согласования управляющих модулей с периферией.

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

Сообщение Aseris » 17 апр 2014, 13:47

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

Время выхода на заданые обороты 0.1-0.5s :cry:
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

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

Сообщение Duhas » 17 апр 2014, 14:17

ну дык может мерить напряжение и корректировать ПИД?
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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

Сообщение Aseris » 17 апр 2014, 14:23

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

Хотя може я неправ и незнаю класического решения.
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

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

Сообщение Duhas » 17 апр 2014, 14:34

в классических случаях напряжение питания квазипостоянно.. на самом деле возможен вариант следующий, ограничить ШИМ при максимальном питании так, чтобы скорость максимальная была как при минимальном питании и 100% ШИМ
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"
Аватара пользователя
Duhas
 
Сообщения: 6338
Зарегистрирован: 15 сен 2007, 13:03
Откуда: Красноярск
прог. языки: ASM(МК), C(PC)
ФИО: Гагарский Андрей Александрович

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:
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

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

Сообщение Radist » 17 апр 2014, 17:09

А может быть есть смысл посмотреть в сторону каскадного регулятора? По оборотам и напряжению.
Аватара пользователя
Radist
 
Сообщения: 2253
Зарегистрирован: 01 июл 2009, 08:59
Откуда: Екатеринбург
прог. языки: асемблер AVR

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

Сообщение Aseris » 17 апр 2014, 18:06

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

дать PWM=f(V,E,target) или PWM=f(V,f(E,target))?
Аватара пользователя
Aseris
 
Сообщения: 1142
Зарегистрирован: 01 сен 2009, 14:58
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python

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

Сообщение tegauss » 18 апр 2014, 00:59

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

Если глупость сказал, извините :D
tegauss
 
Сообщения: 14
Зарегистрирован: 02 дек 2011, 22:02
Откуда: Дубна
прог. языки: C, Delphi

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?

Для стабилизации оборотов можно использовать не только энкодер но и противо ЭДС, если обороты двигателя, для вашего рабочего диапазона, достаточно высоки.
Плюс в том что это аналоговая линейная обратная связь, т.е. данные доступны в любой момент времени и их достаточно легко получить, сигнал с делителя усиливается на ОУ и далее в АЦП.
R3 forum87/topic15337.html
R2 roboforum.ru/forum102/topic13980.html
R4 roboforum.ru/post336339.html#p336339
Делать надо хорошо - плохо получится само!
Аватара пользователя
linvinus
 
Сообщения: 1672
Зарегистрирован: 29 апр 2011, 12:37
Откуда: Москва
прог. языки: С


Вернуться в Электроника, электротехника

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 9

cron