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

Gapey

интересно кто первый сделает 10DOF в одном корпусе … у ST вроде как есть MEMS баро , осталось только скрестить с остальными …
или родить модуль типа INEMO только с 4хх проциком …

SergDoc

я думаю f3 для чисто иму будет за глаза - fpu есть и скорости хватит вполне…

rual
VitaliyRU:

Т.е. НЕ имеет права на жизнь?

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

Gapey:

родить модуль типа INEMO только с 4хх проциком …

SergDoc:

f3 для чисто иму будет за глаза - fpu есть и скорости хватит вполне…

inemo ну очень дорого и не чего особенного, главное Аксель ЛСМ, такой же как и 400рублёвой Ф3дисковери.

SergDoc

Александр, а ты куда запропастился? или готовишь что-то грандиозное? 😃

oleg70
Gapey:

модуль типа INEMO

Сама по себе идея отдельного модуля IMU по моему хороша, если б его сделали как один чип с выходом данных в виде углов эйлера (кому нужны угловые скорости и т.п.), а так разницы никакой, только лишний проц…

rual
SergDoc:

Александр, а ты куда запропастился? или готовишь что-то грандиозное? 😃

Учу математику, пытаюсь придумать более полные алгритмы ИНС (учесть все ускорения, моменты, погрещности и отдлить их друг от друга). Пока рисую в матлабе, до железа пока не добрался.

VitaliyRU
rual:

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

Видимо все же надо самому попробовать, что бы говорить на одном языке. Пока не сообразил, почему не будет работать на всех ДУС.

rual:

Учу математику, пытаюсь придумать более полные алгритмы ИНС (учесть все ускорения, моменты, погрещности и отдлить их друг от друга). Пока рисую в матлабе, до железа пока не добрался.

Вот такая же фигня(тока физику и термех? вспоминал), написал и отладил стабилизацию без PID. Все никак на железо не перенесу. И вообще забил на это. Буду отлаживать на писюке через серийник, так удобней на порядок(бряки, замедленный просмотр по логам), потом просто библиотеку к пректу подключить.

oleg70
VitaliyRU:

не будет работать на всех ДУС.

Работать будет, Александр видимо хотел сказать что алгоритм для каждой модели чипа будет отличаться, производители чипов любят “разнообразные подходы”, я с L3gd20 так и понял “замысел” такого формата температуры на выходе…

VitaliyRU:

физику и термех

Под эту тему надо ТАУ (теория автоматического управления) штудировать, но там достаточно все мудрено… (дисциплина высшей школы).

VitaliyRU
oleg70:

Работать будет, Александр видимо хотел сказать что алгоритм для каждой модели чипа будет отличаться, производители чипов любят “разнообразные подходы”, я с L3gd20 так и понял “замысел” такого формата температуры на выходе…

Ща же вроде MPU6050 наше все. И по слухам все улчшайзинги в софте, а не по железу(заводская калибровка и фильтры), из MEMS вроде по железу лучше не куда. Сняли аналоговые дачики с производства, еще ныть будем, что аналоговых не осталось, все же софтовые улучшения коробят измеренные данные.

SergDoc
rual:

Пока рисую в матлабе, до железа пока не добрался.

надо и мне разобраться с этой штукой, а то как-то начал изучать и забросил…

Razek
oleg70:

для меня всегда проблематично, считаю

Резонно, самого коробит от кучи проводов и плат никак не могу привести все в прядок, хочется чтоб выглядел аккуратно, а выглядит как комок проводов
dl.dropboxusercontent.com/u/…/IMG_4985s.jpg =((

oleg70

Чет я запутался (подскажите кто может), : в цикле посчитал три ПИДа (тангаж, крен, вращ.) , а теперь надо их с разными знаками, для каждого мотора, прибавлять к общему ГАЗу и “совать” на движки ??
Правильно ? Может кусок кода у кого под рукой…

SergDoc

А я исходники просто так выкладываю 😃 github.com/SergDoc/…/mixer.c

static const motorMixer_t mixerQuadP[] = {
    { 1.0f,  0.0f,  1.0f, -1.0f },          // REAR
    { 1.0f, -1.0f,  0.0f,  1.0f },          // RIGHT
    { 1.0f,  1.0f,  0.0f,  1.0f },          // LEFT
    { 1.0f,  0.0f, -1.0f, -1.0f },          // FRONT
};
static const motorMixer_t mixerQuadX[] = {
    { 1.0f, -1.0f,  1.0f, -1.0f },          // REAR_R
    { 1.0f, -1.0f, -1.0f,  1.0f },          // FRONT_R
    { 1.0f,  1.0f,  1.0f,  1.0f },          // REAR_L
    { 1.0f,  1.0f, -1.0f, -1.0f },          // FRONT_L
};

ну и для моей кривой рамы:

static const motorMixer_t mixerQuadXSerg[] = {
    { 0.87f, -1.0f,  1.0f, -1.0f },          // REAR_R
    { 1.0f, -0.47f, -1.32f,  0.75f },        // FRONT_R
    { 0.87f,  1.0f,  1.0f,  1.0f },          // REAR_L
    { 1.0f,  0.47f, -1.32f, -0.75f },        // FRONT_L
};

столбцы соответственно для каждого мотора trotthle, roll, pitch и yaw 😃

rual
oleg70:

а теперь надо их с разными знаками, для каждого мотора, прибавлять к общему ГАЗу и “совать” на движки ??

Совершенно верно, каждый компонент ориентации матрично приводиться к конфигу рамы, для квадры Х: ++ – -+ ±

oleg70:

Может кусок кода у кого под рукой…

Кода под рукой нет, но на ветке гдето валяется мой проект см. файл mixer.cpp, сама матрица в моих настройках выглядит так

...
РусИНС1.0>АП.СУММАТОР:
Матрица управления:(N Канала),Крен,Танг,Рыск,Тяга >:
        Крен    Танг    Рыск    Тяга
KAH1:   625     -625    -500    1800
KAH2:   625     625     500     1800
KAH3:   -625    -625    500     1800
KAH4:   -625    625     -500    1800
...
РусИНС1.0>АП.СУММАТОР:
oleg70
rual:

матрично приводиться

А что, ограничений по модулю не делается ? А если условно Газ + ПИД вылезет за пределы допустимого (у меня) диапазона 1000-2000 ? (Ваш проект у меня есть, но видать старый, нет там mixer.cpp) просто подскажите, если не трудно, а то хочется полетать уже…

Vasilich11

А данные опции расширяемы?
Читаю про АЛТ ХОЛД - его у меня не наблюдается.
Что даёт просто включенный баро датчик?

Упс извиняюсь не в ту ветку сообщение залепил.

rual
VitaliyRU:

Вот такая же фигня(тока физику и термех? вспоминал), написал и отладил стабилизацию без PID.

Стабилизация без ПИД это круто, как учитываются в стабилизации ускорения и моменты инерции?

VitaliyRU:

Буду отлаживать на писюке через серийник, так удобней на порядок(бряки, замедленный просмотр по логам), потом просто библиотеку к пректу подключить.

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

SergDoc:

надо и мне разобраться с этой штукой, а то как-то начал изучать и забросил…

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

SergDoc:

вывод напрашивается - мосх должен быть тяжелым…

Точнее инертный, не должен воспринимать высокочастотную вибрацию некомпенсируемую математикой, но и не должен иметь резонансов на НЧ.

Razek
rual:

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

В принципе ничего сложного нет. Если знакомы с MSVC, то вообще проблем не должно быть, есть кучу сайтов где можно скачать нужные контролы для приложений если лень разбиратся и писать свои. Тем более для наших целей ничего специфичного не нужно. www.codeproject.com
http://codeguru.com