Вычисление кинематических параметров движения
Вычисление кинематических параметров движения
Попробуйте поставить останов в месте вычисления пика, и посмотреть, что происходит в переменных.
Последний раз редактировалось OlgaI 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test
Причина: test
Вычисление кинематических параметров движения
В сокращенных обозначениях.
Если вы вычислили Z=arctgX-arctgY, то проверьте, выполняется ли tgZ=(X-Y)/(1+XY) - с точностью
до принятого вами эпсилон.
Если вы вычислили Z=arctgX-arctgY, то проверьте, выполняется ли tgZ=(X-Y)/(1+XY) - с точностью
до принятого вами эпсилон.
Последний раз редактировалось grigoriy 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test
Причина: test
Вычисление кинематических параметров движения
2Гришпута
Вы, как я понял, сводите значение получаемого угла от 0о до 360о. Я не уверен, что в моем случае прокатит такой вариант, но попробовать можно, спасибо.
Я ставил условие только на "уход" из III четверти одного из векторов.
2N T
Почему? Я считаю угол между двумя векторами в плоскости oXY:
![Изображение](http://e-science.ru/sites/default/files/upload_forums_files/9o/DSCN0243_s.JPG)
Можно еще конечно по теореме косинусов, но либо я ошибся в вычислениях, либо еще где-то, но в MathCAD, когда я проверял формулу с арккосинусом, то у меня получилось комплексное число. Я не нашел ошибку и решил вернуться к арктангенсам. Разве здесь что-то не так?
Почему? Это же приращения. Пусть у нас есть 5 моментов времени и в каждый момент тело поворачивается на 49 градусов. Понятно, что как бы мы ни крутили тело, относительно начального положения угол будет от
до
, но сумма всех приращений - это независимое число, используемое мной для проверки. Или здесь тоже что-то не так?
2OlgaI
Увы, но я в этом движке так и не научился входить в режим отладки, поэтому приходится справляться эмпирически. Спасибо, что хоть консоль есть
Впрочем ввиду этого, я свел все переменные в таблицу и в файл, поэтому у меня есть все значения всех переменных в каждой точке. С точки зрения логики, вроде схема не нарушается. Либо, конечно я чего-то не вижу в упор (что вполне вероятно <_<).
Вы, как я понял, сводите значение получаемого угла от 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 градусов. Понятно, что как бы мы ни крутили тело, относительно начального положения угол будет от
2OlgaI
Увы, но я в этом движке так и не научился входить в режим отладки, поэтому приходится справляться эмпирически. Спасибо, что хоть консоль есть
Впрочем ввиду этого, я свел все переменные в таблицу и в файл, поэтому у меня есть все значения всех переменных в каждой точке. С точки зрения логики, вроде схема не нарушается. Либо, конечно я чего-то не вижу в упор (что вполне вероятно <_<).
Последний раз редактировалось GennDALF 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test
Причина: test
Вычисление кинематических параметров движения
GennDALF писал(а):Source of the post
2Гришпута
Вы, как я понял, сводите значение получаемого угла от 0о до 360о. Я не уверен, что в моем случае прокатит такой вариант, но попробовать можно, спасибо.
А вы попробуйте ещё (в принятых мною обозначениях) так:Z=arctg((X-Y)/(1+XY)).
Теоретически то же, а при численных расчетах...
Последний раз редактировалось grigoriy 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test
Причина: test
Вычисление кинематических параметров движения
GennDALF писал(а):Source of the post
Почему? Это же приращения. Пусть у нас есть 5 моментов времени и в каждый момент тело поворачивается на 49 градусов. Понятно, что как бы мы ни крутили тело, относительно начального положения угол будет от -\pi до \pi, но сумма всех приращений - это независимое число, используемое мной для проверки. Или здесь тоже что-то не так?
Если так вычисляете, то и получите 49*5=250град ~ 3/2
PS. Нормально выведите график dAxy или запишите в файл значения массива dAxy[i].
Тогда предметно можно порассуждать.
Последний раз редактировалось NT 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test
Причина: test
Вычисление кинематических параметров движения
2Гришпута
Да, надо будет попробовать. Еще одна проверка
Если честно меня терзают сомнения, что что-то не так с самой концепцией снятия показаний с датчика :unsure:, но это еще проверить надо. А для этого нужен новый файл, который снять я смогу только на неделе.
2N T
Да я счастлив был бы, только у меня по опыту поступательный поворот на 90o (о чем я писал уже) следовательно сумма приращений должна колебаться около этой величины.
А чем вас не устраивает график в Сообщении #3?
Массив? Пожалуйста:
132 значения, все как на подбор.
Да, надо будет попробовать. Еще одна проверка
Если честно меня терзают сомнения, что что-то не так с самой концепцией снятия показаний с датчика :unsure:, но это еще проверить надо. А для этого нужен новый файл, который снять я смогу только на неделе.
2N T
Если так вычисляете, то и получите 49*5=250град ~ 3/2\pi
Да я счастлив был бы, только у меня по опыту поступательный поворот на 90o (о чем я писал уже) следовательно сумма приращений должна колебаться около этой величины.
Нормально выведите график dAxy или запишите в файл значения массива dAxy[i]
А чем вас не устраивает график в Сообщении #3?
Массив? Пожалуйста:
132 значения, все как на подбор.
Последний раз редактировалось GennDALF 28 ноя 2019, 19:18, всего редактировалось 1 раз.
Причина: test
Причина: test
Вычисление кинематических параметров движения
Обратите внимательно на вычисления этих 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
Причина: test
Кто сейчас на форуме
Количество пользователей, которые сейчас просматривают этот форум: нет зарегистрированных пользователей и 8 гостей