2013-05-21 8 views
3

Я пытаюсь построить двухколесный балансировочный робот для удовольствия. У меня есть все аппаратное обеспечение, построенное и собранное, и я думаю, что он тоже закодирован. Я использую IMU с гироскопами и акселерометрами, чтобы найти угол наклона с дополнительным фильтром для сглаживания сигнала. Входной сигнал от IMU кажется довольно гладким, как и менее 0,7 отклонения + или - фактический угол наклона.Балансирующий робот Настройка ПИД-регулятора

Моя частота дискретизации IMU составляет 50   Гц, и я делаю PID расчет при 50   Гц тоже, который, я думаю, должен быть достаточно быстрым.

В основном, я использую библиотеку PID, найденную по адресу PID Library.

Когда я устанавливаю значение P на что-то низкое, колеса идут в правильном направлении.

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

Enter image description here

+1

Вам нужно сократить количество кода в вашем вопросе, никто не будет читать все это. Попробуйте сузить его, и вам будет намного легче помочь. Если потребуется больше, люди скажут вам, что им нужно. –

+0

Стивен, я нахожу ваш проект увлекательным! Я предполагаю, что ИДУ является Инерционным измерительным блоком? @JoachimPileborg выше правильно, много кода и сложно вывести логику, не зная о вашем оборудовании. Я вижу, вы начинаете с PID = 0,0,0. Мое подозрение эти значения должны быть разными. Когда P высокий, вы говорите, что колеса идут в неправильном направлении, и это звучит так, как будто ваша программная логика неисправна. Я предлагаю вам описать проект на веб-сайте, если возможно, затем разместите ссылку здесь. Я заинтересован. Удачи. – user2019047

+0

Спасибо @JoachimPileborg, я удалил код и добавил график, чтобы было легче увидеть, что я прошу. –

ответ

0

Если вы еще не сделали, я предлагаю вам сделать поиск на условиях Arduino PID (очевидно, предложение, но много людей, которые были на этом пути). Я помню, когда была написана эта библиотека PID, автор опубликовал довольно много учебников и т. Д. (example). Также я наткнулся на это PIDAutotuneLibrary.

Я написал свои собственные процедуры PID, но также имел чертову настройку времени и никогда не получал ее совершенно правильно.

1

Из графика видно, что ваша система нестабильна. Надеюсь, вы протестировали каждую подсистему своего робота, прежде чем сразу перейдете к настройке. Это означает, что как датчики, так и исполнительные механизмы реагируют должным образом и с приемлемой ошибкой. Как только каждая подтипа правильно калибруется для внешней ошибки. Вы можете начать настройку. Как только вы это сделаете, вы можете начать с действительного значения P (0.5), чтобы вначале достичь правильного времени отклика, вам нужно будет провести несколько испытаний здесь, они постепенно увеличивают I, чтобы сократить устойчивую ошибку состояния, если таковая имеется, и использовать только D при необходимости (в случае колебаний). Я бы посоветовал обращаться с P, I и D один за другим, а не с настройкой одновременно. Также во время тестирования вам необходимо будет постоянно контролировать данные датчика и привода, чтобы убедиться, что они находятся в допустимом диапазоне.

1

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

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

Я лично попробовал бы контроллер PD сначала, и если у вас возникнут проблемы с заданной точностью, я бы использовал PID, но просто помню, что если вы хотите получить дифференциальный коэффициент усиления в вашем контроллере (часть D), это чрезвычайно важно, чтобы у вас был очень плавный сигнал.

Кроме того, значения контроллера в значительной степени зависят от настроек вашего оборудования (распределение веса и веса робота, коэффициентов двигателя и уровней напряжения) и единиц, которые вы используете внутри вашего программного обеспечения для сигналов управления (например, mV V , градусов/радиан). Это подразумевает, что почти невозможно, чтобы кто-нибудь угадал правильные параметры для вас.

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

Если у вас есть опыт в теории управления, вы можете взглянуть на следующую статью и посмотреть, имеет ли она смысл для вас.

http://dspace.mit.edu/bitstream/handle/1721.1/69500/775672333.pdf

 Смежные вопросы

  • Нет связанных вопросов^_^