Биллинговая система Nodeny

Главная категория => Курилка => Тема начата: Efendy от 01 Сентября 2013, 18:53:11



Название: Самобалансирующая платформа
Отправлено: Efendy от 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 противоположные вещи - чтобы балансировался без нагрузки, не выходил в расколбас и чтобы очень резво сопротивлялся наклонам когда на нем стоит человек. Т.е. все поделки позволяют себя наклонять довольно легко, но это и создает некомфортность, хотя ездить можно.

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

Короче, кто шарит в этой теме (пид регуляторах, ну и подобном) прошу направить на путь истинный. Спрашивайте данные, буду давать данные


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 01 Сентября 2013, 19:52:02
а гироскоп где находится ? наверное надо в руль выносить - максимальный угол получится

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



Название: Re: Самобалансирующая платформа
Отправлено: Efendy от 01 Сентября 2013, 20:06:27
Не, гироскоп не нужно выносить в руль, там он будет шуметь


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 01 Сентября 2013, 20:22:49
Не, гироскоп не нужно выносить в руль, там он будет шуметь
в противном случае нужен очень точный
так как изменение на 0.5 г  на плече в 1.5 уже будет ощутимо.
а шум это устранимо.
+ наверное можно использовать датчики на самом руле - вернее на поперечене руля, то-есть если приложить силу на штурвал то изменения вступят в силу только скажем через 0.5 сек если сила будет в 5кг ( цифры рассчитывать надо) (типа отключения автопилотов)


Название: Re: Самобалансирующая платформа
Отправлено: Efendy от 01 Сентября 2013, 20:55:07
Проблема не в гироскопе. Он довольно точный, + акселерометр подкорректирует его значения. Фишка именно в том, что ПИД управлятор двигателями не может реализовать то, что мы хотим получить: жесткую реакцию без перелета как при пассажире, так и без него


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 01 Сентября 2013, 22:31:52
сам пид легко раскачать ...
если нарисовать диаграмму пида то легко увидеть...
да и дело не в точности а в угловой скорости
но.. может просто по тел по общатся
я просто когда-то занимался разработкой пром автоматики ( это как бы моя специальность.... АСУТП)


Название: Re: Самобалансирующая платформа
Отправлено: sov от 02 Сентября 2013, 07:29:02
Проблема не в гироскопе. Он довольно точный, + акселерометр подкорректирует его значения. Фишка именно в том, что ПИД управлятор двигателями не может реализовать то, что мы хотим получить: жесткую реакцию без перелета как при пассажире, так и без него
А ваш ПИД инерцию учитывает? Чтобы не было перелёта, при подходе к расчётной точке равновесия надо не просто уменьшать управляющее воздействие, а заранее включать его в обратном направлении, пока система под действием инерции не сместится в точку равновесия.


Название: Re: Самобалансирующая платформа
Отправлено: Efendy от 02 Сентября 2013, 07:45:53
ser970, я бы хотел не по телефону, а здесь обсудить, чтобы больше человек приняло участие. А то мы уже спрашивали даже преподавателя, но там вода пошла. Например, кривая разгона. Ведь она будет разная под нагрузкой и без нее - когда человек стоит на платформе и нет.

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

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

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

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

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


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

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


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 02 Сентября 2013, 08:31:29
ser970, я бы хотел не по телефону, а здесь обсудить, чтобы больше человек приняло участие. А то мы уже спрашивали даже преподавателя, но там вода пошла. Например, кривая разгона. Ведь она будет разная под нагрузкой и без нее - когда человек стоит на платформе и нет.
датчик давления на платформе

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


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


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





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


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


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


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 02 Сентября 2013, 18:54:05
пид это гибридный регулятор.
функция П  Wп(s) = K1. пропорциональный
функция И  Wи(s) = К0/s. интегральный.
функция Д  Wд(s) = К2*s. диф.
можно использовать в любом сочетании.


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

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

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

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

поэтому пид в чистом виде тут не пойдет (ихмо)   


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 02 Сентября 2013, 19:31:57
интересно какие датчики там стоят ? 
гироскоп какой (механика или електроника ?)?


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 02 Сентября 2013, 20:51:56
хм использую только П  получается довольно интересно

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

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

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

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


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 08 Сентября 2013, 00:07:21
чуть подумал тут...
частный и самый простой случай на рис.
но нужно .
1.измерять скорость изменения сигнала от гироскопа и изменять время заряда-разряда кондера.
что даст довольно сильное противодействие при кратком качании
2.при критических углах разница должна быть возрастать геометрически.
что не позволит упасть - так как рычаг нельзя  будет наклонить больше чем критический угол.
втоже время при возврате не будет сильного  колебания .

вместо кондера использовать выход мк .
а вообще задачка очень интересная.


Название: Re: Самобалансирующая платформа
Отправлено: Efendy от 08 Сентября 2013, 09:46:57
Не, железной схемой управления врядли можно добиться всех требований. По крайней мере запрограммировать легче и быстрее. Мы уже испробовали несколько вариантов. В чем-то лучше китайского сегвея, в чем-то хуже. Но все все равно надо совершенствовать


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 08 Сентября 2013, 11:47:44
Не, железной схемой управления врядли можно добиться всех требований. По крайней мере запрограммировать легче и быстрее. Мы уже испробовали несколько вариантов. В чем-то лучше китайского сегвея, в чем-то хуже. Но все все равно надо совершенствовать
я и не сказал что чисто железкой.
выход ОУ на вход АЦП
вместо кондера выход ЦАП
притом функции будут разные от условий - скорости нарастания, угла наклона и прочего. одной функцией не обойтись. по тел проще объяснятся...


Название: Re: Самобалансирующая платформа
Отправлено: Efendy от 07 Ноября 2013, 01:48:50
Давно не писал сюда - сгорела платка управления двигателем, поэтому ничего не делал пока ждал ее почти 2 месяца. Пару дней испытаний и таки я только что добился приемлемого результата! Как и подозревал - ПИД регулятор не катит. Д-составляющая слишком реагирует на шумы, причем на те, которые сама и создает, в итоге система если и не идет в расколбас, то на двигатели подается резкоменяющийся по амплитуде сигнал, что убивает механику к черту.

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

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

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

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

Для решения этой проблемы, скорее всего придется снимать скорость с которой вращаются колеса (напряжение, которое мы подаем на колеса не говорят нам о скорости их вращения, вау)


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 07 Ноября 2013, 08:59:28
вы скорее всего используете упрощенные формулы.
в регуляторах есть интегрирующие и демпферные цепочки.+ задержка на сам управляющий элемент.


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 08 Ноября 2013, 01:14:15
и кстати надо кроме скорости измерять еще и массу ( от нее тоже будет зависеть инерция и угол места) .
массу можно вычислять используя силу тока при старте (учитывая угол наклона дорожного полотна (лучше наверное использовать жидкостные датчики).   


Название: Re: Самобалансирующая платформа
Отправлено: Efendy от 08 Ноября 2013, 02:22:14
На самом деле, у меня очень большое подозрение, которое подтверждается опытным путем, что изначальная цель поставлено неверно. Я как и все пошел по неверному пути. Все считают, что цель - это привести платформу в вертикальное состояние. ПИД как раз подходит для этого - он старается максимально быстро достичь минимального отклонения. В этом-то и ошибка! В вертикальное состояние приводит человек! Собственно, как и в любое другое - наклон в любую сторону на любой угол. А цель сегвея - удержать систему в равновессии именно на том угле, на котором он оказался. Т.е. у нас нет точки, к которой мы стремимся привести систему. Вернее, она есть, но это второстепенная задача, возможно даже побочная от главной, т.е. при решении основной проблемы заработает автоматом.

После того как я добавил фильтр низких частот на выходе, система стала работать еще лучше. Я уже могу выполнять такие финты, что раньше и не снились. С другой стороны, есть проблемы выхода системы из под контроля. Думаю над вариантами решений.


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 08 Ноября 2013, 11:13:23
так я же об этом и говорил. регурятор должен сопротивляться любому изменению положения. чем больше изменения тем сильнее сопротивление. грубо говоря первоначально за точку отсчета принимается вертикаль. наклон в перед на 5 г . через какое то время точка отсчета станет не 0 а 4г .
+ масса тела(измерять можно только первоначально ) + скорость + уровень наклона дороги. 


Название: Re: Самобалансирующая платформа
Отправлено: Efendy от 08 Ноября 2013, 12:31:11
Если бы было все так просто, то у нас рынок был бы заполонен дешевыми сегвеями. Масса человека играет роль, но знать ее значение недостаточно - у тебя может быть сегвей отклонен вперед, а ты в этот момент переместил центр тяжести тела назад. Что подумает сегвей? Угол положительный пока еще - нужно ебошить двигатели назад. В итоге ты еще больше сваливаешься назад. Хоть это ПИД алгоритм и попалит через несколько циклов, но будет уже поздно. Если ездить аккуратно, то пид работает почти идеально, но как только ты начинаешь вытворять финты, например резко вытянул руки и наклонил, а в это время стоишь вертикально или всем телом надавил - это разные вещи, для них компенсирующие усилия отличаются в разы.

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


Название: Re: Самобалансирующая платформа
Отправлено: ser970 от 08 Ноября 2013, 14:40:39
Масса человека играет роль, но знать ее значение недостаточно - у тебя может быть сегвей отклонен вперед, а ты в этот момент переместил центр тяжести тела назад. Что подумает сегвей?
если изменить центр тяжести то изменится наклон - ось то одна.

Ты бы не сдвинулся с места, поскольку чем больше ты давил бы, тем больше ощущал сопротивление, в идеале 1 к 1, как в стенку давить
чуть не так
для отклонения на 5г нужна сила скажем в 2кг  - через . отклонил на 5 кг сила сопротивления упала до 1кг через 0.5сек .  теперь что бы вернуть назад надо приложить обратную силу .
для изменения в пере еще на 5г нужна опять сила в 2кг .
при этом ручка и еще будет опорой.


кстати  самобалансирующихся систем море - ну например дуло танка (ну не т34).
да и автопилоты ...
   


Название: Re: Самобалансирующая платформа
Отправлено: Efendy от 01 Июня 2015, 20:05:27
Если кому интересно, то я в последние несколько дней вернулся к работе над сегвеем - можете посмотреть видос, заодно будете знать как выгляжу (вернее как выглядит моя спина):

https://www.youtube.com/watch?v=lqjJI2QUtmM