Создание собственной системы стабилизации

rual
Drinker:

Штоп была своя система стабилизации, как название темы.

Андрей, откуда такие критерии? Мож ещё датчики и проц самому выпиливать?

SergDoc:

Я тут это - PX4 родное запустил, патч вошел без мыла, а значит дело в арде

Сергей, возьми предыдущий патч, тот что на нулевой летал. Кста, поздравляю тебя (и всех посетителей) с юбилейной страницей ветки!😃

Вопрос к знатокам двоичной математики, вот такая

altitude = (((pow((p / p1), (-(a * R) / g))) * T1) - T1) / a;

фигня, вычисление высоты по давлению МС5611, долго вычисляется процом Ф3, за это время приёмник СБУСа успевает переполниться, в результате валитться приём СБУСа и обмен с фрискайной телеметрией… Вопрос такой, как вычислить баровысоту без матфункции pow (возведение в дробную степень)?

SergDoc
rual:

Сергей, возьми предыдущий патч, тот что на нулевой летал.

тут беда в другом мне кажется - мпу в среду не вписывается почему-то стартует, можно через консоль потестить всё супер, а работать неа… я уже даже лишние датчики выпилил не помогло, то же родное по px4 работает полностью, но блин без датчиков - можно только компас откалибровать… надо было с вия начать… завтра попробую, пока полностью не заведу одну остальные пока собирать не буду ибо пока не могу понять в чём дело 😦 звиняйте если что за задержку…
блин есть же ПО сохранённое от старой платы - надо с него начать:)😠

rual
SergDoc:

блин есть же ПО сохранённое от старой платы

ну я об этом и говорил, завтра, если работа не придавит, помогу

SergDoc
rual:

помогу

Разберись с 9-м таймером пожалуйста - это он мне весь мосх выел - я запустился 😃 но без пищалки…

tusik

Сергей, а на твою плату прошивка от итальянцев (VBRAIN) ставится?

Drinker
rual:

фигня,

Например ф103 практически не замечает расчеты альт но формула какая-то странная, скобок дофига. Ф3 вроде с фпу? Компилятор вообще использует его?

rual
Drinker:

формула какая-то странная,

Какая есть, стырена с драйвера МС5611 ПХ4 )))

Drinker:

скобок дофига

Одни можно убрать, но проблема не в них, а в самом вычислении функции pow. Пробовал тупо заменить формулу на одну функцию pow с двумя переменными. Результат тот же…

Drinker:

Ф3 вроде с фпу? Компилятор вообще использует его?

есть, использует на все 100%.

В целом решил проблему костылём с вызовом обработчика прерывания с более низким приоритетом, но походу назревает использование РТОС…

SergDoc
tusik:

Сергей, а на твою плату прошивка от итальянцев (VBRAIN) ставится?

А зачем? тот же арду только через мапл засунут - конечно можно, но там гимора больше, я как-то ковырял, пока с портами разберёшся - они потипу ардуино обозначены…
Хотел порадовать что второй птенец вылупился, ан нет - компас не запустился - чёт мне везёт на них, завтра перепаяю… третий в течении недели соберу…
Платы почти одинаковы всё равно, у него только ещё ULN2003 на плате, я не стал ставить - ну его, можно i2c-LED цеплять или туже ULN-ку повесить на свободные GPIO только подальше от платы… ну и естественно интерейсы у нас разные, возмоно ориентация датчиков…
Андрей, скинте свой почтовик - вышлю документацию…
сын букву Ж съел - только кулаком нажымается 😦

omegapraim

Привет, чисто совет не по теме. Попробуй для сборки использовать BGA пасту вот такую в ту субботу купил и очень доволен, трудозатраты на сборку сократились почти в 2а раза (контакты лудить вообще не нужно перед пайкой чипов) просто мажешь в пропорции на дорожки и паста сама распределится по ножкам в момент нагрева феном. А самое вкусное это то что она с безотмывочным флюсом и остатков флюса вообще не остается. Собрал с помощью нее два приемника и был приятно удивлен легкостью работы и качеством пайки.

Drinker

Руал, сдорофф!

rual:

есть, использует на все 100%.

Я не знаю, что ты используешь для кодинга, но у меня в модуле math есть два определения pow:
extern double pow _PARAMS((double, double));
extern float powf _PARAMS((float, float));

Первая явно не юзает фпу.
Пробуй powf();

синусов-косинусов и прочих это тоже касается.

rual
Drinker:

Руал, сдорофф!

Сдорофф, Дринкер!

Drinker:

Я не знаю, что ты используешь для кодинга

Использую кейл

Drinker:

но у меня в модуле math есть два определения pow:
extern double pow _PARAMS((double, double));
extern float powf _PARAMS((float, float));

Drinker:

Первая явно не юзает фпу.

Отчего так думаешь? Тоже думал над этим, так глубоко исполнение функции не трассировал. Теоретически дубль можно реализовать несколькими заходами через FPU.

Drinker
rual:

Отчего так думаешь?

Делал контрольный пример. На даблах один и тотже код выполнялся 44 сек, на флоатах - 4сек. При отключении фпу на флоатах тоже около 40 сек.

SergDoc
omegapraim:

Попробуй

мне до ближайшего радиорынка 200км и там нету 😦
ничё всё ОК второй птенец с утра был запущен 😃

ДЛЯ ТЕХ КТО В ТЕМЕ !!! Некоторые изменения: R41=47K, R40=10K !!! - делитель на батарейку если чё…

Drinker:

На даблах один и тотже код выполнялся 44 сек

блин чё приехали обратно к X86 что-ли? в 32-х битном проце, опять всё грузим в АЛУ по 8 бит - только отсюда такие тормоза могут быть?

Drinker
SergDoc:

блин чё приехали обратно к X86 что-ли? в 32-х битном проце, опять всё грузим в АЛУ по 8 бит - только отсюда такие тормоза могут быть?

Сдорофф! Ты о чём? Кто куда че грузит?

SergDoc

ну переменные двойной точности 64-бит правильно? так если бы мы (проц) напрямую работали с 32-х битными переменными - т.е. в регистр бахали сразу 32 бита - то и 64 за 2 раза влезло бы, а так получается по 8 бит в регистр то естественно что 32 и 64 разница офигенная будет…

Drinker
SergDoc:

ну переменные двойной точности 64-бит правильно? так если бы мы (проц) напрямую работали с 32-х битными переменными - т.е. в регистр бахали сразу 32 бита - то и 64 за 2 раза влезло бы, а так получается по 8 бит в регистр то естественно что 32 и 64 разница офигенная будет…

Ёпрст, БЕЗ фпу даблы и флоаты примерно одинаковы по скорости, как только фпу используется - сразу разница в 10 раз.

SergDoc

Дык я про что - получается в ФПУ данные медленно отправляются…
Доделаю то, что обещал(ещё одна платка), тоже присоединюсь к кодятничеству 😃

Drinker
SergDoc:

Дык я про что - получается в ФПУ данные медленно отправляются…

Сергей…Ты чего? ФПУ стм32ф4 НЕ РАБОТАЕТ с даблами, столько синглы. Все даблы софтово обрабатываются.

SergDoc
Drinker:

ФПУ стм32ф4 НЕ РАБОТАЕТ с даблами

так я о чём и толкую - это плохо 😦, у нас помоему “твоя моя не понимает” 😃
а на сколько нужны переменные с двойной точностью - применимо к барометру?

Drinker
SergDoc:

так я о чём и толкую - это плохо ,

Ну так-то да, плохо. Да и фиг с ними - синглов достаточно.

rual
Drinker:

На даблах один и тотже код выполнялся 44 сек, на флоатах - 4сек. При отключении фпу на флоатах тоже около 40 сек.

мда… скорей всего дело в этом, у меня вся коррекция горизонта за 46 мксек выполняется, а там перемножение 8ми матриц 4х4…

SergDoc:

а на сколько нужны переменные с двойной точностью - применимо к барометру?

эта хз, надо проналитить…

Drinker:

Да и фиг с ними - синглов достаточно.

6й знак давления в мБар сколько высоты даёт?

По большому счёту у меня там инерциалка, т.е. влиять должно только на точность удержания. На болтанку больше влияет качество фильтра и вибрации.