7/29/2019 Satellite Launch System
1/16
FACULTY OF ENGINEERING
DEPARTMENT OF AEROSPACE ENGINEERING
EAS3802 SATELLITE TECHNOLOGY
SEMESTER 2, 2012/2013
LECTURER: PROF. IR. DR. HARIJONO DJOJODIHARDJO
ABSTRACT FOR TERM PAPER
SATELLITE LAUNCH SYSTEM
NAME: CHAN TENG YANMATRIC NO.: 157388
7/29/2019 Satellite Launch System
2/16
ABSTRACT
This paper studies the design and analysis of satellite launch vehicle by the consideration
of design specifications of the satellite. The main purpose of this paper is to design and
select a best launch system that satisfies specific payload constraints, such as payloadmass, payload dimensions, required launch frequency, maximum acceleration loads, and
desired orbit.
Specifically in the beginning of this paper, a literature survey is performed to gather
currently available launch vehicle specifications. More particularly, the prominent U.S.
launch vehicles are surveyed. The type of launch vehicle is categorized based on the
different payload and specification of spacecraft and satellite. A more detailed and specific
study is done towards the payload mass and performance of the launch system used.
Next, the basic launch system for typical spacecraft is studied as far as itsmechanic analysis is concerned. The rocket propulsion system is also studied. Since
launch system is the only transportation that accelerates continuously throughout the
performance envelope, therefore the forces acting on the launch vehicle is analyzed so
that its flight path is well controlled. The performance of the launch vehicle is further
investigated in the context of the thrust produced and the flight vehicle mass.
In the beginning of the system design and selection process, the mission needs
and requirements are stated in specific payload constraints, performance, trajectory and
family of vehicles. The information studied includes spacecraft weight, spacecraftdimension, mission orbit, mission timeline, and cost constraint. Next, the acceptable
configurations such as weight of spacecraft propellant, weight of booster adapter,
performance margin, and reliability are studied in order to identify the potential launch
system to make the launch more likely. Finally, the environment detected by the launch
system is determined based on the acoustic frequency, vibration frequency, and
temperature extreme.
In the selection process, a selection flow chart is laid out to prioritize down
selection criteria/logic for the software tool. The software tool will then be codedincorporating the data and selection logic. The tool will allow the user to control the
number of input constraints.
At the end of the paper, the launch sequence of the satellite is studied. The
sequence discussed includes the low Earth circular orbits, elliptical eccentric orbits and
geostationary orbits. The suitability of each type of orbit for a given application is also
discussed. Next, the paper continues with a basic discussion on orbits and trajectories.
7/29/2019 Satellite Launch System
3/16
Introduction
The number of small satellites including micro-satellites and nano-satellites launched hasincreased in the past 20 years. For the last ten years, over 350 small space vehicles have
been launched in space by a lot of countries in the world and the small satellites are the
major fraction out of the general numbers of spacecraft. Since the 1960s launch vehicle
performance has increased by an order of magnitude while reliability of launch systems
has increased from 85% to 95%.
The launch process can be severely obliged for satellite. The vehicles lift capability
and propulsive thrust is the foremost consideration in the launching process. The
specification of the satellite itself has to be studied before design of most suitable launchsystem. The solution for inexpensive launch system can be based on an aircraft-based
launching system that uses the existing aircraft (fighter) and a designed micro-rocket or
existing missile as its operating stages.
Prominent U.S. Launch Vehicles
Atlas
Lockheed Martins Atlas family of launch vehicles is one of the largest commercial launch
vehicle lines in the United States. The Atlas IIA has an upgraded RL 10 engine withoptional nozzle extension for the Centaur stage. The Atlas IIAS adds solid strap-on
boosters to this architecture. The relatively new Atlas IIIA (2000) is a re-engineered Atlas
II, utilizing a high-performance RD-180 engine from Russia. The Atlas IIIB has a stretched
Centaur that can use single or dual Centaur configurations.
Delta
Following the Challenger shuttle disaster in 1986, President Reagan announced that the
Space Shuttle would carry no more commercial payloads. To fill this gap, the Delta II was
built by Boeing (1989) to launch medium-sized NASA payloads and small commercialpayloads. Delta III development began in 1995 to launch heavier commercial payloads.
The Delta III includes a larger fairing, larger strap-on motors, and a cryogenic second
stage. The Delta IV line of medium-to-heavy launch vehicles is Boeings most advanced
product in the Evolved Expendable Launch Vehicle (EELV) program. The Delta IV Heavy
is capable of delivering a payload directly to geostationary orbit.
Pegasus
7/29/2019 Satellite Launch System
4/16
Orbital Sciences Corporations Pegasus XL (1994) is designed to launch small commercial
and government payloads. The Pegasus XL is air-launched from Orbitals L-1011
Stargazer aircraft at an altitude of approximately 12 km and a speed of Mach 0.8. The
Pegasus XL consists of a solid-propellant booster with wings. Advantages to the air launch
concept include added initial velocity, lower drag, and flexible inclination angles.Space Shuttle
NASAs Space Shuttle (first launched in 1981) consists of two recoverable solid-propellant
rocket boosters, an expendable liquid propellant tank, and a reusable delta-wing space
plane. Primary Space Shuttle missions include launch of heavy payloads to LEO, and
transfer of humans and cargo to the International Space Station.
Taurus
The Taurus launch vehicle (1994) is Orbital Sciences Corporations ground -launched
derivative of the Pegasus. The Taurus incorporates the motors and avionics of thePegasus with a larger first stage (the government-provided Peacekeeper missile). Taurus
was funded by DARPA to supporting a rapid-response launch capability.
Basic Rocket Propulsion System
( )
Near burnout, rocket acceleration is diminished because payload mass includes entire
launch systems structure. Staging removes lower stage structural weight
7/29/2019 Satellite Launch System
5/16
Moi = initial mass of rocket including all upper stages and payload.
Mfi = final mass after stage has burned before separation.
i = stage number
Msi = mass structure for stage i
Mpi = mass propellant for stage i
Launch Vehicle Forces
Launch System Selection Process
The first step in the launch system selection process is to establish the mission needs
and objectives, since they dictate the performance, trajectory, and the family of vehicles.
The mission need should be stated in terms of the specific return desired, e.g. earth
observation data over specific portions of the Earth, weather information, etc.
Another critical issue is whether the spacecraft will use a dedicated or sharedlaunch system. Payload security may also demand a dedicated launch. On the other hand,
shared launches are usually less expensive per spacecraft. Before deciding on a shared
launch, we must consider the interaction between payloads in the shroud. If we mount
them serially, we must analyze the probability that the upper payload will not deploy and
thus interfere with the lower payload's deployment. Examples of larger vehicles that can
launch multiple payloads are the Space Shuttle, several Ariane 4 variants, Ariane 5 and
Titan IV. We consider launching multiple spacecraft if their desired orbital aititudes and
inclinations are compatible.
7/29/2019 Satellite Launch System
6/16
Next we specify mission requirement. Estimating payload weight and dimensions
become requirements to the launch system. The mission concept specifies such
parameters as number of spacecraft, anticipated lifetime and replacement strategy, and
method of data retrieval and management. A required launch date also becomes a
selection parameter as it affects schedules, and the vehicle and launch site availabilities.The spacecraft navigation, guidance and control subsystem can technically provide
this function to the launch system during ascent. However, this approach results in a
highly coupled payload and launch system which presents some negative attributes,
including a more complex integration of the two, and makes it more difficult to manage at
the spacecraft-to-Iaunch-vehicle interface. The current trend is to separate the spacecraft
and launch system functions at the interface, both functionally and physically, to minimize
interface requirements and complexity.
We must assess each function required to achieve the mission objective throughthis process and allocate functions based on cost, reliability, and risk. This is a classic
systems engineering problem, which we must continuously evaluate as part of the vehicle
selection process and as the spacecraft design matures.
Having established mission requirements, constraints, and the required
information, we must decide which launch-system configurations can deliver the
spacecraft to its mission orbit. The launch systems selected during conceptual design
should satisfy the missions performance requirement. Selecting a launch system
depends on at least these criteria: the launch vehicle's performance capability to boost thenecessary weight to the mission orbit, the required launch date versus vehicle availability,
spacecraft-to-launch-vehicle compatibility, and of course, cost of the launch service. The
launch system's performance capability must include factors such as performance.
Example Launch Systems
7/29/2019 Satellite Launch System
7/16
Example Orbit Transfer Vehicles
Launch System Selection
MATLAB program is used in selecting the launch system. (refer to Appendix).
For the test run, a payload with constraints shown in table 3 is submitted to the launcher
selection tool. Table 4 shows the results sorted by cost. The negative availability valuesare because the current vehicle database shows those vehicles as having never launched
any payload. This also has the effect of driving up the risk and absolute cost for those
particular vehicles. The Atlas IIs zero risk is due to its perfect launch record.
7/29/2019 Satellite Launch System
8/16
Type of Launch Sequence
There are two broad categories of launch sequence, one that is employed by expendable
launch vehicles such as Ariane of the European Space Agency and Atlas Centaur and
Thor Delta of the United States and the other that is employed by a re-usable launch
vehicle such as the Space Shuttle of the United States and the recent development Buran
of Russia.
Irrespective of whether a satellite is launched by a re-usable launch vehicle or an
expendable vehicle, the satellite heading for a geostationary orbit is first placed in a
transfer orbit. The transfer orbit is elliptical in shape with its perigee at an altitude between
200 km and 300 km and its apogee at the geostationary altitude. In some cases, the
launch vehicle injects the satellite directly into a transfer orbit of this type.
Following this, an apogee manoeuvre circularizes the orbit at the geostationary
altitude. The last step is then to correct the orbit for its inclination. This type of launch
sequence is illustrated in Figure 1. In the second case, the satellite is first injected into a
low Earth circular orbit. In the second step, the low Earth circular orbit is transformed into
an elliptical transfer orbit with a perigee manoeuvre. Circularization of the transfer orbit
and then correction of the orbit inclination follow this. This type of sequence is illustrated in
Figure 2.
Figure 1 Figure 2
7/29/2019 Satellite Launch System
9/16
REFERENCES
1. Anil K. Maini and Varsha Agrawal (2011). Satellite Technology: Principles and
Applications, 2nd edition. UK: John Wiley & Sons Ltd.2. Isakowitz, Steven J. (1999). AIAA International Reference Guide to Space Launch
Systems (3rd Edition). Washington, DC: American Institute of Aeronautics and
Astronautics.
3. Wertz, James R. and Wiley J. Larson (Ed.). (1999). Space Mission Analysis and
Design. El Segundo: Microcosm Press.
http://www.kobobooks.com/ebook/Satellite-Technology/book-ONeXqFjFuUuVutbrSfpSkQ/page1.htmlhttp://www.chapters.indigo.ca/books/satellite-technology-principles-and-applications/9780470033357-item.htmlhttp://www.chapters.indigo.ca/books/satellite-technology-principles-and-applications/9780470033357-item.htmlhttp://www.chapters.indigo.ca/books/satellite-technology-principles-and-applications/9780470033357-item.htmlhttp://www.chapters.indigo.ca/books/satellite-technology-principles-and-applications/9780470033357-item.htmlhttp://www.kobobooks.com/ebook/Satellite-Technology/book-ONeXqFjFuUuVutbrSfpSkQ/page1.html7/29/2019 Satellite Launch System
10/16
Appendix - Source Code Listing
Payload Constraints & Optimization Flags, payload_dat.m
%##################################%## payload data
%specify a "-1" value to disable constraint
payload.name = 'Test Payload';payload.mass = 6000; %[kg], total payload mass (spacecraft, adaptors, propellant)payload.diameter = 3; %[m], payload diameterpayload.height = 3; %[m], payload heightpayload.orbit_type = 'leo'; %orbit class // options: [leo, polar, sunsync, ss, gto, geo]payload.inclination = 34; %[deg], desired orbit inclinationpayload.launchfreq = 2; %[launches/year], launch frequencypayload.max_axial_accel = 8.5; %[g], max axial accelerationpayload.max_lat_accel = 2.2; %[g], max lateral accelerationpayload.lat_freq = 45; %[Hz], min lateral frequencypayload.long_freq = 30; %[Hz], min longitudinal frequencypayload.acoustic = 200; %[dB], noise intensitypayload.max_aeroheating = 1200; %[W/m^2], aeroheating after fairing deploypayload.air_clean = 10000; %[class], air cleanliness classpayload.orbital_accu_alt = 20; %[km], allowable LEO insertion altitude error (+/-)
payload.orbital_accu_incl = 2; %[deg], allowable LEO insertion inclination error (+/-)
%##################################%## Program Optimization Sorting Options
% 1 for category sort on // 0 for category sort off% You may only enable one sort category at a time.
payload.cost = 0; %minimize costpayload.risk = 0; %minimize riskpayload.pmargin = 0; %maximize marginpayload.availiability = 0; %maximize availabilitypayload.absolute_cost = 1; %minimize absolute cost
Load Data File, load_data.m%##################################%## load data
clearclc
%loads payload datapayload_dat
%Loads all launch vehicles
i=0;
Ariane4Ariane5
AtlasIIAtlasIIIAtlasVDeltaIIDeltaIVMolniyaPegasusProton_aProton_bSoyuz
clear i j
7/29/2019 Satellite Launch System
11/16
Sample Vehicle Data File, AtlasII.m
% Launch Vehicle Database
i=i+1;
veh{i}.family = 'Atlas';veh{i}.class = 'Atlas II';veh{i}.country = 'USA';veh{i}.provider = 'Lockheed Martin';veh{i}.success_flight = 41; %# of flights%veh{i}.total_flights = 41;veh{i}.stddwntime = 0.3; %yearsveh{i}.surge = 1.15; %percentageveh{i}.max_axial_accel = 6; %gveh{i}.max_lat_accel = 2; %gveh{i}.min_lat_freq = 10; %Hzveh{i}.min_long_freq = 15; %Hzveh{i}.shock = 4000; %gveh{i}.acoustic = 131; %dBveh{i}.fairing_press = 7; %kPa/sveh{i}.max_aeroheating = 1135; %W/m^2veh{i}.air_clean = 100000; %class
veh{i}.orbital_accu_alt = 19.4; %kmveh{i}.orbital_accu_incl = 0.02; %degveh{i}.rate = 7; %# per year
veh{i}.site{1}.name = 'KSC';veh{i}.site{1}.min_incl = 28.5; %degveh{i}.site{1}.max_incl = 55; %deg
veh{i}.site{2}.name = 'Vandenberg';veh{i}.site{2}.min_incl = 63; %degveh{i}.site{2}.max_incl = 120; %deg
%-- Variants / Upper Stages --j=1;
veh{i}.upper_stage{j}.var_name = 'A';veh{i}.upper_stage{j}.mass2leo = 7316; %kgveh{i}.upper_stage{j}.mass2polar = 6192; %kg
veh{i}.upper_stage{j}.mass2SS = 6074; %kgveh{i}.upper_stage{j}.mass2sunsync = 0; %kgveh{i}.upper_stage{j}.mass2gto = 3066; %kgveh{i}.upper_stage{j}.mass2geo = 0; %kgveh{i}.upper_stage{j}.cost = 85; %million dollarsveh{i}.upper_stage{j}.fairingheight = 4.1; %mveh{i}.upper_stage{j}.fairingdiameter = 2.9; %m
j=j+1;veh{i}.upper_stage{j}.var_name = 'AS';veh{i}.upper_stage{j}.mass2leo = 8618; %kgveh{i}.upper_stage{j}.mass2polar = 7212; %kgveh{i}.upper_stage{j}.mass2SS = 7225; %kgveh{i}.upper_stage{j}.mass2sunsync = 0; %kgveh{i}.upper_stage{j}.mass2gto = 3719; %kgveh{i}.upper_stage{j}.mass2geo = 0; %kgveh{i}.upper_stage{j}.cost = 105; %million dollars
veh{i}.upper_stage{j}.fairingheight = 4.1; %mveh{i}.upper_stage{j}.fairingdiameter = 3.7; %m
7/29/2019 Satellite Launch System
12/16
Launch Select Tool, launcher_select.m
function bestveh = launcher_select(payload, veh_input);
% This is a launch vehicle selection tool% input #1 - payload specifictions% input #2 - launch vehicle specs
%expand database for upper stageskk = 1;
for ii = [1:length(veh_input)]
%## if generic vehicle can lift payload, add to database
for jj = [1:length(veh_input{ii}.upper_stage)]veh{kk} = veh_input{ii};veh{kk}.class = [veh_input{ii}.class '_' veh_input{ii}.upper_stage{jj}.var_name];
veh{kk}.mass2leo = veh_input{ii}.upper_stage{jj}.mass2leo;veh{kk}.mass2polar = veh_input{ii}.upper_stage{jj}.mass2polar;veh{kk}.mass2ss = veh_input{ii}.upper_stage{jj}.mass2SS;veh{kk}.mass2sunsync = veh_input{ii}.upper_stage{jj}.mass2sunsync;veh{kk}.mass2gto = veh_input{ii}.upper_stage{jj}.mass2gto;veh{kk}.mass2geo = veh_input{ii}.upper_stage{jj}.mass2geo;
veh{kk}.cost = veh_input{ii}.upper_stage{jj}.cost;veh{kk}.fairingheight = veh_input{ii}.upper_stage{jj}.fairingheight;veh{kk}.fairingdiameter = veh_input{ii}.upper_stage{jj}.fairingdiameter;
end
end
veh{kk} = rmfield(veh{kk}, 'upper_stage');kk = kk+1;
% filter based on all constraintssite_found = 0; %flag foundm = 1; %counter for qualified vehiclesfor i = [1:length(veh)]
%site and inclination constraintfor j = [1:length(veh{i}.site)]
if(veh{i}.site{j}.max_incl >= payload.inclination & veh{i}.site{j}.min_incl
7/29/2019 Satellite Launch System
13/16
10
if(veh{i}.mass2ss < payload.mass)continue;
end
end
%diameter constraintif(veh{i}.fairingdiameter < payload.diameter)
continue;end%height constraintif(veh{i}.fairingheight < payload.height)
continue;end%max_acceleration constraintif(payload.max_lat_accel ~= -1)
if(veh{i}.max_lat_accel > payload.max_lat_accel)continue;
endend
%max_acceleration constraintif(payload.max_axial_accel ~= -1)if(veh{i}.max_axial_accel > payload.max_axial_accel)
continue;
endend
%vibration constraintif(payload.lat_freq ~= -1)
if(veh{i}.min_lat_freq > payload.lat_freq)continue;
end
end
if(payload.long_freq ~= -1)if(veh{i}.min_long_freq > payload.long_freq)
continue;
end
end
%acoustic constraintif(payload.acoustic ~= -1)if(veh{i}.acoustic > payload.acoustic)
continue;
endend
%temp constraint if(payload.max_aeroheating ~= -1)if(veh{i}.max_aeroheating > payload.max_aeroheating)
continue;
endend
%air_clean constraintif(payload.air_clean ~= -1)
if(veh{i}.air_clean < payload.air_clean)continue;
end
end
%orbit_accu if(payload.orbital_accu_alt ~= -1)if(veh{i}.orbital_accu_alt > payload.orbital_accu_alt)
continue;
endend
if(payload.orbital_accu_incl ~= -1)if(veh{i}.orbital_accu_incl > payload.orbital_accu_incl)
continue;
end
end
%vehicle passes all constraints, add to listqualified_vehicles{m} = veh{i};
% fprintf(['\n' qualified_vehicles{m}.class '\n'])m = m+1;
end
%calculate reliability%calculate availiability for remaining vehicles%calculate performance marginif(exist('qualified_vehicles') == 0)
error(' No Vehicles Qualify.');end
for i = [1:length(qualified_vehicles)]if(qualified_vehicles{i}.total_flights == 0)
qualified_vehicles{i}.reliability = 0;else
qualified_vehicles{i}.reliability = qualified_vehicles{i}.success_flight/qualified_vehicles{i}.total_flights;
7/29/2019 Satellite Launch System
14/16
11
endqualified_vehicles{i}.availiability = 1 - (payload.launchfreq*(1-
qualified_vehicles{i}.reliability)*qualified_vehicles{i}.stddwntime/(1 - 1/qualified_vehicles{i}.surge));if(strcmp(payload.orbit_type,'leo') == 1)
qualified_vehicles{i}.pmargin = qualified_vehicles{i}.mass2leo - payload.mass;endif(strcmp(payload.orbit_type,'gto') == 1)
qualified_vehicles{i}.pmargin = qualified_vehicles{i}.mass2gto - payload.mass;endif(strcmp(payload.orbit_type,'geo') == 1)
qualified_vehicles{i}.pmargin = qualified_vehicles{i}.mass2geo - payload.mass;endif(strcmp(payload.orbit_type, 'polar') == 1)
qualified_vehicles{i}.pmargin = qualified_vehicles{i}.mass2polar - payload.mass;endif(strcmp(payload.orbit_type, 'sunsync') == 1)
qualified_vehicles{i}.pmargin = qualified_vehicles{i}.mass2sunsync - payload.mass;endif(strcmp(payload.orbit_type, 'ss') == 1)
qualified_vehicles{i}.pmargin = qualified_vehicles{i}.mass2ss - payload.mass;
end
end
% now optimize based on optionsm = 1;if(payload.absolute_cost == 1)
fprintf('\n## Absolute Cost Optimization ##\n')while(~isempty(qualified_vehicles))
min = qualified_vehicles{1}.cost+((1 - qualified_vehicles{1}.reliability)*qualified_vehicles{1}.cost);
bestveh{m} = qualified_vehicles{1};bestveh{m}.abs_cost = min;
best = 1;for i = [1:length(qualified_vehicles)]
if(qualified_vehicles{i}.cost + ((1 - qualified_vehicles{i}.reliability)*qualified_vehicles{i}.cost) < min)bestveh{m} = qualified_vehicles{i};bestveh{m}.abs_cost = (qualified_vehicles{i}.cost + ((1 -
qualified_vehicles{i}.reliability)*qualified_vehicles{i}.cost));min = qualified_vehicles{1}.cost+((1 - qualified_vehicles{1}.reliability)*qualified_vehicles{1}.cost);best = i;
endend
%delete best entry from qualified vehiclesfprintf(['\n ' qualified_vehicles{best}.class ' | ' num2str(qualified_vehicles{best}.cost+((1 -
qualified_vehicles{best}.reliability)*qualified_vehicles{best}.cost)) '\n'])qualified_vehicles(best) = [];m = m+1;
end
end
if(payload.cost == 1)fprintf('\n## Cost Optimization ##\n')while(~isempty(qualified_vehicles)) min
= qualified_vehicles{1}.cost;bestveh{m} = qualified_vehicles{1};best = 1;for i = [1:length(qualified_vehicles)]
if(qualified_vehicles{i}.cost < min)bestveh{m} = qualified_vehicles{i};min = qualified_vehicles{i}.cost;best = i;
end
end
end
end
%delete best entry from qualified vehiclesfprintf(['\n ' qualified_vehicles{best}.class ' | ' num2str(qualified_vehicles{best}.cost) '\n'])qualified_vehicles(best) = [];m = m+1;
if(payload.risk == 1)fprintf('\n## Risk Optimization ##\n')while(~isempty(qualified_vehicles))
min = (1 - qualified_vehicles{1}.reliability)*qualified_vehicles{1}.cost;bestveh{m} = qualified_vehicles{1};best = 1;for i = [1:length(qualified_vehicles)]
if((1 - qualified_vehicles{i}.reliability)*qualified_vehicles{i}.cost < min)bestveh{m} = qualified_vehicles{i};min = (1 - qualified_vehicles{i}.reliability)*qualified_vehicles{i}.cost;best = i;
endend
%delete best entry from qualified vehicles
7/29/2019 Satellite Launch System
15/16
12
fprintf(['\n ' qualified_vehicles{best}.class ' | ' num2str((1 -qualified_vehicles{best}.reliability)*qualified_vehicles{best}.cost) '\n'])
qualified_vehicles(best) = [];m = m+1;
endend
if(payload.availiability == 1)fprintf('\n## Availability Optimization ##\n')while(~isempty(qualified_vehicles))
max = qualified_vehicles{1}.availiability;bestveh{m} = qualified_vehicles{1};best = 1;for i = [1:length(qualified_vehicles)]
if(qualified_vehicles{i}.availiability > max)bestveh{m} = qualified_vehicles{i};max = qualified_vehicles{i}.availiability;best = i;
end
end
%delete best entry from qualified vehiclesfprintf(['\n ' qualified_vehicles{best}.class ' | ' num2str(qualified_vehicles{best}.availiability) '\n'])
endend
qualified_vehicles(best) = [];m = m+1;
if(payload.pmargin == 1)fprintf('\n## Performance Margin Optimization ##\n')while(~isempty(qualified_vehicles))
max = qualified_vehicles{1}.pmargin;bestveh{m} = qualified_vehicles{1};best = 1;for i = [1:length(qualified_vehicles)]
if(qualified_vehicles{i}.pmargin > max)bestveh{m} = qualified_vehicles{i};max = qualified_vehicles{i}.pmargin;best = i;
endend
7/29/2019 Satellite Launch System
16/16
Top Related