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

SergDoc

Вчера пробовал сделать драйвер usb естественно в формате drv_usb.c , drv_usb.h, не вышло - удалил, может сегодня получится… кругом примеры с кучей файлов - брр, фиг разберёшся 😦

oleg70

Глядя на вот это :autoquad.org/about/ , я задумался, в связи с чем применили кучу раздельных датчиков ?
Это видимо лидеры (по качественным показателям) среди MЭMC ?
Вряд ли из-за ограниченности выбора…

SergDoc

все датчики аналоговые, компаса трёхосевого аналогово просто нет, почему выбор пал на idg и isz не знаю, их уже очень трудно достать (может просто запасы есть) а у 600-й серии выход как у муратовских гир - не удобно без внешнего АЦП… я давно прицеливался на эти датчики, но видать не судьба…

IDG500, ISZ500 - 2мВ/гр/с
IDG600, ISZ600 и ENC03 - 0.67мВ/гр/с

Gapey

у IDG650, ISZ650 0.5 мВ/гр/с , но там наборту есть операционники с КУ 4,5 … те после усиления получаем 2.27 мВ/гр/с …
так что можно было обходиться и без внешнего АЦП …
но ксожалению инвенсенс снял с производства ВСЕ аналоговые гиры …
зато к концу года ждемсЪ всё в одном флаконе - MPU-9250 …

SergDoc

надеюсь на место 6000-й встанет? неа оно меньше 😦

Gapey

ага 3х3 мм , корпус скорее всего будет как у IDG/IXZ-2020 16 ногий …

SergDoc

ладно поживём - увидим один проц приберегу…

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 😃