Вы можете попробовать отменить фильтр. Это может устранить задержку, но также увеличивает высокочастотный шум. После этого вы можете попытаться управлять роботом на основе новой оценки курса. Чтобы сделать это, вы должны поэкспериментировать с параметрами фильтра нижних частот. Например, в дискретное время вы можете найти:
где θ
θ^( т ) = а0θ ( t ) + a1θ ( t - 1 ) + ⋯ + aКθ ( t - k )
представляет собой расчетный заголовок (выход компаса) в момент времени Т , θ - фактический курс (основная правда) в момент времени t .θ^( т )TθT
Вы можете найти параметры , выполнив эксперимент, в котором вы измеряете основную правду, используя другие внешние средства. Принимая во внимание п + K + 1 выборки, то есть это
уравнение: [ & thetas ( к ) ⋮ & thetas ; ( к + п ) ] = [ & thetas ; ( к ) & thetas ( кaян + к + 1
⎡⎣⎢⎢⎢θ^( к )⋮θ^( к + п )⎤⎦⎥⎥⎥= ⎡⎣⎢⎢θ ( к )⋮θ ( k + n )θ ( k - 1 )⋮θ ( k + n - 1 )⋯⋯θ ( 0 )⋮θ ( н )⎤⎦⎥⎥⎡⎣⎢⎢⎢⎢a0a1⋮aК⎤⎦⎥⎥⎥⎥
⎡⎣⎢⎢⎢⎢a0a1⋮aК⎤⎦⎥⎥⎥⎥= ⎡⎣⎢⎢θ ( к )⋮θ ( k + n )θ ( k - 1 )⋮θ ( k + n - 1 )⋯⋯θ ( 0 )⋮θ ( н )⎤⎦⎥⎥+⎡⎣⎢⎢⎢θ^( к )⋮θ^( к + п )⎤⎦⎥⎥⎥
M+MКтак что вы, наверное, просто догадаетесь. Для бонусных баллов это предполагает, что шум является белым и независимым, но вы можете сначала отбелить его, чтобы устранить смещение, и, следовательно, улучшить свою оценку параметров.
Вы можете преобразовать это в передаточную функцию (также известную как Z-преобразование в дискретной временной области):
Θ^( з)Θ ( г)= а0+ а1Z- 1+ . , , + аКZ- к
θ¯( т )
Θ¯( з)Θ^( з)= 1a0+ а1Z- 1+ ⋯ + aКZ- к
Преобразование обратно во временную область:
a0θ¯( т ) + а1θ¯( т - 1 ) + ⋯ + аКθ¯( t - k ) = θ^( т )
θ¯( t ) = θ^( т ) - а1θ¯( т - 1 ) - ⋯ - аКθ¯( т - к )a0
тогда мы можем использовать θ¯
Это будет очень шумно, так что вы можете по-прежнему ставить θ¯
Вышеупомянутое решение все еще не лучший способ. Оценка шума может быть не очень полезной. Если мы поместим это в уравнение пространства состояний, мы можем разработать фильтр Калмана и контроллер обратной связи с полным состоянием, используя LQR (линейный квадратичный регулятор). Комбинация фильтра Калмана и контроллера LQR также известна как контроллер LQG (линейный квадратичный гауссов) и использует восстановление с циклическим переносом для получения хорошего контроллера.
Чтобы сделать это, придумайте (в дискретном времени) уравнения пространства состояний:
Икс⃗ ( t ) = A x⃗ ( t - 1 ) + B u⃗ ( т - 1 )Y⃗ ( т ) = СИкс⃗ ( т )
Икс⃗ ( т ) = ⎡⎣⎢⎢⎢⎢θ ( т )θ ( т - 1 )⋯θ ( t - k )⎤⎦⎥⎥⎥⎥= ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢A110⋮00A201⋮00⋯⋯⋯⋯⋯000⋮10000⋮01000⋮00⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥Икс⃗ ( т - 1 ) + ⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢В0В10⋮00⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥U⃗ ( т - 1 )
Y⃗ ( t ) = [ θ^( т )] = ⎡⎣⎢⎢⎢⎢a0a1⋮aК⎤⎦⎥⎥⎥⎥Икс⃗ ( т )
U⃗ ( т - 1 )A0A1В0В1ВA
Qоро
QсрсQс= ⎡⎣⎢⎢⎢⎢10⋮000⋮000⋮0⋯⋯⋯00⋮0⎤⎦⎥⎥⎥⎥рс= [ 1 ]J= ∑ ( х⃗ TQ x⃗ + ты⃗ TR U⃗ )
Затем вы просто вводите его через алгебраическое уравнение Риккати с дискретным временем:
п= Q + AT( P- ПB ( R + BTпБ )- 1ВTп) А
и решить для положительно определенной матрицы п
Таким образом, ваш закон о контроле может быть задан:
U⃗ ( т ) = - К( х⃗ ( т ) - х⃗ р е ф( т ) )
К= ( R + BTпБ )- 1( БTпА )
θ¯ пропустите через фильтр нижних частот (хотя и не обязательно с таким большим эффективным временем задержки). Это потому, что, хотя LQR гарантированно стабильно, как только вы используете фильтр Калмана, гарантия теряется.
Qо= Q0+ q2B VВTQ0QВВ= ЯQQ→ ∞Qо матрица становится не настроенной, что означает, что она становится менее оптимальной.
QрсQс ), чтобы замедлить контроллер LQR.
Гироскоп - это простой ответ. Я всегда слышал, гироскоп для коротких измерений, компас для длинных. И реально чашка фильтра Каллмана между ними большую часть времени. Цена платы 6DOF gyro / acc в наши дни составляет менее 20 долларов, слишком дешево, чтобы ее не использовать.
Одно время я работал через чужой фильтр Каллмана . и получил это работает. Фильтр Каллмана на самом деле является скорее подходом, а не точной реализацией, и в случае гироскопа конечный результат не требует использования математической математики. Это делает код намного проще.
источник