* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Cameron Hatcher Itay Tenne Nick Pulaski October, 25 2005 ECEN 4553 GRUE-42 Proposal (An elegant way to do orbits (we hope)) From our experiences in aerospace engineering, the need to generate an orbit and do some analysis upon the orbit arises very commonly. The only way to generate the orbit in such a way that it can be analyzed is to write Matlab code for each orbital case. As a general rule, Aerospace engineers are notoriously opposed to writing code, especially orbit propagation code in Matlab. We believe that aerospace engineers would greatly prefer an alternative method in which aerospace engineers could easily specify the orbital parameters for an orbit or a number of orbits, and the Matlab code would be automatically generated. To accomplish this task, we would like to create a new language, which we shall call GRUE-42. GRUE-42 will allow a user to specify an orbit by giving the necessary orbital parameter, and specify the calculations that they would like to have performed and given as output. This language will allow users to easily specify multiple orbits in this way, and the necessary Matlab code will then be generated. The language will allow you to specify different objects, such as satellites and planets. Once an object has been specified, different parameters for the object can be defined, thus describing the orbit of the object. All of the parameters will be standard aerospace terms and that are easily recognizable and understandable to aerospace engineers. Each object type will have a default set of parameters that are set when it is first declared, though the user may then over ride these default parameters with their own specification. The program will allow the user to define orbits for multiple objects, and allow the generation of complex orbits through a series of simple orbits. For example if the user were to create a satellite in a simple circular orbit about the earth, but then define the earth as being in an elliptical orbit about the sun. The position of the satellite in a coordinate system centered about the sun would be very complex, but could be easily determined by analyzing both orbits. The orbits could also be defined with a lifetime for each satellite, which would give each satellite a different scope, since they would each exist for a finite amount of time. In terms of power requirements, it is also useful to know when a satellite is in the shadow of the earth (or whatever body it is orbiting about), so there are certain conditions which would only be relevant when the satellite is within shadow, leading to more scope requirements. In terms of name analysis, when calculations are done on orbits, different values of gravity are used depending on the calculations. Some calculations use gravity as a constant, so that it is always the gravity at sea level. Other calculations have different values for gravity which depend on the orbital radius and the mass of the object at the center of the orbit. When gravity is used in the calculations, either the constant would be used, or a function call which sends the radius and mass, so name analysis would have to be done to determine if the constant gravity or the variable gravity were being used in the calculation. Example .grue file. Note that the syntax and symantics are not yet finalized, this is just a simple example. %This is how you do a comment Satellite Sat1 A = 42,000; B = 40,000; Lifetime = 10; %Semi-major axis, in km %Semi-minor axis, in km %Sat Lifetime, in years. This is a scoping example, % as the scope of this satellite will only be during % its lifetime I = 23.5; %Inclination, in degrees M = 5.97*10^24; %Mass of the object being orbited around. In this % case, the Earth. Epoch=“15:35 10/25/2005”; %Launch time of the satellite End Sat1 %This is one instance in which a name analysis would take place. There are many %different ways to describe the orbit of a satellite; not all of the orbital parameters must %be given to accurately describe an orbit. Depending on which orbital parameters are %given, the underlying calculations must be done differently. Both Sat1 and Sat2 were %defined as satellites, but Sat1 Uses the Semi-major axis and the Semi-minor axis, %whereas Sat2 uses the Semi-major axis and the eccentricity. The calculations needed to %produce the desired results can be determined by the structure. Satellite Sat2 A = 42,000; E = 0.95; Lifetime = 5; I=0 ; M = 5.97*10^24; %Semi-major axis, in km %Orbital Eccentricity %Sat Lifetime, in years. %Inclination, in degrees %Mass of the object being orbited around. In this % case, the Earth. Epoch=“15:35 10/25/2005”; %Launch time of the satellite End Sat2 Calculations Va Vb P End Calculations %This is just a list of the orbital parameters we want as the output %Velocity at apogee %Velocity at perigee %Orbital Period Language Specification/Capability Specifications the user can make The user will be able to specify an object type, such as satellite, planet, moon, or star. They will be able to choose from some predefined bodies which are listed below. Earth Moon Sun The user can then specify the orbit type that the object is in or select a predefined orbit type. The predefined orbit types are listed below. LEO (Low Earth Orbit) Circular GEO (Geosynchronous) Polar Sun-Synchronous A lifetime of the object, time spent in the orbit. Orbital Parameters for a user-created orbit Output the user can request. Orbital velocities. Orbital periods. The time spent in the shadow or sun. Current position or the distance traveled. The closet or furthest point in between two different bodies. Possible additions based on time. Transfer orbits.