Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

  » "Семерка" (МБР Р-7) для Orbiter | страница 4
Конференция предназначена для общения пилотов. Для удобства она разделена на каналы, каждый из которых посвящен определенной игре. Пожалуйста, открывайте темы только в соответствующих каналах и после того, как убедитесь, что данный вопрос не обсуждался ранее.

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 4 из 31
На страницу: Пред.  1, 2, 3, 4, 5 ... 29, 30, 31  След.    Перейти:   Все страницы
Поиск в этой теме:
Канал Orbiter: «"Семерка" (МБР Р-7) для Orbiter»
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Дык по моему способу - елы палы изобретен велосипед, собственно я и не сомневался что оно так и есть. Главное найти где он зарыт.
Оказывается такое управление относится к классу логарифмических
XXX=K(XX^m/X^n)[+R*f(X,XX)]
число X минус один - номер производной ХХХ-вторая
^ степень
Член в квадратных скобках - внешний к классу и превносит временную задержку.
То есть у меня m=1 n=0.5 K= sqrt(2/XXXmax)~3...5 R=0
Однако рекомендуется m=2 n=1 0.5<K<1 R=0 - мерикосы били пяткой в грудь (статья 61 года), что при этом обеспечивается высокая управляемость для очень большого количества навигационных задач (типа Х=XX*t+XXX*t^2/2) и очень слабая зависимость от K.
Дык если рулевик находится в движении - это звено задержки и все вытекающее из этого, другое дело, что задержка есть и будет.
Гыг попробуй следующее.
1. Навесить закон перемещения рулевиков A=A0+AA*t
2. Соответственно закон управления, например, XXX=XXXmax*sin(A)=a*X+b*XX или указанный выше или вовсе реальные уравнения движения (наилудший вариант).
Теперь все замыкается на АА.
3.Дык остается задатся законом изменения AA. С точки зрения теории управления он должен быть импульсным (я так думаю, по аналогии с импульсностью тяги)- AA должен принимать крайние
значения или ноль.
То есть можно сказать, что (1) станет
A=A0[+AAM*ds(t,t1,t2)-AAM*ds(t,t2,t3)]разгон[-AAM*ds(t,t4,t5)+AAM*ds(t,t5,t6)]тормз (1)
t1- начало разгона
t3- конец разгона
t4- начало торможения
t6- конец торможения
t2 и t5 - моменты перекладки, такие что
A при t3 = A при t6 =0 (2 и 3)
ds(x,y,z) - функция образующая прямоугольный единичный импульс когда x лежит между y и z.
Плюс
любое t >=0
t6>t5>t4 (> или <) t3>t2>t1
итого уравнений 5 ((1)-(3) плюс два движения самой БР)
неизвестных 6 t1-t6, возможно, но вовсе не очевидно, что t3=t4, потому как возможно (читай иначе) t1=0, что думается лудше будет.
Решаем численно систему (мот можно и аналитически, но думаю получится нечто сложное).
В итоге получится последовательность
- Не очевидная пауза (которая либо здесь либо в конце разгона)
- рулевик отклоняется разгоняя движение РН в сторону ошибки
- релувик возвращается в ноль, РН движется в сторону ошибки
- Не очевидная пауза (которая либо здесь либо в самом начале)
- рулевик отклоняется в обратную сторону тормозя движение
- релувик возвращается в ноль, у РН устраняется ошибка и она движется с заданной скоростью.
Сложновато, думаю такое реализовать, но это будет предельный по быстродействию устранения ошибки алгоритм, в принципе избавленный от неустойчивости. Хотя и то и другое не факт. Например с точки зрения управления по тангажу ошибка по углу превалирует над ошибкой скорости изменения угла и возможно построить более быстродействующий алгоритм , который сначала будет устранять только угол а потом совместно угол и скорость.

ЗЫ. На счет робототехники и пр. Гыг я по специаности ЖРДист дык конечно ТАУ нам читали и елы палы существует столько тонких мест в каждой области что худо становится когда начинаешь раскопки по вопросу... Например что такое фильтр Калмана знаешь?
Дык он здесь тоже может вписаться - Полная мат модель есть, полное приборное обеспечение тоже, число управляющих параметров достаточное для решения задачи - вывод существует некотрая совокупность управляющих параметров которая не нуждается, в случае применения фильтра в управлении. Например, если знаем ошибку по углу, мат модель, все параметры состояния по углу (вплодь до второй приизводной) - то знать ошибку по угловой скорости вовсе необязательно. Фильтр сам ее определит исходя из изменений ошибки по углу.
    Добавлено: 16:36 10-05-2006   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Bloodest :
что такое фильтр Калмана


Знаю. Только зачем он в полностью наблюдаемой системе Улыбка?

Спасибо за ликбез. Буду пробовать.
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 11:32 11-05-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Эээ скажем, я погрячился, собственно это просто адаптивный алгоритм. Идея применять фильтр не для дополнения и уточнения наблюдений а для уточнения мат модели. Есть КК на орбите нужно держать его прогрейд, есть вектор требуемого положения, а вот его изменение во времени не известно (слишком много факторов). Система которая будет выфильтровывать угловую скорость и строить закон ее именения будет много точнее держать ориентацию. Тут с авиационной пушкой Р23 развлекался - подобный алгоритм позволяет держать цель на мушке с точностью до 0,5 угловой секунды и завигачить подарочек с дистанции в 50 км. Если цель, конечно, не совершит смену маневра.

Дык по теме надыбал журналец - Космические исследования май-инь 88 ого (том 26 выпуск 3). Там две статьи по данной области - "Оптимальное управление ... переоринтации ... КА" и
"Численный анализ ... разворота... с помощью маховичной системы"
Первая рассматривает задачу изменения углового положения спутника в (самом простейшем варианте) - паказано, что оптимальным из положения покоя в положение покоя как по времени так и по расходу топлива будет равномерно-ускоренное затем равномерно-замедленное вращение вокруг неподвижной оси в сторону меньших углов.
Вторая хотя про маховик (но он работает в идеальном режиме либо включен, либо выключен) однако все просто дико элементарно. Т.е. никаких численных расчетов не надо.
Гыг конечная выжимка - есть Фазовая плоскость с осями X и ХХ
сответственно две точки - целевая и начальная (надо попасть из начальной в целевую).
Дык - идем от обратного Строим целевой целевой две ветки - полупараболы - движения в фазовом пространстве - одна с отрицательным иправлющим моментом, дрыгая с положожительным.
в общем (у них конечное состояние - покой)
XX=sqrt(2*K*abs[Xc-X])*sign(Xc-X) (1)

Елы палы показано что все управление сводится к выбору такого знака U=+-1, что
для
XXX=K*U
XX=XX0+XXX*T
X=X0+U*(XX^2-XX0^2)/2/К
движемся из начальной точки и пересикаем (1) здесь происходит переключение U на обратный знак. Все дальше положение по границе фаз (1) скатится в требуюмую точку.
Просто до безумия Гы-гы
Весь алгоритм
GG=sqrt(2*K*abs[Xc-X])
U=1 если
X<=Xc и XX<=GG
или
X>Xc и XX<-GG
иначе
U=-1
    Добавлено: 14:26 11-05-2006   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Bloodest :

GG=sqrt(2*K*abs[Xc-X])
U=1 если
X<=Xc и XX<=GG
или
X>Xc и XX<-GG
иначе
U=-1


Ага, это вытекает из принципа максимума Понтрягина. Именно так у меня сейчас "семерка" и управляется Улыбка. Я обалдел когда увидел результат.
Только этому случаю соответствует модель

dx1/dt = x2

dx2/dt = u

где u - управление, x2 - угл. скорость, x1 - положение.

Но если рулевики поворачиваются с конечной скоростью, то

dx1/dt = x2

dx2/dt = k*x3

dx3/dt = u

где x3 - угол поворота, u - угловая скорость рулевиков, k - некий коэффициент пропорциональности. Тут будет уже два переключения, и кроме управления будет ограничено и x3. В принципе можно и так замутить Улыбка.
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 10:12 12-05-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Да попробывал - работает и еще как - держит угол с точностью 0,001 градуса. Можно и меньше - дык надоть разобратся с финишем - когда время устранения ошибки при использовании максимального ускорения будет соразмерно или меньше шага симуляции...
Дык время выполнения операции
T=T1+T2
T1 - устранения ХХ в ноль (отрицательно, если движение не подразумевает останов)
T2 - перемещения из XX=0 в целевую точку
T= -U*XX/K+2*sqrt(U*K*(Xc-X)+0.5*XX^2)
Дык остальное - дело в шляпе -
если T<10*SimdT K=K/2 и новый цикл.
    Добавлено: 13:45 12-05-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
astronavt :
В принципе можно и так замутить Улыбка.


Можно, конечно, причем для релейного управления, впринципе не фажно sin просто к
Потому как (далее подробно для остальных читателей)
Фазовые переменные, Xi, определяют положение системы
1-Угол РН
2-Угловая скорость РН
3-Угол рулевого движка
U - управляющее воздействие - скорость поворота рулевого движка
Система (записана, так что слева перечисленны первые производные фазовых
переменных от времени)
XX1=X2
XX2=Ku*sinX3
XX3=U
Функционал
H=Summ(Wi*XXi)=W1*X2+W2*Ku*sin(X3)+W3*U
где Wi - вспомогательные переменныеGG=sqrt(2*K*abs[Xc-X]/{cos(X3)*Ku})
Вспомогательная система будет
WWi=-dH/dXi
WW1=0
WW2=-W1
WW3=-d(W2*Ku*sin(X3))/d(X3)=-W2*Ku*cos(X3)

Дык, считаем U - релейной, тогда, максимум H будет
образовыватся знаком U в соответствии со знаком W3.
U , положительна, если W3 положительна.
Тогда, для сиюминутного управления нужно знать только знак W3 долько для данного момемента.
Это можно сделать уже описанным способом разделения фазового пространства
dX1/dX3=X2*Ku*sin(X3) (тогда как ранее dX1/dX2=X2)
откуда при U=1
X1=0.5/K*Ku*X2^2*cos(X3(t=0))+X1(t=0)
и правило становится

Код:
GG=sqrt(2*K*abs[Xc-X]/{Ku*cos(X3)})
U=1 если
X<=Xc и XX<=GG
или
X>Xc и XX<-GG
иначе
U=-1


счас буду пробывать...

=======================================================================
Не не поехало...
Пошел слегка модифицированный импульсный

Код:

/***********Вход********************/
double X ;//Величина ошибки по углу +3 - нужно довернуть на три градуса
double XX ;//Величина ошибки по скорости (Действующая минус конечная)
double K  ;// Угловое ускорение при максимальном воздействии управления
double AnglePR;//Положение руля
double SimdT;//Шаг симуляции
/**********Промежуточные************/
double Tk=-1;//Время выполнения маневра
double Tn=-1;//Время до импульснго переключения (перекладки знака момента управления)
double T0=-1;//Время перекладки руля в ноль
int stat =0;//Анализатор логики
/***********Выход*****************/
double upr;//величина управления
/**********Алгоритм***********************/

//Импульсная часть
   double F = sqrt(fabs(2*K*X));
   if( (X>=0 && XX<=F) || (X<0 && XX<-F) ) upr=1;
   else upr=-1;
//Вычисление времен
   Tk = (-upr*XX+2*sqrt(upr*K*X+0.5*XX*XX))/K;
        Tn = 0.5*Tk-upr*XX/2/K;
   T0 = fabs(AnglePR/(20.*RAD));
//Переходник от импульсного к повороту РУД
//=Если Время поворота РУД из настоящего положения в ноль превышает
//=время достижения точки перекладки знака момента
//=и
//=КК правильно выполняет команду движения
//=то
//=Начинается поворот РУД в противоположном движению направлении
//=с целью   обеспечить в момент Tn нулевое положение РУД
   if(T0 >= Tn && upr*AnglePR>0)
   {
      upr=-upr;
      stat+=1;
   }
//Дебуг
sprintf(oapiDebugString(),"U %2.0f AT %9.4f  TK %9.4f TN %9.4f T0 %9.4f st %d",
      upr,AnglePR*DEG,Tk,Tn,T0,stat);

//Имитатор вращения
    AnglePR+=upr*20.*RAD*SimdT;
    if(fabs(AnglePR)>=45.*RAD) AnglePR=45.*RAD * dSign(AnglePR);
    upr=sin(AnglePR/sin(45.*RAD);
//далее upr предается функции SDK управляющие величиной тяги РуД


Все это запихнуто в LauncherMFD. Тестировалось на DG и Протоне.
При устранении большой ошибки >10 градусов. РН совершает колебания вокруг целевой точки с затухающей амплитудой (Для Протона 1/4 от предыдцщего максимума (10 -2,5 0,6 -0,1). Причем дебуг четко показывает что данная неприятность возникает в период работы переходника
stat=1; Угол Руд идет к нулю; Время Tk растет - те это цена за упрощение - точка перекладки начинает смещаться.

В статике РН совершает колебания вокруг нуля за счет пошаговости симулятора. Например при шаге симулятора 0,02 секунды - шаг перекладки составит 0,05*20=1 градус. РуД будет совершать колебания +-0,5 градуса.
У Протона при этом положение колеблится примерно +- 0,1 градус.

Результат выведения хотя и не совсем мягкий и гладкий но ни чем по конечному результату не отличающийся от других алгоритмов управления РУД
(логарифмического и импульсного).
    Добавлено: 11:53 15-05-2006   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Елки зеленые, давно тут не был!!! У меня в универе интернет накрылся, и дома телефон отключили за неуплату. Так что сушу сухари...
Проект продвигается, не мытьем так катанием. Правда времени сейчас нет - пишу диплом на втором образовании, делаю всякие шабашки, даже диссер забросил. Хотел было выдложить очередную демку, но обнаружилдись дикие глюки с автопилотом. Так что пока возякаюсь с отладками. Вот такие дела.
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 12:48 08-06-2006   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Ух, ну наконец-то я расплатился за телефон. Ура! Снова здесь, надеюсь надолго.

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

P. S.:
Одного не могу понять - как в конце 40-х годов, без компов, расчитывались активные участки ракет Р-1? Это ж повеситься можно... Да и когда "семерку" делали, компы, разве что на лампах были...
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 18:21 30-06-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Как?, также как сейчас считали - только вместо центрального процессора, ОЗУ, винчей х-ва туча расчетчиц с феликсами ( машинка такая была для расчетов). ввиду большой стоимости работ все результаты расчеты считались секретными - я застал, студентом, в спецбиблиотеке один такой томик (конца 50х). Мы недоумевали, а почему он секретный Хы... - проф нам объяснил...
    Добавлено: 21:54 30-06-2006   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
"Феликс"? Знаю такую беду Хы.... Блин, и диффуры решали Вау!. М-де...

Я тут наковырял у SFinX книжечку "Баллистический расчет ракет". Появились кое-какие мысли по упрощенному алгоритму.
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 22:13 30-06-2006   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Ну вот, не мытьем так катанием сварганил я новую демку.

http://texband.nm.ru/pub/dimonspage/orbiter/R7_demo7.zip

Долго я возился с автопилотом, итерационно подбирающим коэффициенты линейного тангажа. Залез в такие дебри, что пока не в состоянии выбраться. Надо еще подумать. А пока реализовал простейший алгоритм. Идея появилась после прочтения поста в теме о наведении Фау-2 цель, вкупе с прочтением отрывков книжки «Баллистическое проектирование ракет», скачанное с сайта http://www.orbiter.uaone.com + внимательное прочтение постов Bloodest’а по сабжу. Суть в следующем.
Считаем начальный азимут, поворачиваем ракету, пускаем ее. Отрабатываем тангаж, с целью установить его на каком-либо определенном значении (у меня 20 градусов). По пути пересчитываем азимут и скорость необходимые для попадания в цель с текущей высоты при броске под текущим углом к горизонту (угол этот естественно вычисляем). Азимут отдаем на съедение гироплатформе, с которой снимаем ошибку по рысканию и тангажу. Скорость используем для определения момента отсечки – если текущая скорость равна или превышает ее, вырубаем движки.
Результат – точность от 20 до 60 км, что в 2-6 раз лучше, чем в предыдущей демке (там вообще чушь собачья). Разброс конечно сильный, но тут еще играет роль недолет из-за торможения БЧ атмосферой на конечном участке. Хотя для «Кузькиной матери» в 50 мегатонн, вполне Улыбка.

Для рядового пользователя стрельба пока только по Камчатке в точку 55 с.ш., 165 в.д. (вернее Тихому океану, у Мартина география не совпадает с глобусом – на глобусе Камчатка, а в Orbiter - океан). Чтобы задать другую цель, к моему великому сожалению (честно, не успел пока!!!), нужно перекомпилировать проект. Переменные lambdaT – долгота, и phiT – широта, инициализируется в конструкторе класса R7_second_stage. Понимаю, что это не дело, но ОЧЕНЬ хотелось что-нибудь выложить, а времени не было. И так в теме затишье больше месяца, народ может подумать, что умерла моя «семерка» так и не родившись.

Сейчас остановлюсь на существующей динамике системы управления и переключусь на оформление. Вогнутую задницу на БЧ нужно убрать (в этой демке пока так, хотя, Роман учел твое замечание и посмотрел чертежи БЧ других ракет – ж… выпуклая!), меши второй ступени переделать. Сварганить наконец стартовый стол. В этой демке он уже есть – реализован отдельным кораблем, а ракеты к нему приаттачена. Очень удобно крутить по азимуту, что и делается, правда пока с бесконечно большой скоростью. А вот меша у старта нет. Займусь им. Прикрутить нормальную аэродинамику БЧ. В общем, буду делать альфа-версию. К автопилоту вернусь позже.

М-да, напоследок маленькая гадость для владельцев версии 2005 года. Скачав сдк на 2006-ю я с радостным визгом переключился на него, а посему все скомпиленное получилось несовместимым с 2005-й. Пробовал – вылет из-за неправильных точек входа в процедуры, хотя ничего специфичного для 2006-й я не использовал. Думаю проблема решаема путем перекомпиляции всего-всего со старым сдк. Буду работать над решением проблемы, и скорее всего следующую демку буду компилить со старым сдк, т.к. шестая демка совместима с новой версией Орбитера.

P. S.: Прошу прощения за ЖУТКИЙ бардак в исходниках!
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 01:41 02-07-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
1. Не пошла, пришлось перекомпилить 2ую ступень (тогды поехала)...
2. Точка падения - правильная, не знаю какой у тебя глобус Хы... , но ворд винд и гугль говорят что это вода возле острова Беринга

ЗЫ Думаю не нужно на 2005 ориентироваться...

ЗЫЗЫ
Рамблер:
http://troyka.iks.ru/kv/archive/20_03_2002/3.shtml

Цитата:
“Полигон под кодовым названием “Кура” в Ключах-20 был создан 29 апреля 1955 года для обеспечения испытательных пусков баллистических ракет, способных поразить территорию США. Первоначально он назывался Отдельная научно-испытательная станция (ОНИС). Камчатка, как место постоянной дислокации, была выбрана неслучайно. Во-первых, “изделие”, как называли ракету, все время полета находится над территорией своей страны; во-вторых, выбранный район основательно отдален от населенных пунктов, то есть секретность гарантируется; в-третьих, пассивный участок падения ракеты пролегает вдали от авиатрасс. Со временем Отдельной научно-испытательной станции передали смешанную авиаэскадрилью, отряд буксирных катеров, три батареи звуковой разведки, замененные впоследствии радиотехническими станциями, саперный батальон. Были обустроены боевые поля или поля падения. 19 ноября 1968 года, в День ракетных войск и артиллерии, части было вручено Боевое знамя. Только за последние 10 лет с полигонов Байконура, Плесецка, мест постоянной дислокации ракетных полков и атомных субмарин, в сторону Камчатки были пущены около 3000 тысяч ракет и порядка 6000 боевых блоков. Сам ядерный заряд в головной части испытываемой ракеты, разумеется, отсутствует. Вместо “критической массы” в блок закладывают около 20 кг тротила, что достаточно для создания сейсмических волн, которые тоже фиксируются, измеряются, помогая точнее определять координаты падения. Недели за две до очередного пуска на посты наблюдения, раскиданные по тундре и сопкам, машинами и вертолетами выбрасывается полигонный десант. В каждой группе - офицер и два-три солдата. У них имеется запас продуктов, оружие. С помощью приборов они фиксируют точку падения боевого блока. Если зарядит непогода, приходится несладко: обратный вертолет иногда задерживается на месяц. В этих случаях приходится переходить на подножный корм, отстреливаться от медведей.”


Гуглим
http://www.zone-interdite.net/P/area_9648_3378.html
Гуглим дальше - в одном из ПДФ по аэродромам СССР
Цитата:
KLYUCHI, RU N56°19' E160°48' 152m(2000m [6562'] CONC 130-310°T)PURPOSEPURPOSE - Transport. LOCATIONTION - 3kmSW Klyuchi. REMARKSREMARKS - Smallinterceptor airfield covering northern Kamchatka. About 12 fighterrevetments and some narrow tarmac space. Services Kura military provingarea (Klyuchi-20)[12][13], an ICBM impact area 130 km to the northeast at 57-20N 161-50E.Was photographed by U-2s starting June 1957.<div
    Добавлено: 09:50 03-07-2006   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Седьмая версия оказалась сырой, даже для технологической демки. Посему выкладываю к ней патч

http://texband.nm.ru/pub/dimonspage/orbiter/R7_demo7_patch.zip

Выявился глюк – когда ракета стоит на старте через некоторое время происходить самопроизвольное отсоединение ее от стола, в результате она падает на землю с оглушительным грохотом. Естественно, ни о каком азимуте запуска уже и речи не идет. Исправлено, поставил блокировку на детаттч, если не начались стартовые операции.

Ну и кроме этого, добавил аэродинамику для боеголовки. Правда довольно криво, т.к. CreateVariableDragElement(…) нифига не пашет! Я создаю драги – ноль эмоций! В связи с этим, Роман вопрос к тебе – можешь описать процедуру подробнее?

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

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

P.S.: Очередной огромный респект за инфу Улыбка. А как точность, соотвествует заявленной?
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 12:55 03-07-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Дык я тоже попробывал варибал драг - не работает - вообще ни как - нет ни момента, ни силы !!
Дык
Принцип следующий
- используем
следующую конструкцию
Код:

R7_head::R7_head(OBJHANDLE hObj, int fmodel): VESSEL2(hObj, fmodel)
{
   hR7head = oapiLoadMeshGlobal("r7_head");
   SetEmptyMass(EMPTY_MASS);
   SetSize(5.0);
   SetPMI(PMI);
   SetCrossSections(CS);
   SetCW (0.2, 0.2, 0.2, 0.2);
   hAttachToR7 = CreateAttachment(true,
                           _V(0, 0, -5),
                           _V(0, 0, -1),
                           _V(0, 1, 0),
                           "ToR7Attach",
                           false);
                              
   AddMesh(hR7head);
   SetRotDrag (_V(3,3,3));
//   Shild1=0.1;
//   ClearVariableDragElements ();
//   CreateVariableDragElement ( &Shild1,CS.z, _V(0,0,.1));
// Не работает, блин, хоть тресни...
   SetSurfaceFrictionCoeff (1e5, 1e5);
//Шоб упала и прилипла...
}


void R7_head::clbkPreStep (double simt, double simdt, double mjd)
{
   double DP = GetDynPressure ();
   double SF =1.0;
   if(DP > SF)
   {
      double dd =pow(SF/DP,0.6);
      SetPitchMomentScale(-dd);
      SetBankMomentScale(-dd);
   }
   else
   {
      SetPitchMomentScale(-1);
      SetBankMomentScale(-1);
   }
   if(GetAltitude() < 120e3 && oapiGetTimeAcceleration () > 1.0 ) oapiSetTimeAcceleration (1.);
//шоб мона было ускорятся в безвоздушке (до 100) и не проспать атмосферу
}

Здесь идет игра между степенью pow(SF/DP, и SetRotDrag (_V(3,3,3))
Лудшее кончно поставить драг 30 или больше - но это не обеспечивает стабильность ниже 10 км.

Зы воспроизводимость в радиусе 15 км ( один раз даже в остров попал). Дык добавь космодром - полигон - пустышку - мона будет сравнивать (достаточно сброисит в паку config/Earth/base/ нечто подобное Barent_Sea.cfg) тогда на МАП МФД мона будет смотреть как слетал ...
    Добавлено: 15:59 03-07-2006   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Попробовал аэродинамику, пашет на ура! Спасибо!!!

Базу добавлял уже в эту демку, но с ней почему-то сабж вылетает в винды, сразу после загрузки лаунчпада (моего старта т.е.). Пока не понял причин. Причем писал и свой конфиг, и переписывал дефолтный с сохранением синтаксиса.
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 18:08 03-07-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
astronavt :
Пока не понял причин. Причем писал и свой конфиг, и переписывал дефолтный с сохранением синтаксиса.


Дык там во второй версии конфигурации только одни грабли - координаты базы - сперва Долгота а потом Широта - а не наборот как везде принято...

ЗЫ понял почему не пашет драг элемент - нет аэрофолла - он уменя всегда был...

Дык
Код:

void AirfoilCoeffFuncV2 (
double aoa, double M, double Re,
double *cl, double *cm, double *cd)
{
*cl = 0.0;
*cm = 0.0;
*cd = 0.0;
}

R7_head::R7_head(OBJHANDLE hObj, int fmodel): VESSEL2(hObj, fmodel)
{
   hR7head = oapiLoadMeshGlobal("r7_head");
   AddMesh(hR7head);
   SetEmptyMass(EMPTY_MASS);
   SetSize(5.0);
   SetPMI(PMI);
   SetCrossSections(CS);
   SetCW (0.2, 0.2, 0.2, 0.2);
   hAttachToR7 = CreateAttachment(true, _V(0, 0, 0), _V(0, 0, -1),  _V(0, 1, 0),  "ToR7Attach",   false);
   SetRotDrag (_V(.3,.3,.3));
   Shild1=0.1;
   ClearVariableDragElements ();
    AIRFOILHANDLE AF = CreateAirfoil2 (LIFT_VERTICAL  ,_V(0,0,0.0),AirfoilCoeffFuncV2,0.03,0.001,0.01);
   CreateVariableDragElement ( &Shild1,CS.z, _V(0,0,1));
   SetSurfaceFrictionCoeff (1e5, 1e5);
}

void R7_head::clbkPreStep (double simt, double simdt, double mjd)
{
   double M1 =GetMachNumber();
   Shild1=(oapiGetWaveDrag (M1,0.8,0.98,1.314,0.28)+0.1);
   if(GetAltitude() < 120e3 && oapiGetTimeAcceleration () > 1.0 ) oapiSetTimeAcceleration (1.);
}


То что определено для Airfoil - не важно, по тому как функция возвращает одни нули. Но вот VariableDragElement пашет на ура - щетельно и плавно, без колебаний ориентируется и летит как надо.
    Добавлено: 09:28 04-07-2006   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Вот еще один патч к седьмой демке

http://texband.nm.ru/pub/dimonspage/orbiter/R7_demo7_patch2.zip

Переделана аэродинамика боевой части (вернее, Роман, я просто влепил твой вчерашний алгоритм без изменений). Кроме того, ракета теперь цветная и блестит Улыбка. Правда, мне кажется, она выглядит несколько аляповато. Очень похоже на CVEL Souyz и Vostok/Voskhod. Только разве рулевики «живые».

С ракетой пока все. Единственное, переделаю ручное управление. Теперь буду ваять стартовый комплекс и бункер управления.

P.S.: Спасибо, прикручу теперь эту аэродинамику Улыбка
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 12:36 04-07-2006   
igel
 100 EGP


Рейтинг канала: 4(86)
Репутация: 14
Сообщения: 755

Зарегистрирован: 12.06.2006
astronavt :
Выявился глюк – когда ракета стоит на старте через некоторое время происходить самопроизвольное отсоединение ее от стола, в результате она падает на землю с оглушительным грохотом. Естественно, ни о каком азимуте запуска уже и речи не идет. Исправлено, поставил блокировку на детаттч, если не начались стартовые операции.


Мишину отсутствие подобной блокировки стоило нескольких седых волос, взорванного "Союза", разваленного старта и одного погибшего офицера. Так что нам все-таки проще...
    Добавлено: 22:58 04-07-2006   
astronavt
 86 EGP


Рейтинг канала: 1(3)
Репутация: 35
Сообщения: 403
Откуда: Новочеркасск
Зарегистрирован: 11.01.2006
Это когда врубилась САС из-за того, что гироскопы замкнули концевики (не учли вращение Земли), фиксирующие предельные отклонения Улыбка? Недавно об этом прочел, у Чертока.

Проще-то проще, но выявился еще один, непонятный глюк, с появлением лишнего треугольника на стабилизаторах боковиков и вылетом ошибки при завершении симуляции. Голова кругом... Хотел уже за старт принятся, а тут это дерьмо!
_________________
Я бы изменил этот мир, но Бог не дает мне исходников...
    Добавлено: 23:22 04-07-2006   
Thorton
 87 EGP


Рейтинг канала: 3(36)
Репутация: 12
Сообщения: 696
Откуда: Томск
Зарегистрирован: 15.05.2006
После установки наблюдаю странный баг: у ракеты движки не включаются никак. Переставил Орбитер (только базовая комплектация) и переставил аддон - то же результат. Разозлен
    Добавлено: 19:00 09-07-2006   
Канал Orbiter: «"Семерка" (МБР Р-7) для Orbiter»
На страницу: Пред.  1, 2, 3, 4, 5 ... 29, 30, 31  След.    Перейти:   Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Почки и печень передают пламенный прощальный привет организму... (ImperialHunter)

  » "Семерка" (МБР Р-7) для Orbiter | страница 4
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18