Вектор магнитного поля

Вектор магнитного поля

Сообщение artclonic » Пн июн 25, 2018 12:11 pm

Добрый день, Нуждаюсь в написании алгоритма показаний значений магнитного поля земли в зависимости от наклона датчика.
Имею:
1. Датчик измерения магнитного поля по трем осям X, Y, Z (три значения)
2. Значения углов наклона по трем осям данного датчика Xx, Yy, Zz (три значения)
В нормальных условиях (в чистом поле ) данная система "уравновешена"

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

Помогите решить такую прикладную задачу.
Вот в интернете нашел компенсацию углов наклона по одной оси - горизонтальной...Но как охватить все оси...*?
Вот математичекие (геометрические) выкладки
компенсации «показания на север» в зависимости от углов наклона…
H = atan(Y/X)
где H — угол отклонения стрелки компаса от северного направления;
X,Y — калиброванные значения магнитометра.
Решить проблемуотклонения в зависимости от наклона поможет геометрия. Нам нужно всего лишь повернуть магнитный вектор в систему координат, заданную инклинометром. Для этого, поочередно перемножим две матрицы косинусов на вектор:
Vcal2 = Ry*Rx*Vcal
где Vcal — магнитный вектор, очищенный от Hard и Soft искажений;
Rx и Ry — матрицы поворота вокруг осей X и Y;
Vcal2 — магнитный вектор, очищенный от влияния крена и тангажа.

Пригодная для программы контроллера формула будет иметь вид:
Xcal2 = Xcal*cos(pitch) + Ycal*sin(roll)*sin(pitch) + Zcal*cos(roll)*sin(pitch)
Ycal2 = Ycal*cos(roll) — Zcal*sin(roll)
H = atan2( -Ycal2, Xcal2 )
где roll и pitch — наклоны вокруг осей X и Y;
Xcal,Ycal,Zcal — вектор магнитометра (Vcal);
Ycal2, Ycal2 — калиброванные значения магнитометра (Zcal2 не считаем — он нам не пригодится);
H — угол между севером и стрелкой компаса.
artclonic
 
Сообщения: 1
Зарегистрирован: Пн июн 25, 2018 11:58 am

Вернуться в Векторы



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

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