Kształt krzywej ciągu a wysokość

Stateczność i inne zjawiska występujące podczas lotu
Awatar użytkownika
kbosak
***
Posty: 71
Rejestracja: czwartek, 29 wrz 2011, 13:59
Kontakt:

Kształt krzywej ciągu a wysokość

Post autor: kbosak »

Zapuściłem symulację przy założeniach:
przy braku oporów powietrza
mając jakiś określony ciąg silnika
mając ustalony % udział masy silnika w całkowitej masie rakiety (50%, 75%, 90%)
stały czas pracy silnika

mamy do wyboru tak ksztaltować impuls aby:
narastał liniowo od zera do 100% (ImpulseShaping 0)
był stały (ImpulseShaping 1)
lub opadał liniowo ze 100% do 0% (ImpulseShaping 2)
oraz przypadki pośrednie.

Oczywiste jest że uzyskana prędkość końcowa z silnika o danym impulsie całkowitym przy każdym starcie jest taka sama,
ale uzyskana wysokość na koniec jego pracy jest inna. Wiemy że Epotencjalna=m*g*h, Ekinetyczna=m*v*v/2, zaś całkowita to E=Ep+Ek. Obiekt uzyska największą energię gdy z początku będzie przyśpieszany bardziej (co oczywiście oznacza szybszy wydatek paliwa i spadek masy samego silnika, co też wzięto pod uwagę).
Wykres finalny jak poniżej: Stosując moc spadającą liniowo od 100% do zera, w stosunku do silnika o stałym ciągu, można wygrać 45% więcej wysokości. W przypadku oporów powietrza zysk będzie nieco mniejszy, albowiem prędkość na szczycie będzie mniejsza dla rakiet które miały większą prędkość na początku lotu (albowiem opory wzrastają z kwadratem prędkości).
można zgadnąć że do wygrania jest ok 35% wysokości tą metodą.

Obrazek
Swoją drogą ciekawe jaki kształt krzywej ciągu (inny niż liniowy) jest optymalny.
Załączniki
RocketImpulseShaping.xls
(26 KiB) Pobrany 586 razy
wrx
****
Posty: 227
Rejestracja: sobota, 22 lut 2014, 20:15
Lokalizacja: Siedlce

Re: Kształt krzywej ciągu a wysokość

Post autor: wrx »

Kierując się zdrowym rozsądkiem (z drobną domieszką matematyki Obrazek ), pewnie coś w ten deseń: na począdku ciąg 100%, puźniej prez 90% czasu ciąg na poziomię 50%. Jeżeli można, prosiłbym o sprawdzenie tej teori ( niedysponuję odpowiednim programem Obrazek ).
„Wszyscy wiedzą, że czegoś nie da się zrobić. I wtedy pojawia się ten jeden, który nie wie, że się nie da, i on właśnie to coś robi” A. Einstein.
Awatar użytkownika
kbosak
***
Posty: 71
Rejestracja: czwartek, 29 wrz 2011, 13:59
Kontakt:

Re: Kształt krzywej ciągu a wysokość

Post autor: kbosak »

Analiza teoretyczna daje taki oto wynik:
mając silnik którego ciągiem możemy dowolnie sterować, przy braku oporów powietrza,
opłaca się z maksymalnym przyśpieszeniem osiągnąć 'prędkość przelotową' a następnie pozwolić jej maleć w wyniku działania grawitacji (lub ewentualnie zaledwie ten spadek prędkości równoważyć, muszę to rozważyć).
Chodzi o to że impuls całkowity N*s jest tak naprawdę całką po sile którą może przykładać silnik w kierunku ruchu rakiety.
Całka z tej siły daje maksymalną osiągalną prędkość. Kształtując tę siłę w ten sposób że maksymalna osiągalna prędkość jest osiągnięta w nieskończenie krótkiem czasie, maksymalizujemy całkę z prędkości po czasie, czyli przebytą drogę.
W obecności oporów powietrza osiągamy wynik taki sam, tylko że ciąg silnika po momencie przyśpieszenia musi mieć np. 1% mocy startowej aby równoważyć opór powietrza. Wychodzi na to że jeślibyśmy potrafili robić jednakowo lekie i wytrzymałe rakiety i tak samo wydajne silniki dla małych jak i dużych przyśpieszeń, należaloby użyć czegoś w stylu połączenia działa orbitalnego w styklu Projektu HARP http://en.wikipedia.org/wiki/Project_HARP z pociskiem Base Bleed http://en.wikipedia.org/wiki/Base_bleed. W praktyce ograniczeniem jest wytrzymałość obiektów transportowanych, dyszy, rakiety. Natomiast powyższe obliczenia pozostają poprawne dla typowych charakterystyk ciągu silnika jakie osiągamy w rakietach amatorskich.
Obliczenia dla zadanych parametrów za chwilę.
wrx
****
Posty: 227
Rejestracja: sobota, 22 lut 2014, 20:15
Lokalizacja: Siedlce

Re: Kształt krzywej ciągu a wysokość

Post autor: wrx »

Może zamiast "armatki" HARP od razu coś takiego: http://pl.wikipedia.org/wiki/Electromagnetic_Railgun Obrazek.
„Wszyscy wiedzą, że czegoś nie da się zrobić. I wtedy pojawia się ten jeden, który nie wie, że się nie da, i on właśnie to coś robi” A. Einstein.
Awatar użytkownika
kbosak
***
Posty: 71
Rejestracja: czwartek, 29 wrz 2011, 13:59
Kontakt:

Re: Kształt krzywej ciągu a wysokość

Post autor: kbosak »

OK trochę realnych danych
//double (*const ThrustFunction)(double)=ThrustFunction_Constant; //2843 reference
double (*const ThrustFunction)(double)=ThrustFunction_100_50; //3095 +9%
//double (*const ThrustFunction)(double)=ThrustFunction_LinearFall;//4148 +46%
//double (*const ThrustFunction)(double)=ThrustFunction_LinearRise;//1849 -35%

//Rocket motor impulse shaping vs altitude
const double MotorMass=0.75;//kg
const double RocketMass=1;//kg
const double IgnitionTime=4;//s
const double TotalImpulse=1000;//N*s

Stosując ciąg 2x nominalny przez 10% czasu a potem normalny, zyskujemy 9% wysokości względem sytuacji ze stałym ciągiem
natomiast mając ciąg spadający liniowo, dostajemy +46% zysku.



double ThrustFunction_100_50(double x)
{
assert(x>=0);
assert(x<=1);
if(x<=0.1)
{
return 1.0;
}
return 0.5;
}

double ThrustFunction_Constant(double x)
{
assert(x>=0);
assert(x<=1);
return 1.0;
}


//double (*const ThrustFunction)(double)=ThrustFunction_Constant; //2843 reference
double (*const ThrustFunction)(double)=ThrustFunction_100_50; //3095 +9%
//double (*const ThrustFunction)(double)=ThrustFunction_LinearFall;//4148 +46%
//double (*const ThrustFunction)(double)=ThrustFunction_LinearRise;//1849 -35%
NormalizeThrustFunction(ThrustFunction);

//Rocket motor impulse shaping vs altitude
const double MotorMass=0.75;//kg
const double RocketMass=1;//kg
const double g=9.81;//m/s2
const double IgnitionTime=4;//s
const double TotalImpulse=1000;//N*s

const double ThrustFunctionScale=TotalImpulse/IgnitionTime*TrustFunctionNormalizationFactor;
const double FuselageMass=RocketMass-MotorMass;

double MotorMassPercentageUsed=0;//0...1
const int nsteps=100;
const double dt=1.0/(double)nsteps;//normalized timestep
const double dtreal=dt*IgnitionTime;//real time step
double velocity=0;//m/s
double altitude=0;//m
for(int i=1; i<=nsteps; i++)
{
const double normalized_time=(double)i/(double)nsteps;
assert(normalized_time>=0);
assert(normalized_time<=1);
const double real_time=normalized_time*IgnitionTime;
assert(real_time>=0);
assert(real_time<=IgnitionTime);
const double tf=ThrustFunction(normalized_time);
assert(tf>=0);
MotorMassPercentageUsed+=dt*TrustFunctionNormalizationFactor*tf;
assert(MotorMassPercentageUsed>=0);
assert(MotorMassPercentageUsed<=1.02);
if(MotorMassPercentageUsed>1)
{
MotorMassPercentageUsed=1;
}
const double ActualMotorMass=MotorMass*(1-MotorMassPercentageUsed);
const double ActualRocketMass=FuselageMass+ActualMotorMass;
const double ActualThrust=ThrustFunctionScale*tf;

double acceleration=-g;//m/s2
if(ActualRocketMass>1e-6)
{
acceleration+=ActualThrust/ActualRocketMass;
}
velocity+=dtreal*acceleration;
altitude+=dtreal*velocity;

printf("%lf %lf %lf %lf %lf\n", real_time, ActualThrust, ActualRocketMass, velocity, altitude);

Niespodziewanka:
o ile zgodnie z założeniami przy braku oporów powietrza, z grawitacją lub bez niej, opłaca się skupić ciąg w dowolnie krótkim czasie, sytuacja jest zupełnie inna w obecności oporów powietrza. Dla ilustracji użyłem trochę zawyżonych oporów powietrza, symulacja zawsze zbiega się do czegoś takiego:

https://imagizer.imageshack.us/v2/685x3 ... HoPBNZ.png

Oznacza to, że w obecności grawitacji i powietrza, dla uzyskania maksymalnego pułapu, należy skupić większość ciągu na początku, potem jest ten moment gdy nie warto silnikiem walczyć z oporami zależnymi of v^2, ale gdy prędkość nieco spadnie należy silnika używać i to tylko na tyle aby zrównoważyć do pewnego stopnia opór powietrza. Wykres optymalnej krzywej ciągu... przypomina wykres ciągu kilku znanych silników rakietowych, przez przypadek zapewne.
Ostatnio zmieniony niedziela, 17 sie 2014, 14:47 przez kbosak, łącznie zmieniany 3 razy.
Awatar użytkownika
filipberet
***
Posty: 97
Rejestracja: środa, 5 lut 2014, 07:36
Lokalizacja: Białystok, Choroszcz

Re: Kształt krzywej ciągu a wysokość

Post autor: filipberet »

Witam
kbosak pisze:Analiza teoretyczna daje taki oto wynik:
mając silnik którego ciągiem możemy dowolnie sterować, przy braku oporów powietrza,
opłaca się z maksymalnym przyśpieszeniem osiągnąć 'prędkość przelotową' a następnie pozwolić jej maleć w wyniku działania grawitacji (lub ewentualnie zaledwie ten spadek prędkości równoważyć, muszę to rozważyć).
Chodzi o to że impuls całkowity N*s jest tak naprawdę całką po sile którą może przykładać silnik w kierunku ruchu rakiety.
Całka z tej siły daje maksymalną osiągalną prędkość. Kształtując tę siłę w ten sposób że maksymalna osiągalna prędkość jest osiągnięta w nieskończenie krótkiem czasie, maksymalizujemy całkę z prędkości po czasie, czyli przebytą drogę.
W obecności oporów powietrza osiągamy wynik taki sam, tylko że ciąg silnika po momencie przyśpieszenia musi mieć np. 1% mocy startowej aby równoważyć opór powietrza. Wychodzi na to że jeślibyśmy potrafili robić jednakowo lekie i wytrzymałe rakiety i tak samo wydajne silniki dla małych jak i dużych przyśpieszeń, należaloby użyć czegoś w stylu połączenia działa orbitalnego w styklu Projektu HARP http://en.wikipedia.org/wiki/Project_HARP z pociskiem Base Bleed http://en.wikipedia.org/wiki/Base_bleed. W praktyce ograniczeniem jest wytrzymałość obiektów transportowanych, dyszy, rakiety. Natomiast powyższe obliczenia pozostają poprawne dla typowych charakterystyk ciągu silnika jakie osiągamy w rakietach amatorskich.
Obliczenia dla zadanych parametrów za chwilę.
Działo orbitalne + pocisk = mega przeciążenie na starcie liczone w setkach (może nawet tysiącach) G - elektronika tego nie przetrwa.

Od dawna szukam najbardziej optymalnego i ekonomicznego sposobu wynoszenia rakiet na orbitę. Najrozsądniejszy na jaki do tej pory wpadłem wydaje się być ten:

1. Pneumatyczna wyrzutnia startowa 2. pocisk startowy z napędem strumieniowym wynoszący rakietę 3. start rakiety "z pokładu" pocisku startowego 4. rakieta z silnikiem marszowym

Pozdrawiam
Up Up and Away
Adam
Supersonic PROFI
Posty: 395
Rejestracja: niedziela, 30 sty 2011, 18:30
Lokalizacja: Gdynia

Re: Kształt krzywej ciągu a wysokość

Post autor: Adam »

wrx pisze:pewnie coś w ten deseń: na począdku ciąg 100%, puźniej prez 90% czasu ciąg na poziomię 50%.
Czy to nie byłby wykres idealnego ciągu:
http://pl.wikipedia.org/wiki/Brachistochrona
Pozdrawiam!
Awatar użytkownika
kbosak
***
Posty: 71
Rejestracja: czwartek, 29 wrz 2011, 13:59
Kontakt:

Re: Kształt krzywej ciągu a wysokość

Post autor: kbosak »

Brachistochrona? Przecież to by wymagało ujemnego ciągu... Jak na razie teoria pokazuje że najbardziej opłaca się maksymalnie krótki pik ciągu i lekkie dymienie po to tylko by zaliczyć czas lotu silnikowego przy braku oporu i maksymalnie krótki pik z następującym 'małym garbem' w przypadku obecności oporów. Wyliczę to wkrótce dla prawdziwych danych rakiety i zobaczymy ponownie jak wielki jets optymalny 'garbik ciągu'.
ODPOWIEDZ