roboforum.ru

Технический форум по робототехнике.
Текущее время: 19 апр 2025, 15:01

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Стабилизация оборотов DC мотора
СообщениеДобавлено: 17 апр 2014, 13:47 
Не в сети
Аватара пользователя

Зарегистрирован: 01 сен 2009, 14:58
Сообщения: 1142
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python
Вопрос такой: Есть мотор который управляется ШИМ, нагрузка мотор может вариироватся. Напряжение питания тоже варируется. Есть энкродер. Вопрос куда копать по поводу поиска алгоритма управления. Простой PID не катит ибо модель поведения мотора меняется от напряжения, PID начинает колбасить при изменении напряжения питания :no: .

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Стабилизация оборотов DC мотора
СообщениеДобавлено: 17 апр 2014, 14:17 
Не в сети
Аватара пользователя

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

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Стабилизация оборотов DC мотора
СообщениеДобавлено: 17 апр 2014, 14:23 
Не в сети
Аватара пользователя

Зарегистрирован: 01 сен 2009, 14:58
Сообщения: 1142
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python
Угу там минимум 5 параметров для "тонкой" настройки методом тыка.. :( напряжение меняется от 8 до 24В... творить таблицу коефициентов от напряжения мне кажется унылым... Пороще получается модель сделать и полиномом запихнуть...

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Стабилизация оборотов DC мотора
СообщениеДобавлено: 17 апр 2014, 14:34 
Не в сети
Аватара пользователя

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

_________________
«Как сердцу выразить себя? … Мысль изреченная есть ложь!»
В этом мире меня подводит доброта и порядочность...
"двое смотрят в лужу, один видит лужу, другой отраженные в ней звезды"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Стабилизация оборотов DC мотора
СообщениеДобавлено: 17 апр 2014, 15:35 
Не в сети
Аватара пользователя

Зарегистрирован: 01 сен 2009, 14:58
Сообщения: 1142
Откуда: Чехия
прог. языки: C/С++, VHDL, Verilog, ASM, Python
Хм вроде бы разобрался, пока в первом приближении заработало, но пид коефц-ты вышли совсем наоборот чем рекомендовалось в мануалах на пид, 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 мотора
СообщениеДобавлено: 17 апр 2014, 17:09 
Не в сети
Аватара пользователя

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Стабилизация оборотов DC мотора
СообщениеДобавлено: 17 апр 2014, 18:06 
Не в сети
Аватара пользователя

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Стабилизация оборотов DC мотора
СообщениеДобавлено: 18 апр 2014, 00:59 
Не в сети

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Стабилизация оборотов DC мотора
СообщениеДобавлено: 18 апр 2014, 12:59 
Не в сети
Аватара пользователя

Зарегистрирован: 29 апр 2011, 12:37
Сообщения: 1672
Откуда: Москва
прог. языки: С
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
Делать надо хорошо - плохо получится само!


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 9 ] 

Часовой пояс: UTC + 4 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO