Симулятор для автопилота SmallTim
rcopen.com/forum/f90/topic243418/1741 и далее 40 страниц + блог
По поводу тяги и крутящего момента:
Если пренебречь завихрениями, трениями, боковыми составляющими скорости набегающего потока и т.п., то можно представить силы как на картинке (лень было описание делать путевое просто набросал на листочке и отсканировал). Единственно только для тяги забыл у-ковую оставляющую Х-а отнять, а для крутящего момента х-овую составляющую Y-ка прибавить. Но не суть важно (в голове добавить можно), тем более, что подобные интегралы даже с учетом этой забывчивости раскрывать лень (Если только не совсем упрощать, к примеру “оттангенсоподобить” аэродинамические коэффициенты).
Внизу то же самое для статичиекой тяги. Тут попроще, а с учетом упрощения коэффициентов до линейности и сделанной подгонки контура лопасти совсем все упрощается. Т.ч. реакцию винтов в статике можно так сымитировать, для не быстро летящих вверх/вниз коптеров подойдет, но для самолета (когда существенна скорость набегающего потока) это не реалистично будет.
Шаг винта постоянный. Забыл омегу нарисовать, но можно догадаться, что она направлена по оси y.
P.S. Простите за мой корявый почерк!.. 😃
Упс!.. Только что заметил!.. R- конечно же радиус винта, а не диаметр!..
В принципе можно еще так упростить : Принять, что у винта есть некий эффективный диаметр, на котором вся его площадь лопастей сконцентрирована. Тогда интегралы идут отдыхать и можно свободно Су и Сх любые задать (тип лопастей)… Тогда вообще все можно имитировать!..
Горе я математик!.. Угол таки немного не совсем тот арктангенс, а arctg(H/(2*Pi*r)-arctg(Vm/(r*w)… Спешка, однако…
ааааааа
у меня как-то по-другому мысль работает, все синусами-косинусами пошагово решал. Кирилл, вы просмотрели исходники, что я послал?
Только мельком взглянул… (блокнотом). У меня только дельфи установлена…
Разобрать логику некогда было… Сбросьте вкраце описание миксов для n-коптера. Не обещаю, что на этой неделе (в столицу сорвусь скорее всего), но постараюсь набросать минисим…
квад Х:
1___3
__Х__
4___2
M1: thro+roll+pitch+yaw
M2: thro-roll-pitch+yaw
M3: thro-roll+pitch-yaw
M4: thro+roll-pitch-yaw
1 и 2 крутятся против часовой стрелки, 3 и 4 - по часовой. Классика.
+roll - крен вправо
+pitch - кабрирование
+yaw - поворот по часовой стрелке
ОК! Винтик смоделирую, обсудим…
Винтик для примера (мое видение симуляции) набросал. Прикрепляю…
Суть в следующем:
Определяю некий эффективный радиус винта, такой, что его квадрат, умноженный на площадь лопасти равен интегралу хорда*[квадрат радиуса хорды] по всей длине. // Подлежит обсуждению!..
Ну и считаю, что лопасть - это “плоский” элемент с площадью, равной площади реальной лопасти, расположенный под углом, соответствующим шагу винта на расстоянии эффективного радиуса.
“плоский” в кавычках, т.к. Су и Сх пока упрощенные как в самом симуляторе:
function TForm1.Cy(a: real; n: integer): real;
var r,aa,ak,k1,k2: real;
begin
r:=0;
case n of
0: begin // пластина, критический угол 30
ak:=Pi/6;
aa:=abs(a);
k1:=Pi/2/ak;
k2:=Pi/(Pi-2*ak);
if aa<ak then r:=sin(k1*aa)
else
begin
if aa>Pi-ak
then r:=sin(k1*(aa-Pi))
else r:=cos(k2*(aa-ak));
end;
if a<0 then r:=-r;
end;
end;
Result:=2*r; // максимальный Су=2 (критический угол атаки)
end;function TForm1.Cx(a: real; n: integer): real;
var r: real;
begin
r:=0;
case n of
0: begin // пластина 30
r:=(1.1-cos(2*a));// макс Сх=2 при а=±90;
end;
end;
Result:=r;
end;
На “n” не обращайте внимания - на будущее сделал для разных профилей.
В принципе можно таким образом достаточно правдоподобно сымитировать реакцию от винтов, соответственно имитировать коптеры.
+roll - крен вправо
+pitch - кабрирование
+yaw - поворот по часовой стрелке
+1
Олег, предлагаю вместе попинать Тимофея чтобы он сделал нормальную правостороннюю систему координат…
А то у него +roll это влево и +yaw это против часовой 😦(
Ну и считаю, что лопасть - это “плоский” элемент с площадью, равной площади реальной лопасти, расположенный под углом, соответствующим шагу винта на расстоянии эффективного радиуса.
“плоский” в кавычках, т.к. Су и Сх пока упрощенные как в самом симуляторе:
В принципе можно таким образом достаточно правдоподобно сымитировать реакцию от винтов, соответственно имитировать коптеры.
Не совсем вкурил, но где-то должен быть множителем квадрат угловой скорости… где он?
Как где? Я ж написал, что на квадрат радиуса умножаю… Скорость точки = угловая скорость * радиус…
Соответственно квадрат скорости (а его произведение на площадь и дают аэродинамическую силу) пропорционален квадрату радиуса…
удвойте для проверки обороты - тяга возрастет вчетверо… Это квадрат…
ААААА… Вы про функсии Сх и Су чтоли? так это не силы, а коэфиценты профиля…
“а” в аргументе - угол атаки…
немного не в тему но уже надоело воспрошать!
Кирилл вы лучше Тимофею помогите с новой прошивкой, уберите все баги и исполните все пожелания пользователей, а то честное слово, проект АП умер. Объясните зачем мне этот симулятор если прошивка в АП работает кое-как. Реально только Александр (baychi) чтото делает для проекта АП смоллтим
Если проблемы аппаратные, то я вряд ли помогу (я имею ввиду самостоятельно) без привлечения коллег.
А если нужно поправить логику, то подобный симулятор (если терпения и времени хватит довести до ума) даст возможность быстро и без лишних дров все отладить, а так же наглядно обкатывать всякие новые хотелки пользователей… Это больше инструмент для производителя, а не для конечного пользователя.
Это больше инструмент для производителя, а не для конечного пользователя.
Я про тоже, мне он не нужен. АП освоил, когда были слеты прошивок я в поле приловчился за 20 минут с нуля АП полностью настроить и откалибровать, а пробывать всегда лучше в полете.
Кирилл у вас мозги хорошо работают, это видно по вашим постам, займитесь, допишите прошивку, ВАМ все спасибо скажут
Андрей, не выносите моск Килиллу. Вам он ничем не поможет. С таким же успехом можно стучаться в саппорт M$, чтобы они проделали эту работу за Тимофея. Смолтим автопилот - это проект Тимофея и никто лучше него в его кишках не разбирается. Дожимайте Тима, в какой-то момент дожмЁте. А Кирилл пусть делает физику полета тела, я думаю для него эта гораздо интереснее, чем рыться в чужом коде.
Это больше инструмент для производителя, а не для конечного пользователя.
Вот с этим я не согласен. Оно одинаково полезно и тем и другим. У производителей скорость апдейтов и появления новых плюшек в разы увеличиться, а у пользователей при начальной настройке в разы уменьшиться кол-во дров.
Винтик для примера
Очень интересно получилось, и результат правдоподобный: 10 г/вт с винтом 11х4.7 на 7000 оборотов. В реале с учетом КПД регуля и мотора выходит около 8г/вт на макс. тяге с движком DT750.
Изменение геометрии лопасти - слишком мутное дело. Думаю, лучше оставить за кадром. Считаю лопату по умолчанию оптимальной для “средней температуры в больнице” на первое время 😃
С моментом разобрался: если положительный - скорость потока быстрее шага, т.е. торможение пропеллером.
предлагаю вместе попинать Тимофея
да ладно, вдруг сам исправится? в новой железке
Думаю, лучше оставить за кадром
Да я ее и не собираюсь никому показывать… Это так , для демонстрации задуманного принципа… На самом то деле надо просто подобрать под каждый тип винтов свои % эффективности радиуса и а/д коэффициенты… И просто можно выбрать тип, диаметр и шаг…
С моментом разобрался: если положительный - скорость потока быстрее шага, т.е. торможение пропеллером.
Смотря в какую сторону крутишь!.. Я ж комментарий снизу вставил, что положительное направление момента вперед… А дальше по правилу правой руки…
Подсказки вроде бы сделал: Если шаг отрицательный - то левый винт… Если обороты отрицательные - то левое вращение…
Ну все… До следующей недели ничего больше не поваяю… Пишу по вечерам, скрашивая “холостяцкую” скуку. Но завтра в командировку в Москву… Домой к семье!..😃
По поводу тяги и крутящего момента:
Вроде должна быть еще “скорость протекания” - половина разности скоростей до и после винта (а скорость после винта определяется по тяге).
И угол атаки по размаху - примерно одинаковый делают.
скорость протекания? Я чейто не вкурсе… А тем более эта самая скорость уж очень зависит от точек ее измерения (если можно так сказать). К примеру мне бы хотелось не вводить в настройках сима влияние винта на элементы, а просто его подсчитывать… Но пока затрудняюсь…
Другое дело разность скоростей модели и скорости воздуха через “сечение” винта… Конечно же она определит тягу и наоборот. Т.е. посчитав вышеприведенным способом тягу, можно получить добавочную скорость воздуха, создаваемую винтом. Вот только на практике как ее применить?
И угол атаки по размаху - примерно одинаковый делают.
Такое можно сделать только для определенной скорости набегающего потока, причем шаг винта будет не постоянным.
Кстати, по поводу набора оборотов. Как делать?
Самое простое тупо задать время набора оборотов от нуля до максимума. Но это не интересно.
Можно задать момент инерции пропеллера и разгонять его в соответствии с ним. Тогда реалистичнее будет (проявится гироскопический эффект). Но тут встает вопрос о том, что такое канал управления регулятором (для самолета просто TRO, для коптеров mix)?
Нужна физикоматематическая зависимость канал -> регулятор -> обороты.
Если бы по старинке использовались двигатели постоянного тока, то можно было бы считать напряжение на выходе регуля пропорциональным управляюшему сигналу, и с допущением постоянства сопротивления обмоток получить прямую зависимость канал->крутящий момент…
Были бы моторчики ассинхронные, можно было бы задать, вольтчастотную характеристику регуля, скорее всего она в реальности квадратичная (надо будет притаранить домой осцилограф и посмотреть), ну и банально расчитывать скольжение двигателя…
Но мы же юзаем синхронные двигатели!.. 😵 И что делать? Выход вижу только в задании характеристик регулятора. Какие будут предложения?
Нужна физикоматематическая зависимость канал -> регулятор -> обороты.
Обороты как раз от входа не зависят (только в режиме гувернера, который в квадриках не используется). Вход регулирует вваливаемую в мотор мосщность. Даже не мощность, а скважность ШИМ-заполнения в регуляторе, которым он циклирует обмотки. Ток в обмотках и, соответственно, мощность, уже зависит от оборотов движка (реактивное сопротивление), пассивного сопротивления обмоток, частоты самого ШИМ и напряжения питания.
Может, не надо, а? 😃 Допускаем, что мощность на мотор поступает пропорционально входному сигналу и задаем только быстродействие всей ВМГ: Х секунд от 0 до максимума (в регулях фильтры импульсов есть и проч, что дает доп. задержку), а мотор уже потом раскручивается как-то там с инерцией.