Создание собственной системы стабилизации
Вы, наверно, не просматриваете самолетные ветки
Во… переберусь к Вам…
Эх, подсказл бы я вам как развязать вибрации от ваших датчиков, да вы ведь китайцам всё разболтаете 😃
Эх, подсказл бы я вам как развязать вибрации от ваших датчиков, да вы ведь китайцам всё разболтаете
Видимо “бомба” очередная (?)…, тогда хоть как то результат эдакой развязки покажите (не вдаваясь в секрет), а то как то - “ни о чём”…
Видимо “бомба” очередная (?)…
да нет, взрывопасные предметы тут ни при чём. 😃
Теория механических колебаний и борьба с акустическими шумами в одном лице 😃
Теория механических колебаний и борьба с акустическими шумами в одном лице
Ну допустим,… а разультат то как посмотреть ? (повторяюсь), к чему весь этот АНОНС ? (был тут посетитель который обещал, “нелиненую логику” применить для управления, но как то исчез…, видимо не получилось)
не-не, это не анонс, что вы, просто полистал вашу тему, увидел одну, очень близкую к правде, мысль у топикстартера, но рука не поднимается указать.
Я построил всего один квадр из комплектухи и двух алюминиевых стержней п-образного профиля и никаких проблем не испытал с вибрацией СРАЗУ, от слова совсем.
Хотя всё там на изоленте и скрутках 😃
Квадры потеряли просто фокус внимания мой - есть новая тема.
Я построил всего один квадр из комплектухи и двух алюминиевых стержней п-образного профиля и никаких проблем не испытал с вибрацией СРАЗУ
Не факт, что это из-за “теории борьбы…”, такое просто бывает (и часто) …, хотя раз Ваш метод секретный, то как бы и порассуждать не получается…
Такое бывает именно у тех, у кого “собралось” случайно в соответствие с теорией. В общем направление есть.
Пощупал новый кортекс, шустрая штука)))
double a, b, c;
for(int i = 0; i < 1000000; i++)
{
c = a * b;
}
выполняется за 60 мс.
Теперь можно все в даблах считать ))))
Пощупал новый кортекс
Что за новый кортекс?
выполняется за 60 мс
Оптимизация при сборке была включена или выключена?
Теперь можно все в даблах считать
Это хорошо конечно, но мне например, пока не понятно где востребована такая повышенная точность, уж больно источники “сырых” данных неточные чтоб их в даблах обсчитывать… (приведите пример)
Что за новый кортекс?
M7 по всей видимости…
Это хорошо конечно, но мне например, пока не понятно где востребована такая повышенная точность, уж больно источники “сырых” данных неточные чтоб их в даблах обсчитывать… (приведите пример)
например барометр ms5611
например барометр ms5611
Сергей, а по моему без всяких даблов, он обсчитывается с физически предельной для него точностью, не? , а повышать разрядность шумов не вижу смысла…
Что за новый кортекс?
Оптимизация при сборке была включена или выключена?
кортекс-М7
Оптимизация включена, без оптимизации что-то лишнее добавляется, а так с = а * b выполняется за 6 тактов, дальше зависит от скорости флеша, шин и всяких кэшей
Это хорошо конечно, но мне например, пока не понятно где востребована такая повышенная точность, уж больно источники “сырых” данных неточные чтоб их в даблах обсчитывать… (приведите пример)
если есть аппаратная поддержка двойной точности то почему бы ее не использовать, задачу всегда можно найти))).
повышать разрядность шумов не вижу смысла…
ну как бы так:
const double T1 = 15.0 + 273.15; /* temperature at base height in Kelvin */
const double a = -6.5 / 1000; /* temperature gradient in degrees per metre */
const double g = 9.80665; /* gravity constant in m/s/s */
const double R = 287.05; /* ideal gas constant in J/kg/K */
Оптимизация включена, без оптимизации что-то лишнее добавляется, а так с = а * b выполняется за 6 тактов
a,b внутри цикла не меняются, с - нигде не используется. Оптимизатор это вообще из цикла выкинуть может. Не очевидный какой-то тест.
a,b внутри цикла не меняются, с - нигде не используется. Оптимизатор это вообще из цикла выкинуть может. Не очевидный какой-то тест.
ну это я как пример привел, конечно я смотрел чтобы компилятор не выкинул код. Я смотрю асемблерный код в отладчике как выполняется. Если тест не очевидный то какой очевидный?
без оптимизации будет 90мс, компилятор какието лишние инструкции добавляет.
без оптимизации будет 90мс, компилятор какието лишние инструкции добавляет.
Снег дело говорит:
a,b внутри цикла не меняются, с - нигде не используется.
при компиляции вся операция выкинется, так как результат её дальше не используется, нада так:
for(int i=0;…){ c += a* (double)i; }
printf(“%f”,(float)c) ;
никуда компилятор ничего не выкидывает, можно же объявить так
volatile double a;
volatile double b;
volatile double c;
вот асемблер какой получается
c = a * b;
LDR.N R0, [PC, #0x20]
VLDR D0,[R0, #0]
VLDR D1,[R0, #+8]
VMUL.F64 D0,D0,D1
VSTR D0,[R0, #+16]
Это при максимальной оптимизации. Оптимизация убирает лишнии копирования из памяти в регистры процессора и обратно. Фишка в том что VMUL.F64 D0,D0,D1 выполняется за один такт.
так выглядет без оптимизации:
LDR.N R0,[PC, #0x2С]
VLDR D0,[R0, #0]
LDR.N R0,[PC, #0x2С]
VLDR D1,[R0, #0]
VMUL.F64 D0,D0,D1
LDR.N R0,[PC, #0x24]
VSTR D0,[R0, #0]
даже если посчитать такты нужные для выполнения инструкций то примерно похоже на правду.
ну как бы так:
Забавно… Типа - температурная поправка воздух/высота требует большего числа знаков… Не уверен что сенсор измеряет реальную температуру воздуха … Надо проверять.
Если кому интересно, сегодня возникла надобность раздербанить назу)))) Походу закис шлейф и выдавало по одной из осей ошибку, но я раздербанил все и посмотрел как там все устроено.
Фото увы не делал да и не на что там особо смотреть.
Собственно как устроена виброразвязка: От металического кубика с датчиком идет шлейфик и соответственно все это держется на оч мягкой пенорезине, вот только есть один нюанс (как в анекдоте) кубик этот полый и датчик залит внутри при помощи эпоксидки (увидеть это не сняв кубик невозможно). Так что по сути кубик это монолит в центре которого датчик.
И кстати что заметил не знаю баг это или фича, но кубик был теплый (перед этим включал назу мин на 5-10) так что возможно он еще и изнутри подогревается, но насчет этого я не уверен.
Да наза починилась)))) так что дербанил не зря)))