| Автор |
Съобщение |
|
marcuka68
Ранг: Ориентиран
Регистриран на: Пет Авг 07, 2009 4:58 pm Мнения: 273
|
 Изчисление на сумарно ускорение
Здравейте, може ли някои да ми помогне с изчисление на сумарното ускорение, под деиствието на сили по трите оси? Сензорът е АДХЛ345. Аз помня как се изчисляват двумерни сензори във физиката. Дали мога да го сметна на два пъти с два двумерни вектора?
А дали изобщо се налага да смятам такива работи?  Само данните за ускорението по трите оси дали не са достатъчна индикация за големината на ускорението? Доколкото помня и тригонометрия, грешката ще ми е макс. 50%, което не е малко.
|
| Сря Ное 24, 2010 12:30 pm |
|
 |
|
marcuka68
Ранг: Ориентиран
Регистриран на: Пет Авг 07, 2009 4:58 pm Мнения: 273
|
A1 = sqrt(Ax^2 + Ay^2)
A = sqrt(A1^2 + Az^2)
Това със сметки на двумерни вектори.
Преподавателят ми по физика ще ме набие, ако види какви ги пиша 
|
| Сря Ное 24, 2010 12:34 pm |
|
 |
|
marcuka68
Ранг: Ориентиран
Регистриран на: Пет Авг 07, 2009 4:58 pm Мнения: 273
|
Мисля, че се получи. В прикачения файл съм качил формулата, по която става изчислението на сумарното ускорение и пращането му по УСАРТ. Още не съм сигурен, ще я използвам ли, но, ако се наложи, ще трябва да пиша функция mySqrt(), че компилаторската много голяма.
|
| Сря Ное 24, 2010 3:27 pm |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
Ами да това е формулата за намиране на дължина на тримерен вектор. Иначе можеш да минеш и без да смяташ корен квадратен, а просто можеш да работиш с квадрата на дължината. Но дали това е възможно, зависи от това за какво ще го ползваш това ускорение.
|
| Сря Ное 24, 2010 10:33 pm |
|
 |
|
marcuka68
Ранг: Ориентиран
Регистриран на: Пет Авг 07, 2009 4:58 pm Мнения: 273
|
Не разбрах, с квадрата на дължината на кой от векторите да работя? А още и аз не знам колко точно ще ми трябва ускорението. Аз ли нещо него меря точно, но и в дейташийта пише Zero g bias +/- 40mg, ако не се лъжа, и стоиностите ми играят доста, дори с осредняване на 128 стоиности.
|
| Чет Ное 25, 2010 12:02 am |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
Ами с квадратната дължина на резултантното(сумарното) ускорение. Иначе и аз като съм ползвал акселерометри така играеха показанията. Средно аритметично не помага, единственото, което помогна е софтуерен цифров филтър, който реже високите честоти (т.е. рязките промяни).
|
| Чет Ное 25, 2010 2:15 am |
|
 |
|
marcuka68
Ранг: Ориентиран
Регистриран на: Пет Авг 07, 2009 4:58 pm Мнения: 273
|
Но нали, за да получа сумарното ускорение, изпозвам корен. Е ще видя как ще го смятам това по-нататък. Иначе гледам, че на блоковата схема на АДХЛ345 има цифров филтър, но изглежда е недостатъчен.
Благодаря за съдействието.
|
| Чет Ное 25, 2010 2:13 pm |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
Ами ти смяташ големината на резултантното ускорение така:
accel = sqrt(a^2 + b^2 + c^2), следователно accel^2 = a^2 + b^2 + c^2.
|
| Чет Ное 25, 2010 2:42 pm |
|
 |
|
zaphod
Ранг: Форумен бог
Регистриран на: Нед Юли 24, 2005 10:28 am Мнения: 2658
|
чудих се какво най-извратено смятане на корен квадратен да измисля, стигнах до това 
|
| Пет Ное 26, 2010 9:10 am |
|
 |
|
nik
Ранг: Форумен бог
Регистриран на: Сря Мар 22, 2006 3:25 am Мнения: 6418
|
като го гледам сметките зависят изцяло от характеристиките на транзистора, т.е. като го напече слънцето и ще му се замая главата
http://www.codeproject.com/KB/cpp/Sqrt_ ... Speed.aspx
Последна промяна nik на Пет Ное 26, 2010 2:03 pm, променена общо 1 път
|
| Пет Ное 26, 2010 1:43 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
Момчета, по-горе се написа много точно: ползвайте квадрата на ускорението, а не самото ускорение. Освен ако не сте решили да правите инерциална навигационна система, за всички други приложения може да се работи с квадрата. Смятането на квадратен корен не е лека задача ... Много процесорни цикли ще отидат там.
|
| Пет Ное 26, 2010 1:51 pm |
|
 |
|
marcuka68
Ранг: Ориентиран
Регистриран на: Пет Авг 07, 2009 4:58 pm Мнения: 273
|
Благодаря за съветите, момчета! Най-вероятно ще работя с квадрата на ускорението, ако го докарам до там  Но тогава ще ми трябва и посока на вектора, за да определя накъде се изменя ускорението. Доколкото се порових в нета, най-удачно ще е да се използва таблица. В противен случай, със смятане, мисля, че ще ми трябват 2 ъгъла:
a = arctan( Az / Ay )
b = arctan( Ay / Ax )
Май сметките са доста, за смятане на посоката и предполагам, че с таблица ще е по-добре.
Поздрави!
|
| Пон Ное 29, 2010 2:28 pm |
|
 |
|
bateAz
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 4:11 pm Мнения: 3750 Местоположение: София
|
A защо ти е да смяташ и посока? Има нещо недоклатено в заданието, май ...
|
| Пон Ное 29, 2010 2:47 pm |
|
 |
|
marcuka68
Ранг: Ориентиран
Регистриран на: Пет Авг 07, 2009 4:58 pm Мнения: 273
|
Ами необходима е посока, защото ще трябва да предприемам различни деиствия, според посоката.
|
| Пон Ное 29, 2010 3:35 pm |
|
 |
|
sv_shady
Ранг: Популярен
Регистриран на: Сря Окт 11, 2006 8:19 pm Мнения: 373 Местоположение: София/Edinburgh, UK
|
Колко прецизна ти трябва тази посока ? Ако трябва да кажеш ъгъл на вектора няма как да минеш без малко повече математика, но може и без тригонометрични функции, трябва само да ползваш факта, че компонента на единичен вектор е косинуса на ъгъла му спрямо оста на компонентата. Ако трябва, обаче да кажеш само нагоре/надолу, напред/назад и т.н. може само да се гледат знаците на отделните компоненти на вектора.
|
| Пон Ное 29, 2010 4:52 pm |
|
|