[image]

Использование твердотельных гироскопов в ракетомоделях

 
1 42 43 44 45 46 53
RU Бывший генералиссимус #19.08.2017 18:31  @Xan#28.07.2017 18:03
+
-
edit
 
Xan> "Вектор должен быть нормализован" — ?
А почему тут вопросительный знак? Нормализация вектора - это приведение его модуля к единице, то есть, нужно вычислить модуль вектора, и поделить каждую компоненту на этот модуль. А, если модуль незначительно отличается от единицы, можно использовать очень красивую приближённую формулу.
1 - (a2 + b2 + c2 + d2 - 1)/2
Юра Афанасенков затеял писать ликбез по кватернионам:
   60.0.3112.10160.0.3112.101
KZ Xan #19.08.2017 19:40  @Бывший генералиссимус#19.08.2017 18:31
+
-
edit
 

Xan

координатор

Xan>> "Вектор должен быть нормализован" — ?
Б.г.> А почему тут вопросительный знак?

Там для меня в тексте было непонятное место. То ли только три компоненты нормализовать, то ли все четыре.
Ну и дальше по тексту опять нормализация.
Так что наплевать, не обращай внимания. :)


Б.г.> можно использовать очень красивую приближённую формулу.
Б.г.> 1 - (a2 + b2 + c2 + d2 - 1)/2

Ну это да.
Только не "разделить на два", а "умножить на половину" — *0.5 — на микроконтроллере это может считаться чуть быстрее.

Б.г.> Юра Афанасенков затеял писать ликбез по кватернионам:

Что-то я их забраковал для своей задачи.
   55.055.0

SashaMaks
SashaPro

аксакал

☠☠
Xan> Ну и дальше по тексту опять нормализация.

Правильно))) Надо и тут все непременно самому вывести. Пройти весь путь математиков. Готовые решения - это что-то такое "не интересное":-)

Готовое решение, как мне известно, смотрит на вас уже 6 лет. И да, вы им уже пользуетесь, возможно и дольше.
   55.0.2883.9155.0.2883.91
RU Бывший генералиссимус #19.08.2017 22:37  @Xan#19.08.2017 19:40
+
-
edit
 
Xan>>> "Вектор должен быть нормализован" — ?
Б.г.>> А почему тут вопросительный знак?
Xan> Там для меня в тексте было непонятное место. То ли только три компоненты нормализовать, то ли все четыре.

Всегда нормализуются все четыре компоненты. Если у нас вектор, а не кватернион, то просто скалярная компонента равна нулю и на величину модуля не влияет.

Xan> Что-то я их забраковал для своей задачи.

А я вот познакомился с мужиком, который кватернионы даже в автомобиле использует, где "складывание рамок" - однозначная авария с вылетом в кювет. Как он сказал "просто для общности описания".
   60.0.3112.10160.0.3112.101

Xan

координатор

Делаю симуляторную прогу. Гравитация + ускорение/торможение ==> движение.
В основном для орбиты, чтоб узнать, как далеко спутник пролетит мимо других спутников.
Во избежание ДТП! :D
Но и для полёта через атмосферу пойдёт.

Хочется, конечно, квант времени брать побольше, чтоб счётное время было маленьким.

Чтоб узнать, на сколько симуляция врёт, запускаю несколько спутников, на две недели.
Для каждого симулирую с разным временным квантом.
"Эталонный" с квантом, например, 1/4096 секунды, а другие с разными другими долями секунды.
И смотрю, на какое расстояние они от эталонного разлетятся.
Считаю расстояние чисто по теореме Пифагора, не различая, в направлении полёта или перпендикулярно.

Вот картинка, первые 4 графика — 4, 2, 1, 1/2 секунды,
вторые — 1/4, 1/8, 1/16, 1/32 секунды,
третьи — 1/64, 1/128, 1/256 и 1/512.

(https://www.dropbox.com/s/azkqjvgripsp2ml/Errors.png?dl=0)
(Картинка не прилепляется!)

Видно, что при больших квантах ошибка растёт линейно со временем и квадратично от размера кванта.
Как и должно быть.
А на маленьких лезет какая-то кривизна.

"В школе проходили", что даже если симуляторная прога при уменьшении кванта показывает сходимость,
это ещё не значит, что решение будет правильным.
А тут вообще лезет фиг знает что.
Волнуюсь! :D

Сейчас запустил с эталонным квантом = 1/220 = 1/1048576.
Считает очень долго.
За двое симулированных суток с квантом 1/16 ошибка получилась пара метров.

Похоже, что для счёта с точностью сотня метров за две недели можно применять квант 1/16.
Скорость счёта получилась такая: две недели за 10 секунд при 1 ГГц процессора.

Проверил прецессию плоскости орбиты, получился период 75 дней. Очень похоже на правду.
Это для эллиптической Земли.

Для окончательной проверки надо будет взять данные нескольких сотен реальных спутников,
(Space-Track.Org)
просимулировать, подождать недельку-другую, взять новые данные и сравнить симуляцию с ними.
   55.055.0
Это сообщение редактировалось 27.08.2017 в 17:12

Sandro
AXT

инженер вольнодумец
★☆
Xan> Видно, что при больших квантах ошибка растёт линейно со временем и квадратично от размера кванта.
Xan> Как и должно быть.

А интегратор у тебя какого порядка? Спецы советуют брать либо первого, если вычмощи мало, либо третьего.
По отчёту создаётся впечатление, что нулевого :(

Xan> А на маленьких лезет какая-то кривизна.

Точность какую берёшь? Неужто одинарную?
   37.037.0

Xan

координатор

Sandro> А интегратор у тебя какого порядка? Спецы советуют брать либо первого, если вычмощи мало, либо третьего.

Я каску на стройке нашёл! :)
Систематических знаний нет.

Вот что делается:
К скорости добавляется кусочек от ускорения/торможения.
v = v + a * dt
С новой скоростью меняются координаты на половину шага.
x = x + 0.5 * v * dt
С новыми координатами вычисляется гравитация.
g = GM / x2
К скорости добавляется кусочек от гравитации (полный шаг).
v = v + g * dt
С новой скоростью меняются координаты на половину шага.
x = x + 0.5 * v * dt

Sandro> Точность какую берёшь? Неужто одинарную?

double
   55.055.0
RU Брат-2 #03.09.2017 19:08  @Бывший генералиссимус#17.04.2017 18:53
+
-
edit
 

Брат-2

опытный

vmironov>>> Никто так и не написал почему не будут работать гироскопы и акселерометры и почему так важно чтобы ракета знала в каком направлении g ?
Вернулся опять к проблеме гировертикали на основе MPU6050. Весной я уперся в проблему накопления ошибки интегрирования гироскопов, использую Arduino nano на основе ATMEGA328, поэтому частота опроса датчика достаточно низкая 150Гц, и ошибка накапливается быстро! У меня вопрос к Андрею, так как он единственный профессионал в ракетном деле!
Андрей! Мне не нужен космос, но попытка использовать стандартные решения для исключения ошибок интегрирования гироскопов при помощи акселерометров и комплектарных фильтров ни к чему не привело, так как ускорение существенно больше 16g!
Возникла идея! У акселерометров, при любом ускорении «0» остается «0»! Корпус управляемой ракеты, летящей вертикально, постоянно колеблется около этой вертикали. То есть акселерометры X и Y должны систематически фиксировать «0». Вот я хочу использовать эти «0» для обнуления ошибки интегрирования гироскопов. Подобное должно обнулять и самопроизвольный дрейф. Как бы все логично, но подобное решение никто не использует, что меня и смущает, вот решил проконсультироваться у тебя, в чем я ошибаюсь?
   56.0.2924.19756.0.2924.197
RU Бывший генералиссимус #03.09.2017 21:17  @Брат-2#03.09.2017 19:08
+
-
edit
 
vmironov>>>> Никто так и не написал почему не будут работать гироскопы и акселерометры и почему так важно чтобы ракета знала в каком направлении g ?
Брат-2> Вернулся опять к проблеме гировертикали на основе MPU6050. Весной я уперся в проблему накопления ошибки интегрирования гироскопов, использую Arduino nano на основе ATMEGA328, поэтому частота опроса датчика достаточно низкая 150Гц, и ошибка накапливается быстро!

До примерно 10 Гц частоты опроса скорость накопления ошибки не зависит от частоты опроса, только от скорости дрейфа самого гироскопа.

Брат-2> Андрей! Мне не нужен космос, но попытка использовать стандартные решения для исключения ошибок интегрирования гироскопов при помощи акселерометров и комплектарных фильтров ни к чему не привело, так как ускорение существенно больше 16g!

Какая у тебя продолжительность интегрирования? на 10-20-30 секунд (а вряд ли ты можешь выдерживать 16 же так долго) лучше ничего не корректировать. Если у тебя встроенная коррекция ухода нуля от линейного ускорения, лучше её выключить (если есть такая возможность) и сделать свою от другого акселерометра, который не зашкаливает. Если такой возможности нет, надо делать доп. коррекцию поверх встроенной, что, конечно, сложнее.

Брат-2> Возникла идея! У акселерометров, при любом ускорении «0» остается «0»! Корпус управляемой ракеты, летящей вертикально, постоянно колеблется около этой вертикали. То есть акселерометры X и Y должны систематически фиксировать «0». Вот я хочу использовать эти «0» для обнуления ошибки интегрирования гироскопов.

Ну, во-первых, пока ты летишь в атмосфере, не должны, т.к. ты можешь до самого апогея лететь с ненулевыми углами атаки и скольжения, а, значит, показания акселерометров не будут нулевыми. А, во-вторых, то, что они пересекают ноль, ничего тебе не даёт, в смысле коррекции гироскопов.

Брат-2> Подобное должно обнулять и самопроизвольный дрейф. Как бы все логично, но подобное решение никто не использует, что меня и смущает, вот решил проконсультироваться у тебя, в чем я ошибаюсь?

Я просто не понимаю связи между величиной бокового ускорения и коррекцией гироскопов... Корректировать можно тогда и только тогда, когда корень квадратный из суммы квадратов показаний по трём осям равен одному же. И то, так можно корректировать не текущую величину дрейфа, а только уже накопленную ошибку, а величину дрейфа из неё рассчитывать постфактум.
   60.0.3112.11360.0.3112.113
RU Брат-2 #04.09.2017 19:25  @Бывший генералиссимус#03.09.2017 21:17
+
-
edit
 

Брат-2

опытный

Б.г.> До примерно 10 Гц частоты опроса скорость накопления ошибки не зависит от частоты опроса, только от скорости дрейфа самого гироскопа.
.....
Андрей! Чего-то я недопонимаю! :( Ошибка интегрирования возникает вследствие изменения угловой скорости на временном отрезке между опросами. Чем реже опросы, тем больше возможная ошибка, ведь величина угловой скорости между опросами может существенно меняться, поэтому чем чаще опросы, тем меньше ошибка, то есть, эта ошибка вообще не имеет отношения к гироскопу!
Величина дрейфа зависит от конкретного гироскопа и его температуры (в основном), поэтому дрейф величина относительно постоянная, поэтому и ошибка из-за дрейфа действительно не зависит от частоты опроса. С дрейфом я научился сносно жить, а вот с ошибкой накопления нет, рулевой блок покачаешь в руках минуту, и рули уже не смотрят на «0»!
   56.0.2924.19756.0.2924.197
RU Брат-2 #04.09.2017 19:42  @Бывший генералиссимус#03.09.2017 21:17
+
-
edit
 

Брат-2

опытный

....
Б.г.> Какая у тебя продолжительность интегрирования? на 10-20-30 секунд (а вряд ли ты можешь выдерживать 16 же так долго) лучше ничего не корректировать. Если у тебя встроенная коррекция ухода нуля от линейного ускорения, лучше её выключить (если есть такая возможность) и сделать свою от другого акселерометра, который не зашкаливает. Если такой возможности нет, надо делать доп. коррекцию поверх встроенной, что, конечно, сложнее.
.....
Проблема в том, что в комплектарном фильтре задействованы не только оси X и Y, но и Z! Ускорение действительно не столь длительно до 4сек, но достигает 30g! Так как ракета рулит только на активном участке, то если отключить , теряется весь смысл управляемой гировертикали!
При испытании прошивки с задействованными акселерометрами ракета со старта летит по дуге!
Вот без акселерометров ракета летит хорошо, но только первые 20м-30м, и если двухступенчатая, то у второй уже стабилизации нет.
   56.0.2924.19756.0.2924.197
RU Брат-2 #04.09.2017 20:01  @Бывший генералиссимус#03.09.2017 21:17
+
-
edit
 

Брат-2

опытный

......
Б.г.> Ну, во-первых, пока ты летишь в атмосфере, не должны, т.к. ты можешь до самого апогея лететь с ненулевыми углами атаки и скольжения, а, значит, показания акселерометров не будут нулевыми. А, во-вторых, то, что они пересекают ноль, ничего тебе не даёт, в смысле коррекции гироскопов.
....
Вот здесь тоже недопонимаю! :( При управляемой гировертикали мы не летим ровно, лишь стремимся к этому, летим мы змейкой (на активном участке), на пассивном, покачивая корпусом! Короче, надо пробовать, иного пути все равно нет! Вот я и надеюсь, что гироскопы X и Y при правильном положении корпуса ракеты будут фиксировать «0», гироскопы в этом положении тоже должны показывать «0», а если нет, вот их ошибки и обнулять! То есть, следующую полуволну траектории начинать без накопленной ошибки гироскопов, как по интеграции, так и по дрейфу! :)
Да, одну ось я для эксперимента сделал, как не кручу рули на месте, но это в руках, что будет при ускорении не знаю! :)
   56.0.2924.19756.0.2924.197
Это сообщение редактировалось 04.09.2017 в 20:06
+
-
edit
 

Xan

координатор

Б.г.>> До примерно 10 Гц частоты опроса скорость накопления ошибки не зависит от частоты опроса, только от скорости дрейфа самого гироскопа.
Брат-2> .....
Брат-2> Чем реже опросы, тем больше возможная ошибка, ведь величина угловой скорости между опросами может существенно меняться, поэтому чем чаще опросы, тем меньше ошибка, то есть, эта ошибка вообще не имеет отношения к гироскопу!

1.
В микрухе есть фильтр, который как бы усредняет измеренную скорость между отсчётами.
То есть ни одна микросекунда между отсчётами не пропадает, всё учитывается.
Поэтому независимо от частоты результат твоего интегрирования будет получаться одинаковый.
И поэтому вовсе необязательно делать большую частоту опросов.
От неё только зависит задержка, с которой сигнал появится на выходе микрухи (примерно половина времени между отсчётами).

2.
У микрухи есть шум (от теплового движения электронов).
Этот шум, так же как и сигнал, между отсчётами суммируется и усредняется.
Величина шума в отсчёте обратно пропорциональна корню квадратному из времени суммирования.
То есть, если частоту отсчётов понизить в четыре раза = время суммирования увеличить в 4 раза, то величина шума станет в два раза меньше.
А если считать на большой частоте 4 отсчёта, а потом их усреднить, то в усреднённом величина шума — сюрприз! — станет тоже в два раза меньше.

То есть, можно делать отсчёты с большой частотой, в них будет много шума, потом их усреднять/интегрировать, и шума будет становиться меньше.
А можно сразу делать отсчёты с низкой частотой, и шума в них будет столько же, как и в первом случае.

Опять получается, что не имеет смысла задирать частоту отсчётов.

(Есть ещё шум другого типа, который вылезает на низких частотах.)

3.
У гироскопов есть "линейный эффект" — они чувствуют обычное (линейное, не угловое) ускорение как вращение.
Наверное, за счёт неидеальности симметрии механики. Не знаю.
Вот он больше всего проявляется именно при разгоне. Гироскопам с интеграторам кажется, что набрав скорость ракета повернула на некоторый угол.
Один из вариантов борьбы с этим — ставится пара гироскопов, один из них вверх ногами, у него эффект будет со знаком минус. Ну и берётся среднее.
   55.055.0
RU Бывший генералиссимус #04.09.2017 23:57  @Брат-2#04.09.2017 19:25
+
-
edit
 
Б.г.>> До примерно 10 Гц частоты опроса скорость накопления ошибки не зависит от частоты опроса, только от скорости дрейфа самого гироскопа.
Брат-2> .....
Брат-2> Ошибка интегрирования возникает вследствие изменения угловой скорости на временном отрезке между опросами.

Это ошибка довольно большого порядка малости. По крену момент инерции очень маленький, по сравнению с моментами инерции по тангажу и рысканию, да и аэродинамическое демпфирование очень мало. По крену, действительно, угловые ускорения могут быть очень большими. Большие угловые ускорения по тангажу и рысканию требуют очень больших возмущающих моментов. Если такие моменты возникают, аэродинамическими рулями их всё равно не скомпенсировать.

Брат-2> Чем реже опросы, тем больше возможная ошибка, ведь величина угловой скорости между опросами может существенно меняться, поэтому чем чаще опросы, тем меньше ошибка, то есть, эта ошибка вообще не имеет отношения к гироскопу!

имеет, имеет... "Существенно" - недостаточно информативное слово. Насколько, по-твоему, может измениться угловая скорость по тангажу за 1/10 секунды? И к какой ошибке интегрирования это может привести?

Брат-2> Величина дрейфа зависит от конкретного гироскопа и его температуры (в основном), поэтому дрейф величина относительно постоянная, поэтому и ошибка из-за дрейфа действительно не зависит от частоты опроса. С дрейфом я научился сносно жить, а вот с ошибкой накопления нет, рулевой блок покачаешь в руках минуту, и рули уже не смотрят на «0»!

Дрейф величина не постоянная, а случайная. Она может выглядеть постоянной, но недолго.
   60.0.3112.11360.0.3112.113
RU Бывший генералиссимус #05.09.2017 00:01  @Брат-2#04.09.2017 20:01
+
-
edit
 
Брат-2> Вот я и надеюсь, что гироскопы

В смысле, акселерометры? зря надеешься. Акселерометры могут показывать ноль при полёте с нулевыми углами атаки и скольжения, а не в "правильном" (подразумевается, вертикальном) положении.

Брат-2> X и Y при правильном положении корпуса ракеты будут фиксировать «0»,

Да отчего же?

Брат-2> гироскопы в этом положении тоже должны показывать «0», а если нет, вот их ошибки и обнулять!

Ещё раз. У ракеты нет связи между показаниями акселерометров и показаниями гироскопов. Нельзя, никак не выходит, использовать акселерометры боковых ускорений для коррекции гироскопов в ракете.
   60.0.3112.11360.0.3112.113
+
-
edit
 

Брат-2

опытный

Xan> В микрухе есть фильтр, который как бы усредняет измеренную скорость между отсчётами.
Xan> То есть ни одна микросекунда между отсчётами не пропадает, всё учитывается.
Немного отвлекся. Хан микросхема MPU6050 действительно имеет режим
MotionApps, правда достоверно неизвестно как он работает, но точно одно, что он ничего не усредняет, и совершенно точно, там задействованы акселерометры, правда фильтр есть!
Однако, мне стало очевидно, что без черного ящика ничего не выйдет. При этом, если выводить данные по человечески, то фатально падает частота циклов (с 170 до 40/сек).
Как бы нашел выход. Мы управляем сервомеханизмами через ШИМ, при этом информация содержится в ширине управляющих импульсов. Стандартная длительность для аналоговых сервомеханизмов от 1000 до 2000мкс, при частоте повторения 50Гц. Вот и решил считывать именно ширину управляющих импульсов дополнительной Arduino . Однако управляющие импульсы для Arduino Nano слишком короткие и без аппаратного прерывания не обойтись, а в указанной Arduino только пины 2 и 3 поддерживают аппаратное прерывание, то есть можно иметь только два канала записи. Пока контроль осей X и Y, можно подключить перепайкой и Z. Потом выведу на запись и «0» акселерометров, сам посмотрю. Проверил на макете, да, не очень точно, но отчетливо виден дрейф и ошибка накопления гироскопов, лучше, чем ничего! :)
   56.0.2924.19756.0.2924.197
+
-
edit
 

Xan

координатор

Xan>> В микрухе есть фильтр, который как бы усредняет измеренную скорость между отсчётами.

Брат-2> но точно одно, что он ничего не усредняет, и совершенно точно

Попробую другими словами! :)
Между отсчётами сигнал с датчика внутри микрухи интегрируется.
На протяжении всего времени между отсчётами.
И в очередной отсчёт накопленное выдаётся наружу в качестве результата.

Поэтому, если ты установишь большую частоту отсчётов и возьмёшь (например) десять отсчётов за 20 мс и усреднишь их,
или при низкой частоте получишь за эти 20 мс всего один отсчёт,
результат будет одинаковый.

То есть, не имеет смысла ставить частоту больше, чем переварят сервы (50 Гц).

Брат-2> Arduino

Про Абдурино ничего не знаю! :)
   55.055.0

pinko

опытный

Xan> Поэтому, если ты установишь большую частоту отсчётов и возьмёшь (например) десять отсчётов за 20 мс и усреднишь их,
Xan> или при низкой частоте получишь за эти 20 мс всего один отсчёт,
Xan> результат будет одинаковый.
Xan> То есть, не имеет смысла ставить частоту больше, чем переварят сервы (50 Гц).


Я извиняюсь Xan, но это не так. Сервомашины можно контролировать с интервалом 50 мс, но на какой угол ты должен его поворачивать, зависит от накопленного значения в этих 50 мс.

- Если ты только усредняеш отсчёты, то используя больше отсчёт уменьшается ошибку шума и ошибку квантования. Среднее значение, которое ты получаеш, ближе к истинному значению.

- Если есть интеграция, то интегрированный результат ближе к истинному значению, когда используетеся больше отсчётов за единицу времени.

Там нет смысла высокой частоты дискретизации и более высокая точность позиционирования, если только дискретного шага изменения сервомашины при заданной скорости дает более высокую ошибку смещения, чем погрешность позиционирования из-за частота выборки. Но опять же даже в этом случае позиционная интеграция может быть использована для снижения колебания от дискретизации сервомашины.
   55.055.0
+
-
edit
 

Брат-2

опытный

Xan> Попробую другими словами! :)
Да я понял все Xan! Но я создаю реальное устройство и мне нужно ближе к земле! А вот к земле люди пишут немного о другом, но я верю тебе Александр! :)
Вот я на выходе гироскопов имею угловую скорость по осям, из угловой скорости получаю угол поворота, то есть у меня точно ничего не усредняется!
Сейчас ушел в отпуск, на недельку на море в Адлер, потом ремонт в квартире, то есть отпуск свободного времени не добавляет, тем не менее, в ближайшее время планирую испытать свою машину. Будет запись углов рулевых машинок, будет камера, повернутая на рули, будет и съемка внешнего вида, посмотрим!
   56.0.2924.19756.0.2924.197
+
-
edit
 

Брат-2

опытный

pinko> Я извиняюсь Xan, но это не так.
Привет Pinko! Ранее ты сам отказался от гироскопа и предлагал стабилизацию по магнитному датчику. Правда с магнитным компасом тоже есть проблемы!
Но моя проблема с компасом оказалась в другом. Заказываю модули GY-271 , GY-273 . Модули на основе микросхем HMC5883L! В рекламных проспектах показана маркировка чипа L883, так должно и быть! Но продавцы высылают модули с чипом 5883, у меня уже собралось подобных 6 шт от разных продавцов.
Так вот модули не работают, жалуются все, причем все получают именно такие модули! Ребята подсказали, удалось запустить модуль, но показания скачут как китайские кони! :) Что за ситуация не понимает ни кто, в том числе и сами продавцы! :eek:
Короче испытать компас так и не смог, вернулся к гироскопу!
   56.0.2924.19756.0.2924.197
+
-
edit
 

pinko

опытный

Брат-2> Привет Pinko! ...

Привет Брат! Я ничего не делал, он остался на стадии исследования. Теперь у меня меньше времени, но и мои интересы шли в другом направлении ракетомодельный.

Но я рад увидеть, что ты не сдаешся - я с большим интересом слежу твоей работой. :) Ищи MAG3110 (High Accuracy, 3D Magnetometer) - в ebay он продается на 2-3 доллара на адаптере. Я могу предоставить тебе этот чип, но он очень маленький и не имеет плата.

Смотри вспомогательную информацию на сайте Motorola - есть также рекомендации по применению.
   55.055.0
Это сообщение редактировалось 16.09.2017 в 17:27
+
-
edit
 

Брат-2

опытный

pinko> Ищи MAG3110 (High Accuracy, 3D Magnetometer) - в ebay он продается на 2-3 доллара на адаптере. Я могу предоставить тебе этот чип, но он очень маленький и не имеет плата.
pinko> Смотри вспомогательную информацию на сайте Motorola - есть также рекомендации по применению.

Pinko! Голый чип мне точно не нужен, а за наводку спасибо! :)
   56.0.2924.19756.0.2924.197

Xan

координатор

pinko> Я извиняюсь Xan, но это не так.

Что-то не получается понимания, каждый о своём говорит! :)

Я говорю вот что:
Если микруха настроена на частоту 200 отсчётов в секунду, то она может выдать, например, такое:
12, 15, 11, 14
Микроконтроллер это может проинтегрировать (4 раза по 5 мс):

5 * 12 + 5 * 15 + 5 * 11 + 5 * 14 = 260

Получился угол поворота = 260

А если микруха настроена на частоту 50 отсчётов в секунду, то она в этом же случае выдаст один отсчёт
13 = (12 + 15 + 11 + 14) / 4
Она сама внутри себя усреднит скорость на интервале 20 мс.
Микроконтроллер это проинтегрирует (за 20 мс):

20 * 13 = 260

И получится тот же самый угол (на который ракета повернулась за 20 мс).


pinko> Сервомашины можно контролировать с интервалом 50 мс, но на какой угол ты должен его поворачивать, зависит от накопленного значения в этих 50 мс.

Что-то странное ты говоришь.

Вот про одну из машинок:
Frame rate 7-20 ms — 50-140 Hz
Valid pulse lengths 0.9 – 2.1 ms
Left / Center / Right 0.9 ms / 1.5 ms / 2.1 ms

Угол поворота зависит только от длительности импульса, но не от частоты импульсов.
И не зависит от предыдущих импульсов, а только от последнего (если не учитывать инерционность механики).
   55.055.0

pinko

опытный

Xan> Она сама внутри себя усреднит скорость на интервале 20 мс.

То что говориш верно только для статической ситуации - если скорость и ускорение не изменились (много) в течение этого периода.

Однако нам нужно объединить это изменение угла с постоянно и быстро меняющейся скоростью и ускорением. В этом случае более высокая дискретизация даст более точное позиционирование.

Xan> Угол поворота зависит только от длительности импульса, но не от частоты импульсов.
Xan> И не зависит от предыдущих импульсов, а только от последнего (если не учитывать инерционность механики).

Опять статично против динамической ситуации, также изменение траектории не является мгновенным.

Я имею в виду, что серво может поворачиваться с дискретными угловыми шагами в дискретными периоды времени. Объедини это с большой скоростью и теоретический идеальный путь будет отклоняться от фактическиго пути..
   55.055.0

pinko

опытный

Игнорируй мой предыдущий пост, я только понял что мы говорим о разных приложениях, мои извинения. :)
   55.055.0
1 42 43 44 45 46 53

в начало страницы | новое
 
Поиск
Поддержка
Поддержи форум!
ЯндексЯндекс. ДеньгиХочу такую же кнопку
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru