...Среда, 25.12.2024, 21:03



Приветствую Вас Гость | RSS
Главная
[ Обновленные темы · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Вычисление факта набора высоты
PROSVETOVДата: Четверг, 05.01.2012, 04:17 | Сообщение # 1
Группа: Удаленные





Вопрос такого плана: есть ли в стандартном наборе переменных такая, которая показывала бы динамику изменения высоты в плане "подъём/спуск"? Единственное что приходит в голову, это завести вторую переменную высоты и вычислять дельту с текущей высотой, обновляя эту новую переменную. Если дельта в минусе - тогда подъём, если в плюсе - то спуск. Но что-то как-то это не совсем по уму мне кажется.
 
СМИРНОВЪДата: Четверг, 05.01.2012, 04:17 | Сообщение # 2
Генерал-полковник
Группа: Персонал
Сообщений: 398
Награды: 0
Репутация: 40
Замечания: 0%
Статус: Не в сети
По в/с???

Все пропьем, но Аэрофлот, не опозорим никогда!
 
PROSVETOVДата: Четверг, 05.01.2012, 04:18 | Сообщение # 3
Группа: Удаленные





Что делать при показаниях 0,5 м/с или -0,5 м/с в результате влияния погодных условий на эшелоне, тоже расценивать как спуск/подъём?
 
СМИРНОВЪДата: Четверг, 05.01.2012, 04:19 | Сообщение # 4
Генерал-полковник
Группа: Персонал
Сообщений: 398
Награды: 0
Репутация: 40
Замечания: 0%
Статус: Не в сети
Условия в смысле СВ, воздушные ямы....

Все пропьем, но Аэрофлот, не опозорим никогда!
 
PROSVETOVДата: Четверг, 05.01.2012, 04:20 | Сообщение # 5
Группа: Удаленные





Мне наверное следовало бы для начала объяснить цель моего первоначального вопроса или разъяснить более понятно. Мне надо отличать фазы полёта друг от друга. Взлёт-посадку можно более-менее отделить от непосредственно полёта, но вот сам полёта на эшелоне надо как-то отделить от моментов подъёма и спуска. Т.е. допустим систематическое уменьшение высоты можно считать за спуск, смену высоты в пределах +/- в определённом отрезке времени нельзя относить ни к спуску, ни к подъёму. Вот я и спросил, есть ли в симе такое, что-бы свой огород не городить. Задача решаема, тем более своим способом я решил её давно, но сомнения в правильности и оправданости этого способа тоже есть. И просьба, без однозначных предложений и встречных вопросов. Если что-то не понятно - я разъясню.
 
СМИРНОВЪДата: Четверг, 05.01.2012, 04:21 | Сообщение # 6
Генерал-полковник
Группа: Персонал
Сообщений: 398
Награды: 0
Репутация: 40
Замечания: 0%
Статус: Не в сети
Quote (PROSVETOV)
Мне наверное следовало бы для начала объяснить цель моего первоначального вопроса или разъяснить более понятно. Мне надо отличать фазы полёта друг от друга. Взлёт-посадку можно более-менее отделить от непосредственно полёта, но вот сам полёта на эшелоне надо как-то отделить от моментов подъёма и спуска. Т.е. допустим систематическое уменьшение высоты можно считать за спуск, смену высоты в пределах +/- в определённом отрезке времени нельзя относить ни к спуску, ни к подъёму. Вот я и спросил, есть ли в симе такое, что-бы свой огород не городить. Задача решаема, тем более своим способом я решил её давно, но сомнения в правильности и оправданости этого способа тоже есть. И просьба, без однозначных предложений и встречных вопросов. Если что-то не понятно - я разъясню.

Ну вы конкретно ввели в заблуждение.


Все пропьем, но Аэрофлот, не опозорим никогда!
 
МатросДата: Четверг, 05.01.2012, 04:22 | Сообщение # 7
Генералиссимус
Группа: Персонал
Сообщений: 503
Награды: 0
Репутация: 287
Замечания: 0%
Статус: Не в сети
1. Используем VERTICAL SPEED. Вроде пашет нормально. Если не нравится, то считаешь сам первую производную от высоты и сглаживаешь ее (см. далее про производную и сглаживание).

2. Если, для каких либо вычислений или для отображения тебе нужно более сглаженное значение (мешают быстрые колебания) - ставь фильтр, по другому - инерциальное звено.
[/code]// В инициализации:
вертикалка = 0;
...
// В реализации:

новое_значение = get_...();
вертикалка = вертикалка + Кф * (новое_значение - вертикалка);
Code


Если хочешь уменьшить значение производной (скорость изменения вертикальной скорости) на половину, то Кф = 0,5. Это очевидно.  

в некоторых случаях требуется привязываться к системному времени:
// В инициализации:
вертикалка = 0;
...
// В реализации:
новое_значение = get_...();
вертикалка = вертикалка + Кф * (новое_значение - вертикалка) / (elapsed_seconds - elapsed_seconds_old);
elapsed_seconds_old = elapsed_seconds;[code]
(elapsed_seconds понятно откуда берем. Думаю, что ты знаешь, что ELAPSED_SECONDS - переменная вещественного типа и дельта ELAPSED_SECONDS между тиками, будет составлять миллисекунды)

Касаемо твоего случая, можно подобрать Кф таким маленьким, что на выходе фильтра ты получишь точную тенденцию к снижению или набору или к ровному полету. На выходе можно еще поставить компаратор и подобрать нужный порог срабатывания. После фильтрации, на выходе компаратора ты получишь устойчивый 1, 0, -1, необходимые для твоего случая.


Привет всем, кто из Ярославля!
 
  • Страница 1 из 1
  • 1
Поиск:


Copyright MyCorp © 2024
Бесплатный конструктор сайтов - uCoz