kill(all)$
load(lrats)$
load(vect)$

Fundamental theory of rocket propelled vehicles basic equation,'version 1.0'
peter.vlasschaert@gmail.com,17/09/2018

simple model rocket vehicle  'basic equation'
======================================

properties - free             : external forces
                       cutting off : constant fraction '1/n' of 'instantaneous mass'
                       jett              : velocity c ,'constant' with respect to 'remaining mass'
                       energy       : no assumption of the origin  from fuel

start                    : initial rod  1e) Velocity  V[0]
                                        2e) m[0] = M
-------------------------------------------------------------------

p1: V[0];
p1a: m[0] = M;

first separation : mass = m[1] ,result  ΔV[1] = ΔV ,'velocity increment'
---------------------------------------------------------------------------------------------------------------
(use : impulse law)
===========================================
rem +++ : ' i  the' seperation  = velocity  increment  = Δv

1e) cutting off : 1/n  , ' mass'

p2:1/n;
p2a : m[1] = rhs(p1a)*' (1-p2)$;
p2b : lhs(p2a) = ev(rhs(p2a));

2e)  impulse law  :   c , ΔV  , 'velocities'

p2c:ΔV;

 a) impulse law. ' solve ΔV '

p2d:rhs(p2b) *p2c + p2*rhs(p1a)*c = 0;
negdistrib ;

p2e:solve(p2d,p2c)[1];
p2f:1/(n-1) = (p2)/(1-1/n);
p2g:subst(p2f,p2e);

b) V[1] = V[0] + ΔV

p2h :v[1] = p1+ lhs(p2g);
p2i : lhs(p2h) = part(rhs(p2h),1)+rhs(p2g);

second separation : mass = m[1] ,result  ΔV[2] = ΔV ,'velocity increment'
---------------------------------------------------------------------------------------------------------------
see : why +++, 'above'

1e)  cutting off : 1/n  , ' mass'

assume(m2>0);

p3:m[2] = m[1] - p2*m[1];
p3a:subst(p2b,p3);
p3b:lhs(p3a) =rhs(p3a);
p3c:solve(p3b,rhs(p1a))[1];
p3d:factor(p3c)/m[2];

2e)  impulse law  :   c , ΔV  , 'velocities'

p3e:V[2] = 2*p2c + p1;

 'k the' separation : mass = m[1] ,result  ΔV[2] = ΔV ,'velocity increment'
---------------------------------------------------------------------------------------------------------------
see : why +++, 'above' ,  change 2 ⇒ k , in  the second separation.

1e)  cutting off : 1/n  , ' mass'

p4:subst(2=k,p3d);

2e)  impulse law  :   c , ΔV  , 'velocities'

p4a:subst(2=k,p3e);

p4b:subst(p2e,p4a);

general 'k the' ,separation.
======================

assume(n>0);

check for a ,with 'is' , command 'Maxima' , between 'p4c1 and p4c2'
========================================================
=>  use : first       : 'ratsimp'
              : second : 'is          '
otherwise : error when not use 'ratsimp'  = > answer ,' true'
========================================================

p4c : ((1+1/(n-1))^(n-1))^(k/(n-1))  ;
p4c1:part(p4c,1) = a;
p4c2: (n/(n-1))^(n-1)=a;
p4c3 : lhs(p4c1) = lhs(p4c2);
p4c4:ratsimp(p4c3);
p5c5:is(p4c4);

p4d:rhs(p4) =p4c;

p4e:subst(p4c1,p4d);

p4f :lhs(p4) = rhs(p4e);

rem : math : ln  , maxima : log

p4g:log(p4f);
p4g1: ratcoeff(rhs(p4g),k/(n-1));
p4g2:p4g/p4g1;

p4h:p4b-p1;

p4i: lratsubst([rhs(p4g2)=lhs(p4g2)],p4h);

Total energy : 'per 'i' separation process'
===================================
rem : ΔV = ΔV[i] ,E = m[i-1]/n*e, e=1/2*C^2

p5:E = m[i]/2*(p2c)^2+m[i-1]/(2*n)*c^2;

p5a:E = m[i-1]/n*e;
p5b:e=1/2*C^2;

find : e
-----------

p5c:rhs(p5) = rhs(p5a);

p5d:solve(p5c,e);
p5d1:expand(p5d);

subst  'e'  into 'E' = 'p5a'
------------------------------------

p5e:subst(p5d1,p5a);

p5f:subst(k=i,p4);
p5f1:subst(k=i-1,p4);
p5f2:1/p5f;
p5f3:p5f1*p5f2;

subst ' m[i]/m[i-1]=(n-1)/n , ΔV=-c/(n-1) ' into E
--------------------------------------------------------------------

p6:lratsubst([p5f3],p5d1);

p6a:subst([p2e],p6);
p6a1:factor(p6a);
p6a2:p6a1[1];
p6a3:lhs(p5) = subst([p6a2],rhs(p5a));

relation between 'c' and 'C', elimination of 'e'  => E = 'p6a3'
----------------------------------------------------------------------------------------

p7:rhs(p5b)=rhs(p6a2);

p7a:solve(p7,c);
p7a1:p7a[1];
p7a2:p7a[2];

p7b:subst([p7a2],p6a3);

Find : V[k] ?
==========

p8:p4i+p1;

p8a:subst([p7a2],p8);

p8a1:ratcoeff(rhs(p8a),-lhs(p4g));

find  U  : ?    U , C  must have the same dimension
----------------------------------------------------------------------------

p9:p8a1= x;

p9a:solve(p9,C);

when x=1 , C = U

p9b:subst([x=1,C=U],p9a)[1];
p9b1:rhs(p9b) =lhs(p9b);

final result : V[k]
==============

p10:lratsubst([p9b1],p8a);
p10a:expand(p10);

show that : n ⇒ infinity  , U ⇒ 1
=========================
Meaning : n ⇒ infinity , ' mass "jet", ' parts flow out ,'  = infiniteley small compared to vehicle mass '.
--------------------------------------------------------------------------------------------------------------------------------------------------------
rem : lim (m-> ∞), (1+1/m)^m = e

p11:rhs(p9b1) = lhs(p9b1);

p11a:subst([rhs(p4c1)=lhs(p4c1)],p11);

p11b:lhs(p11a) = limit (rhs(p11a),n,inf);

Total final result :  n⇒ ∞, V[k]
============================

p12:subst([p11b],p10a);

Basic rocket equation ,  m = instantaneous mass
=========================================
C =c

p12a: subst([V[k] = V[id],m[k]=m,C=c],p12);

cutoff velocity ( = usable impulse carrier is spent).
rem :  m[f]  = cutoff mass

p12b:subst([V[id]=V[cutoff],m = m[f]],p12a);

  Maximum performance : rocket
============================

----------------------------------------------------------------------------
(1)   -c  //  V[0] ,(taking advantage of earth rotation)
(2)  The effective jet speed  c as large  as possible
(3)  The mass ratio  M/m[f] = r as large as possible
---------------------------------------------------------------------------

---------------------------------------------------------------------------------------------