Программа симулятора на базе книги "Автожиры. Теория и расчет"

kolibri282

Я люблю строить математические модели винтокрылов
Всех приветствую,

Сначала я хотел бы попросить прощение из-за моего неудовлетворительного русского языка

Я писал программу, который формулы для расчета таблицы 6 Страница 80 из книги

И.П.Братухин Автожиры. Теория и расчет
http://twistairclub.narod.ru/bratgyro/contens.htm

реализовывает. Программа может здесь сгружаться:
http://www.divshare.com/download/13347679-eac


В файле ReadMe.txt несколько особенностей при программе объяснены. Было бы прекрасно, если кто-то этот файл на русский язык мог бы переводить.

Программа бежит под Matlab или octave, бесплатному программу, с который Matlab
*.m файлов может выводить. octave можно здесь получать:
- MinGW/Octave 3.2.4 for Windows MinGW32 Installer/Octave-3.2.4_i686-pc-mingw32_gcc-4.4.0_setup.exe/download
Я также радовался бы если бы у кого-то был совет где я могу заставать других энтузиастов авиации, которые интересуются программами симуляция

веселое симулирование!
(Happy Simming!)

Юрген Гумт
(Juergen Humt)
 
Всех приветствую,

Сначала я хотел бы попросить прощение из-за моего неудовлетворительного русского языка
Don't worry! 🙂

Я писал программу, который формулы для расчета таблицы 6 Страница 80 из книги

И.П.Братухин Автожиры. Теория и расчет
http://twistairclub.narod.ru/bratgyro/contens.htm

реализовывает. Программа может здесь сгружаться:
http://www.divshare.com/download/13347679-eac


В файле ReadMe.txt несколько особенностей при программе объяснены. Было бы прекрасно, если кто-то этот файл на русский язык мог бы переводить.

Программа бежит под Matlab или octave
How about rewrite it to Pascal? So that program run without Matlab or octave.
 
Тогда нужна Паскал compiler. У некоторых пользователей была бы, вероятно, лучше всего версия в OpenOffice Calc (или Excel), однако, там в программе все формулы имеют не требуется больше чем (пол?) часа
 
Ява скрипт - это, мне казаться, очень хорошая идея. Программа бежит на каждом компьютере и есть все же легкий доступ к исходным языке. К сожалению, у меня есть с Явой скриптoм небольшой опыт, но, пожалуй, имеется здесь в форуме кто-то который Яву версию может писать.
 
Да, да, к сожалению, время ценнее чем золото! Это было бы великолепно, если бы тебе удалось брать себе немного из этого...;-)
Книга понравилась мне таким образом, что я просто не мог иначе чем программа писать. Я надеюсь, что это поможет всех любителям автожиров, которые хотят учиться чуть больше о теории. Ява скрипт версия используется определенно большим количеством людей чем Matlab/octave
 
Давайте пойдем по порядку.
В первой строке значение задается для расчета, если я правильно понял.
Во второй строке просто значение первой строки в квадрате.
Как считается значение третьей строки?

Дело в том, что я не интересовался автожирами и процесс интересен мне исключительно в плане создания программы.
По следующим строкам вопросы будут позже.
 
К сожалению, я не понимаю вопрос. Первая строка, в которой квадрат рассчитывается - 63:
gamRot2=gamRot*gamRot;

Начало программы выглядит в Яве таким образом:

package avtogir;
import java.io.*;

public class AvtogirStart {

     /**
      * @param args
      */
     public static double deg2rad(double fhi) {
           return fhi*Math.PI/180.0;
     }

     
     
     
     public static void main(String[] args) {
           // TODO Auto-generated method stub
       double rhoAir, mGyro, rRot, gamRot, dltN, aLift, thtaN,
              Cxk, Cyk, tauP, kSig, epSk, c13, gamRot2, dAx,
                   c1m5, c1p5, c1p52, c1m52, c1pm, c1p9,
                   C1c, C2c, C3c, C4c,
                   mu, mu2, pC, qC, xh, xLam ;
      
       int kEnd, numRes, i, j, kR;
      
       rhoAir=1.234;      // density of air [kg/m[ch65533]]

      mGyro =   950;     // mass [kg]
       rRot  =     6;     // rotor radius [m]
       gamRot=     8;     // rotor lock number

           dltN  =     0.006; // blade profile drag coefficient
           aLift =     3.0;   // blade profile lift curve slope
           thtaN =     2.0;   // blade pitch [deg]

           Cxk   =     0.01;  // drag of wing profile
           Cyk   =     5.2;   // lift curve slope of wing profile and finite span

           tauP  =     6.5;   // angle of propeller Axis

           kSig  =     0.1145;   // rotor solidity kSig=n*c/(pi*rRot)

           epSk  =     0.5;

                                                // prepare coefficients used in calculation
           thtaN= deg2rad(thtaN);
           tauP = deg2rad(tauP);

           c13    =1/3;
           gamRot2=gamRot*gamRot;
           dAx    = 0.5*dltN/aLift;
     
           kEnd=10;
        numRes=27;
           
           double [] muA = new double[kEnd+1];
           double [][] rsC = new double [kEnd+1][numRes+1];
           
           
           muA[1]=0.07; muA[2]=0.086; muA[3]=0.1;    muA[4]=0.12;   muA[5] =0.15;
           muA[6]=0.195; muA[7]=0.24; muA[8]=0.2827; muA[9]=0.3463; muA[10]=0.4;

           
           kEnd=kEnd+1;
           for( i =1; i < kEnd; i++) {
             kR=1;
             mu = muA;
             rsC[kR]=mu;  kR=kR+1;

             mu2=mu*mu;
             c1m5 = 1-0.5*mu2;
             c1p5 = 1+0.5*mu2;
             c1p52= c1p5*c1p5;
             c1m52= c1m5*c1m5;
             c1pm = 1+ mu2;
             c1p9 = 1+4.5*mu2;
            
             C1c=mu2*(gamRot2/162*c1p9*c1m52 + 3*c1p5*(1+mu2/6))+c1p5*c1m52;
            
             C2c=mu2*(gamRot2/108*c1pm*c1p9*c1m52 + 16*c13*c1p52) +2*c13*c1p5*c1m52;
              
             C3c=mu2*(gamRot2/288*c1pm*c1pm*c1p9*c1m52 + 16*c13*c13*c1p5*(1+1.5*mu2));
            
             C4c= -dAx*c1pm*c1p5*c1m52;
            
             pC= 0.5*C2c/C1c*thtaN;
            
             qC= (C3c*thtaN*thtaN + C4c)/C1c;

             xh = Math.sqrt(pC*pC - qC);
             xLam= -pC + xh;
            
           } // end for

           xh=0;
     }

}



В Яве скрипте это должно было бы быть настолько похоже. Помогает ли это?


PS: большое спасибо, slavka33.150!
 
Пользователь задает
1) плотность среды
2) массу автожира
3) радиус ротора
4) не понял че, можно разобраться при необходимости, что-то про ротор
5) Сх профиля лопасти
6) какой-то аэродинамический коэффициент профиля лопасти, не помню, как называется
7) угол установки лопастей ротора
8) Сх профиля крыла (если оно есть)
9) то же, что и п.6, но для профиля крыла
10) размах крыла
11) отношение площади крыла к ометаемой площади ротора
12) угол наклона оси пропеллера
13) плотность ротора (ну или что-то такое), какая-то его геометрическая хар-ка
14) площадь эквивалентной плоской пластины

Все это задаем - получаем поляру автожира Су от Сх

Все
 

Вложения

  • Bezymjannyj_014.jpg
    Bezymjannyj_014.jpg
    116,2 КБ · Просмотры: 155
rhoAir=1.234;      % density of air [kg/m[ch65533]] (1

mGyro =   950;     % mass [kg]                (2
rRot  =     6;     % rotor radius [m]         (3
gamRot=     8;     % rotor lock number        (4

dltN  =     0.006; % blade profile drag coefficient (5
aLift =     3.0;   % rotor blade profile lift curve slope (6
thtaN =     2.0;   % blade pitch [deg]                    (7

Cxk   =     0.0051;  % drag of wing profile               (8
aLKrl =     4.2;   % lift curve slope of wing profile, infinite span (9
bKrl  =     1.2*rRot; % wing span                         (10

SpiR2 = 0.06; % wing area divided by disk area            (11


tauP  =     6.5;   % angle of propeller Axis              (12

kSig  =     0.1145;% rotor solidity kSig=n*c/(pi*rRot)    (13
fpA   =     1.2;   % equivalent flat plate area [m^2]     (14


Параметр отсутствует (15)

epSk  =     2.0;   % Угол между крылом и средней осью фюзеляжа    (15
 
Черновой набросок ядра расчета и представления результата таблицей по адресу:
http://s-flycat.narod.ru/calculate/Giro1.html

Модуль ввода пока не делал. Вывод графики тоже. Сперва поработаю с модулем расчета.
Поскольку в теории автожира и ротора я не разбираюсь совсем, объясняйте что к чему.
3 строка
x=u/[ch937]/R
R - радиус ротора,
откуда брать u и [ch937]? Разные ли они в разных столбцах?
 
Скорость воздуха, который наталкивается на ротор разбирается в компонентах.
u - вертикальный компонент скорость воздуха, это значит перпендикулярный плоскостью вращения ротора.
при расчете ротора все уравнение делаются безразмерными и поэтому  разделют u на  ([ch937]*R)
[ch937] - угловая скорость вращения ротора, [ch937] рассчитывается в строке 244
u имплицитен в xLam
 
u - вертикальный компонент скорость воздуха, это значит перпендикулярный плоскостью вращения ротора.
при расчете ротора все уравнение делаются безразмерными и поэтому  разделют u на  ([ch937]*R)
[ch937] - угловая скорость вращения ротора, [ch937] рассчитывается в строке 244
u имплицитен в xLam
извините, меня более интересуют исходные данные, нежели методы их обработки. Я не могу взять из вашей программы методику расчета, просто скорректировав различия смнтаксиса, поскольку она будет тяжело и медленно обрабатываться на скрипте, а разбираться в слабо комментированной программе просто нет времени.
Строка 244 эта:
  oMR= vGyro*cos(iRad)/mu;  ?
тогда откуда брать vGyro и cos(iRad)? просто я не представляю себе теорию автожира абсолютно. Лучше написать исходные данные и формулы в привычном виде, а не в том, как они существуют в программе.
Давайте так: что из исходных данных я должен взять и как их обработать, чтоб получить недостаюшие элементы для табличных формул? Только по возможности в привычном виде, тогда перед таблицей получится описание методики с исходными формулами, которое позволит не просто получить результат, но и понять сам процесс расчета.

Lev D, я програмку делаю и меня интересует не только то, что задается, но и как это считается и по каким формулам.
Даже Вы, как специалист, не смогли вспомнить и пояснить часть исходных данных, не говоря про методику, мне же лучше всё это выдать в виде исходных формул.

Я понял, почему в России так мало пишется программ по расчету летательных аппаратов: те, кто умеют считать не могут объяснить как считать тем, кто программирует.
 
vGyro рассчитывается в строке 238
iRad рассчитывается в строке 173

если последовательность расчета не изменяют факт не имеется проблемы
 
vGyro рассчитывается в строке 238
iRad рассчитывается в строке 173
...

Это я понял.
Но исходные данные для этих строк расчитываются в предидущих строках, а для тех, еще раньше. Запись формул в теле программы не информативна внешне, проще писать их в обычном книжном виде.
Придется восстанавливать исходные формулы самостоятельно. Или подробно изучать книгу с самого начала.  🙂
 
Поможет ли, если я по-новому перепишу всю программу в Яве?
 
flycat сказал(а):
Странно, что активно дискутировавшие в других темах местные теоретики от автожиростроения на сей раз как воды в рот набрали.
А какой смысл обсуждать программу практически без комментариев на непонятном языке? 🙂
Для сравнения, в моих программах комментарии занимают в несколько раз больше места, чем строчки на "машинном языке". И они позволяют однозначно понять, что именно и зачем делается. Только так есть шанс а) аккуратно отладиться, б) позже при необходимости аккуратно вносить изменения.

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

Если программа не имеет практической ценности, то скажите об этом, если имеет, давайте совместно составим толковую методикчу по расчету.
Может сперва надо определиться, что именно хочется считать? 🙂

А потом уж можно будет и в исходных данных разобраться, и в расчётных формулах, и в пользовательском интерфейсе...
 
DragonSmile  http://s-flycat.narod.ru/calculate/Giro1.html
была предпринята попытка переписать программу на скрипте, однако программа плохо откомментирована, а я в автожирах не спец, поэтому попробую копнуть и теорию автожира и к программе комментарий написать. Программу для Матлаба писал не я, я разбатываю ту, что по ссылке в этом посте.
Для программы в Матлабе пытаюсь сейчас написать русский комментарий.
 
Назад
Вверх