Вычисление кинематических параметров движения

OlgaI
Сообщений: 145
Зарегистрирован: 19 сен 2011, 21:00

Вычисление кинематических параметров движения

Сообщение OlgaI » 03 окт 2011, 14:51

Попробуйте поставить останов в месте вычисления пика, и посмотреть, что происходит в переменных.
Последний раз редактировалось OlgaI 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
grigoriy
Сообщений: 11916
Зарегистрирован: 18 ноя 2009, 21:00

Вычисление кинематических параметров движения

Сообщение grigoriy » 03 окт 2011, 15:13

В сокращенных обозначениях.
Если вы вычислили Z=arctgX-arctgY, то проверьте, выполняется ли tgZ=(X-Y)/(1+XY) - с точностью
до принятого вами эпсилон.
Последний раз редактировалось grigoriy 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
GennDALF
Сообщений: 8
Зарегистрирован: 30 сен 2011, 21:00

Вычисление кинематических параметров движения

Сообщение GennDALF » 03 окт 2011, 16:02

2Гришпута
Вы, как я понял, сводите значение получаемого угла от 0о до 360о. Я не уверен, что в моем случае прокатит такой вариант, но попробовать можно, спасибо.
Я ставил условие только на "уход" из III четверти одного из векторов.

Код: Выбрать все

if ( (%dRy[%i]<0 && %dRx[%i]<0) || (%dRy[%i-1]<0 && %dRx[%i-1]<0) )
 %dAxy[%i] = mAtan( mAbs(%dRy[%i]), mAbs(%dRx[%i]) ) - mAtan( mAbs(%dRy[%i-1]), mAbs(%dRx[%i-1]) );
else
 %dAxy[%i] = mAtan(%dRy[%i], %dRx[%i]) - mAtan(%dRy[%i-1], %dRx[%i-1]);



2N T
Что-то мудрите с вычислением разности arctg-ов.

Почему? Я считаю угол между двумя векторами в плоскости oXY:
Изображение
Можно еще конечно по теореме косинусов, но либо я ошибся в вычислениях, либо еще где-то, но в MathCAD, когда я проверял формулу с арккосинусом, то у меня получилось комплексное число. Я не нашел ошибку и решил вернуться к арктангенсам. Разве здесь что-то не так?

В максимуме у вас должно получаться , т.е. 3.14 радиан, но никак не 3.2 радиан.

Почему? Это же приращения. Пусть у нас есть 5 моментов времени и в каждый момент тело поворачивается на 49 градусов. Понятно, что как бы мы ни крутили тело, относительно начального положения угол будет от $$-\pi$$ до $$\pi$$, но сумма всех приращений - это независимое число, используемое мной для проверки. Или здесь тоже что-то не так?


2OlgaI
Увы, но я в этом движке так и не научился входить в режим отладки, поэтому приходится справляться эмпирически. Спасибо, что хоть консоль есть
Впрочем ввиду этого, я свел все переменные в таблицу и в файл, поэтому у меня есть все значения всех переменных в каждой точке. С точки зрения логики, вроде схема не нарушается. Либо, конечно я чего-то не вижу в упор (что вполне вероятно <_<).
Последний раз редактировалось GennDALF 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
grigoriy
Сообщений: 11916
Зарегистрирован: 18 ноя 2009, 21:00

Вычисление кинематических параметров движения

Сообщение grigoriy » 03 окт 2011, 16:23

GennDALF писал(а):Source of the post
2Гришпута
Вы, как я понял, сводите значение получаемого угла от 0о до 360о. Я не уверен, что в моем случае прокатит такой вариант, но попробовать можно, спасибо.

А вы попробуйте ещё (в принятых мною обозначениях) так:Z=arctg((X-Y)/(1+XY)).
Теоретически то же, а при численных расчетах...
Последний раз редактировалось grigoriy 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
NT
Сообщений: 3384
Зарегистрирован: 25 янв 2010, 21:00

Вычисление кинематических параметров движения

Сообщение NT » 03 окт 2011, 16:32

GennDALF писал(а):Source of the post
Почему? Это же приращения. Пусть у нас есть 5 моментов времени и в каждый момент тело поворачивается на 49 градусов. Понятно, что как бы мы ни крутили тело, относительно начального положения угол будет от -\pi до \pi, но сумма всех приращений - это независимое число, используемое мной для проверки. Или здесь тоже что-то не так?

Если так вычисляете, то и получите 49*5=250град ~ 3/2$$\pi$$

PS. Нормально выведите график dAxy или запишите в файл значения массива dAxy[i].
Тогда предметно можно порассуждать.
Последний раз редактировалось NT 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
GennDALF
Сообщений: 8
Зарегистрирован: 30 сен 2011, 21:00

Вычисление кинематических параметров движения

Сообщение GennDALF » 03 окт 2011, 17:18

2Гришпута
Да, надо будет попробовать. Еще одна проверка
Если честно меня терзают сомнения, что что-то не так с самой концепцией снятия показаний с датчика :unsure:, но это еще проверить надо. А для этого нужен новый файл, который снять я смогу только на неделе.

2N T
Если так вычисляете, то и получите 49*5=250град ~ 3/2\pi

Да я счастлив был бы, только у меня по опыту поступательный поворот на 90o (о чем я писал уже) следовательно сумма приращений должна колебаться около этой величины.

Нормально выведите график dAxy или запишите в файл значения массива dAxy[i]

А чем вас не устраивает график в Сообщении #3?
Массив? Пожалуйста:
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0,0047
0,0088
0,0080
0,0076
0,0072
0,0066
0,0060
0,0019
-0,0013
-0,0008
-0,0008
-0,0008
0,0030
0,0081
0,0157
0,0273
0,0321
0,1850
0,7248
-0,3453
0,3901
0,1312
0,0645
0,0640
0,0781
0,0794
0,0644
0,0561
0,0692
0,0798
0,0750
0,0682
0,0698
0,0748
0,0818
0,0826
0,0745
0,0720
0,0655
0,0530
0,0460
0,0401
0,0364
0,0365
0,0325
0,0274
0,0295
0,0311
0,0306
0,0296
0,0264
0,0291
0,0378
0,0378
0,0322
0,0286
0,0252
0,0232
0,0200
0,0134
0,0102
0,0123
0,0078
0,0020
0,0007
0
0
0
0
0
0
0
0
0
0,0007
0,0014
0,0014
0,0014
0,0020
0,0027
0,0032
0,0032
0,0027
0,0027
0,0027
0,0020
0,0012
0,0004
-0,0003
0,0002
0,0009
0,0009
0,0009
0,0010
0,0011
0,0012
0,0007
0
0
0
0
0
0
0
0,0007
0,0013
0,0013
0,0013
0,0013
0,0013
0,0020
3,182 (автосумма по столбцу)

132 значения, все как на подбор.
Последний раз редактировалось GennDALF 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test

Аватар пользователя
NT
Сообщений: 3384
Зарегистрирован: 25 янв 2010, 21:00

Вычисление кинематических параметров движения

Сообщение NT » 04 окт 2011, 08:37

GennDALF писал(а):Source of the post
132 значения, все как на подбор.

Обратите внимательно на вычисления этих 5-ти точек с 39 по 43.
Что-то не так, из 132, только в этих 5-ти такой большой разброс.
В градусах:
39) 0,1850; 10.6
40) 0,7248; 41.5
41) -0,3453; -19.5
42) 0,3901; 22.35
43) 0,1312; -6.41

И очень для меня сомнительно выглядит этот код в функции.

Код: Выбрать все

if ( (%dRy[%i]<0 && %dRx[%i]<0) || (%dRy[%i-1]<0 && %dRx[%i-1]<0) )
 %dAxy[%i] = mAtan( mAbs(%dRy[%i]), mAbs(%dRx[%i]) ) - mAtan( mAbs(%dRy[%i-1]), mAbs(%dRx[%i-1]) );
else
 %dAxy[%i] = mAtan(%dRy[%i], %dRx[%i]) - mAtan(%dRy[%i-1], %dRx[%i-1]);

Изменения отрицательных величин аргумента на абсолютные значения ?!
И что в результате? Ничего не понял.
Уж лучше без этих поправок аргументов посмотрите - что выходит.
Последний раз редактировалось NT 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test


Вернуться в «Физика»

Кто сейчас на форуме

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