![scilab constant scilab constant](https://www.scilab.org/sites/default/files/D_scil5_imagelarge.png)
This source file is licensed as described in the file COPYING, which // you should have received as part of this distribution. Sallet, 2004Ĭomplete script // // Scilab ( ) - This file is part of Scilab // Copyright (C) 2015-2015 - Scilab Enterprises - Pierre-Aimé Agnel // // This file must be used under the terms of the CeCILL. To go further in numerical analysis, find out more about the solvers: Ordinary Differential Equations with Scilab, WATS Lectures, Université de Saint-‐Louis, G. Ode solves Ordinary Different Equations defined by: ? = ?(?, ?) where y is a real vector or matrix The simplest call of ode is: y = ode(y0,t0,t,f) where y0 is the vector of initial conditions, t0 is the initial time, t is the vector of times at which the solution y is computed and y is matrix of solution vectors y=. The resolution of the ordinary differential equation (ODE) is computed with the Scilab function ode. With this function, we go to the core of the problem.įunction U=earthrotation(altitude, v_init, hours) // altitude given in km // v_init is a vector given in m/s // hours is the number of hours for the simulation r_earth = 6.378E6 altitude = altitude * 1000 U0 = t = 0:10:(3600*hours) // simulation time, one point every 10 seconds U = ode(U0, 0, t, f) // Draw the earth in blue angle = 0:0.01:2*%pi x_earth = 6378 * cos(angle) y_earth = 6378 * sin(angle) fig = scf() a = gca() a.isoview = "on" plot(x_earth, y_earth, 'b-') plot(0, 0, 'b+') // Draw the trajectory computed comet(U(1,:)/1000, U(2,:)/1000, "colors", 3) endfunction Compute the results and create a visual animation Try out the final script with the following initial conditions in speed and altitude: geo_alt = 35784 // in kms geo_speed = 1074 // in m/s simulation_time = 24 // in hours U = earthrotation(geo_alt, geo_speed, simulation_time) ģ.
![scilab constant scilab constant](https://help.scilab.org/docs/6.0.0/fr_FR/sgrid_fr_FR_2.png)
![scilab constant scilab constant](https://help.scilab.org/docs/6.1.0/en_US/SourceP_gui.gif)
![scilab constant scilab constant](https://decode.red/blog/wp-content/uploads/2014/08/Sci03.png)
The condition defined by the distance r of the satellite with the centre of earth stops the simulation if it’s colliding with earth’s surface. ? ? 0 0 1 0 ? 0 0 0 1 with ? = ?/? ! 0 0 0, ? = ? ? 0 ?/? ! 0 0 To simplify the equation, we define the variable ? = −? ∗ ? Open scinotes with edit myEarthRotation.sci Define the skeleton of the function: function udot=f(t, u) G = 6.67D-11 //Gravitational constant M = 5.98D24 //Mass of the Earth c = -G * M r_earth = 6.378E6 //radius of the Earth r = sqrt(u(1)^2 + u(2)^2) // Write the relationhsip between udot and u if r < r_earth then udot = ' else A = ] udot = A*u end endfunction Instead of expressing the system as set of 4 independent equations (along the x and y axis, for position and speed), we describe it as a single matrix equation, of dimension 4x4: This method is a classical trick to switch from a second order scalar differential equation to a first order matrix differential equation. Position of the satellite is at a distance r Earth mass centre is at O Ĭonstants of the problem: Gravitational constant ? = 6.67 × 10!!! ?! ??!! ? !! Mass of the earth ? = 5.98 × 10!" ?? Radius of the Earth ?!"#$! = 6.38 × 10! ? Express the physics problem The problem is based on the universal law of gravitation: ?∗? ? ? = −? ∗ ∗ ? ! ? We write down Newton’s third law of motion in an earth-‐centred referential: !∗! ? ∗ ? = −? ∗ ! ! ! ∗ ? (1) ( ! !! ) Scilab tutorial – satellite orbit around the earth 1.