Биллинговая система Nodeny
03 Мая 2024, 20:14:34 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Прекращена поддержка версии Nodeny 49
 
   Начало   Помощь Поиск Войти Регистрация  
Страниц: [1] 2
  Печать  
Автор Тема: Самобалансирующая платформа  (Прочитано 9828 раз)
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« : 01 Сентября 2013, 18:53:11 »

Нужна помощь тех, кто шарит в теории автоматического управления. Есть segway - самобалансирующийся самокат: http://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D0%B3%D0%B2%D0%B5%D0%B9

Мне достался не оригинальный, а китайская поделка, причем мозги в нем благополучно сгорели, так что пришлось взять свои поставить платку ардуино с гироскопом и акселерометром и залить туда свою прогу.

На самом деле, интернет кишит инфой о таких самобалансирующихся платформах https://www.google.com.ua/#q=%D1%81%D0%B0%D0%BC%D0%BE%D0%B1%D0%B0%D0%BB%D0%B0%D0%BD%D1%81%D0%B8%D1%80%D1%83%D1%8E%D1%89%D0%B0%D1%8F%D1%81%D1%8F+%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D0%B0

Если коротко, то весь процесс: акселерометр + гироскоп через комплиментарный или Калмана фильтр, на ПИД управлятор и вуаля - все работает.

Работает, да судя по многочисленным видео хреново. Далеко всем поделкам до оригинального Сигвея. Далеко и моей. Ездить можно, но не так кайфно как на оригинальном (не даром на разработку было потрачено кажется 10 лет).

Подозреваю, что все дело в ПИД регуляторе http://ru.wikipedia.org/wiki/%D0%9F%D0%98%D0%94-%D1%80%D0%B5%D0%B3%D1%83%D0%BB%D1%8F%D1%82%D0%BE%D1%80

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

У меня жуткое подозрение, что либо в сегвее юзается не ПИД регулятор, либо значительно модифицированный.

Короче, кто шарит в этой теме (пид регуляторах, ну и подобном) прошу направить на путь истинный. Спрашивайте данные, буду давать данные
« Последнее редактирование: 01 Сентября 2013, 19:19:39 от Efendy » Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #1 : 01 Сентября 2013, 19:52:02 »

а гироскоп где находится ? наверное надо в руль выносить - максимальный угол получится

да временные задержки нужны наверное...
и наверное дискретный нужен.

Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #2 : 01 Сентября 2013, 20:06:27 »

Не, гироскоп не нужно выносить в руль, там он будет шуметь
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #3 : 01 Сентября 2013, 20:22:49 »

Не, гироскоп не нужно выносить в руль, там он будет шуметь
в противном случае нужен очень точный
так как изменение на 0.5 г  на плече в 1.5 уже будет ощутимо.
а шум это устранимо.
+ наверное можно использовать датчики на самом руле - вернее на поперечене руля, то-есть если приложить силу на штурвал то изменения вступят в силу только скажем через 0.5 сек если сила будет в 5кг ( цифры рассчитывать надо) (типа отключения автопилотов)
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #4 : 01 Сентября 2013, 20:55:07 »

Проблема не в гироскопе. Он довольно точный, + акселерометр подкорректирует его значения. Фишка именно в том, что ПИД управлятор двигателями не может реализовать то, что мы хотим получить: жесткую реакцию без перелета как при пассажире, так и без него
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #5 : 01 Сентября 2013, 22:31:52 »

сам пид легко раскачать ...
если нарисовать диаграмму пида то легко увидеть...
да и дело не в точности а в угловой скорости
но.. может просто по тел по общатся
я просто когда-то занимался разработкой пром автоматики ( это как бы моя специальность.... АСУТП)
Записан
sov
Постоялец
***

Карма: 0
Offline Offline

Сообщений: 101


Просмотр профиля
« Ответ #6 : 02 Сентября 2013, 07:29:02 »

Проблема не в гироскопе. Он довольно точный, + акселерометр подкорректирует его значения. Фишка именно в том, что ПИД управлятор двигателями не может реализовать то, что мы хотим получить: жесткую реакцию без перелета как при пассажире, так и без него
А ваш ПИД инерцию учитывает? Чтобы не было перелёта, при подходе к расчётной точке равновесия надо не просто уменьшать управляющее воздействие, а заранее включать его в обратном направлении, пока система под действием инерции не сместится в точку равновесия.
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #7 : 02 Сентября 2013, 07:45:53 »

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

Насчет угловой скорости - как раз она и есть дифференциальная составляющая.

sov, да, заранее включается компенсация как раз этой дифференциальной составляющей.

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

Кстати, ответьте еще на вопросы:

- насколько ПИД оперативный? может я в принципе на нем не смогу сделать очень большую реакцию?
- учитывает ли ПИД, что условия могут значительно меняться, я имею ввиду, что на платформе может быть вес от нуля до, скажем, 80кг.
- есть ли смысл в точке баланса не так сильно пытаться привести баланс к идеалу, т.е. не пытаться сбалансировать при минимальном отклонении, чтобы механику не расшатывать?
Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #8 : 02 Сентября 2013, 07:56:23 »

Да, и еще. Я, конечно, ламер в этой области, но зато у меня есть мозг. Объясните мне. Вот я наклоняю конструкцию, чем у меня больше вес, тем больше угловая скорость. На угловую скорость у меня реагируют интегральная и дифференциальная составляющие. Интегральная мне особо не поможет ибо она накапливает ошибку, поэтому коэффициент там маленький и она быстро не вернет нас к нулевой точке. По логике, на резкое изменение угла (большая угловая скорость) больше всего отреагирует дифференциальная составляющая, которая как я говорил сначала ухудшит ситуацию.

Я даже делал такой прикол: переворачивал формулу с ног на голову - менял знак у дифференциальной составляющей, подстраивал коэффициенты и пропускал выход через фильтр низких частот. Работало не хуже чем сейчас. Из чего делаю вывод, что ПИД у меня работает через пень колоду. И никакими коэффициентами я не могу получить то, что хочу
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #9 : 02 Сентября 2013, 08:31:29 »

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

Насчет угловой скорости - как раз она и есть дифференциальная составляющая.
не совсем так.


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


там расчеты надо делать с учетом массы на концы платфрмы
будут довольно сложны.
  
большую реакцию можно получить только вынести гироскоп на большее расстояние , при расчетах надо учитывать динамику и технику двигательного скелета человека.
там по ходу не все так просто
 



Записан
Efendy
Администратор
Спец
*****

Карма: 138
Offline Offline

Сообщений: 4782



Просмотр профиля
« Ответ #10 : 02 Сентября 2013, 09:49:49 »

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


Насчет угловой скорости - как раз она и есть дифференциальная составляющая.
не совсем так.
Ну посмотри на формулу в том несметном количестве статей про ПИД: дифф составляющая = текущая ошибка - прошлая. Если на текущей итерации у нас угол 10 градусов, а на следующей 15? итого 5 градусов за какое-то время. А чем у нас являются градусы на время? Угловой скоростью


большую реакцию можно получить только вынести гироскоп на большее расстояние , при расчетах надо учитывать динамику и технику двигательного скелета человека.
там по ходу не все так просто
Ну так даже китайский сегвей работал без этих вещей
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #11 : 02 Сентября 2013, 18:54:05 »

пид это гибридный регулятор.
функция П  Wп(s) = K1. пропорциональный
функция И  Wи(s) = К0/s. интегральный.
функция Д  Wд(s) = К2*s. диф.
можно использовать в любом сочетании.


берем только  п функцию - получаем  отклонили на 5 град  = получили величину скажем 10в   y=2x
вот вам и сопротивление при отклонении

сложно писать тут нету мат знаков... 

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

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

поэтому пид в чистом виде тут не пойдет (ихмо)   
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #12 : 02 Сентября 2013, 19:31:57 »

интересно какие датчики там стоят ? 
гироскоп какой (механика или електроника ?)?
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #13 : 02 Сентября 2013, 20:51:56 »

хм использую только П  получается довольно интересно

надо не только вычислять коррекцию ,но и менять точку отсчета.

то есть  при наклоне  на +5гр  от нуля   если в течении 2сек не уменьшается наклон то изменяем 0 на +4  = то есть ошибка уменьшится до 1 .

должно получится.

з.ы.
даже с пид получится если менять не только коррекцию, но и точку отсчета. отставлять минимальное значение ( что бы небыло колебаний и могло вернутся назад) то есть всегда получается при отклониении от нуля какая-то константа силы.  
  
з.ы не умею я так обьяснять без ручки и бумаги
Записан
ser970
NoDeny
Спец
*

Карма: 70
Offline Offline

Сообщений: 1323

262462619
Просмотр профиля Email
« Ответ #14 : 08 Сентября 2013, 00:07:21 »

чуть подумал тут...
частный и самый простой случай на рис.
но нужно .
1.измерять скорость изменения сигнала от гироскопа и изменять время заряда-разряда кондера.
что даст довольно сильное противодействие при кратком качании
2.при критических углах разница должна быть возрастать геометрически.
что не позволит упасть - так как рычаг нельзя  будет наклонить больше чем критический угол.
втоже время при возврате не будет сильного  колебания .

вместо кондера использовать выход мк .
а вообще задачка очень интересная.
Записан
Страниц: [1] 2
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.20 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!