Code will not plot graph when I try to change my payload vector increment.

10 次查看(过去 30 天)
My code is supposed to display a plot of the Range vs Payload of an aircraft, however, when I try and change the increment of my payload vector from 100, the plot comes up blank. It will not even include my title or axes labels. Let me know what I need to fix to allow me to change my increment and still have the plot display. It shows there is a potential error with the length of the payload and the range vectors when it gets to the point of plotting if I change the incerment.
% PAYLOAD CALULATIONS
TotalPassengerWeight = Passengers * PassengerWeight;
TotalLuggageWeight = Luggage * LuggageWeight;
MaxPayload = TotalPassengerWeight + TotalLuggageWeight;
Payload = [0:100:MaxPayload];
% FUEL CALCULATIONS
i = 1;
while Payload <= MaxPayload & i <= length(MaxPayload)
Fuel(i) = MaxTakeOff - EmptyWeight - Payload(i) - TotalCrewWeight; %kg
i = i + 1;
end
TakeOffFuel = .995 .* Fuel;
ClimbFuel = .980 .* Fuel;
DescentFuel = .990 .* Fuel;
LoiterFuel = .987 .* Fuel;
LandFuel = .992 .* Fuel;
TakeOffFuelUsed = Fuel - TakeOffFuel;
ClimbFuelUsed = Fuel - ClimbFuel;
DescentFuelUsed = Fuel - DescentFuel;
LoiterFuelUsed = Fuel - LoiterFuel;
LandFuelUsed = Fuel - LandFuel;
FuelUsed = TakeOffFuelUsed + ClimbFuelUsed + DescentFuelUsed + LoiterFuelUsed + LandFuelUsed;
% WEIGHT CALCULATIONS
InitialWeight = MaxTakeOff;
FinalWeight = MaxTakeOff - (Fuel - FuelUsed);
% RANGE CALCULATION
Range = (PropellerEfficiency / Ct) * (LtoD) * log(InitialWeight ./ FinalWeight); %m
% PLOT.
figure(1)
hold on
plot(Payload,Range,"r-");
title("Range(m) vs Payload(kg) of a Propeller Aircraft");
xlabel("Payload(m)");
ylabel("Range(m)");
grid on
hold off

采纳的回答

Image Analyst
Image Analyst 2020-11-29
You're not using the correction I gave you in your other post:
while (i <= length(Payload)) && (Payload(i) <= MaxPayload)
Why not?
Plus, realize that Fuel is a vector so all the other things will also vectors.
If you need more help, give us the missing code to assign the variables that are needed to run your program.
  3 个评论
Image Analyst
Image Analyst 2020-11-29
This works and makes a plot:
clc; % Clear the command window.
clear all;
close all;
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 15;
MaxTakeOff = 4750; %(kg) Max Takeoff Weight
EmptyWeight = 2810; %(kg) Empty Weight
MaxFuelCapacity = 1225; %(kg) Max Fuel Capacity
Crew = 1; %people Number of Crew Members
Passengers = 8; %people Number of Passengers
LtoD = 15; % Lift to Drage Ratio
PropellerEfficiency = .8; % Propeller Efficiency
Ct = 1.92; %Specific Fuel Consumption
CrewWeight = 65; %kg Average Weight of a Crew Member
PassengerWeight = 75; %kg Average Weight of a Passenger
Luggage = 8; %items Number of items a passenger is allowed to have
LuggageWeight = 25; %kg
TotalCrewWeight = Crew * CrewWeight; %kg
% PAYLOAD CALULATIONS
TotalPassengerWeight = Passengers * PassengerWeight;
TotalLuggageWeight = Luggage * LuggageWeight;
MaxPayload = TotalPassengerWeight + TotalLuggageWeight;
Payload = [0:100:MaxPayload];
% FUEL CALCULATIONS
i = 1;
while (i <= length(Payload)) && (Payload(i) <= MaxPayload)
Fuel(i) = MaxTakeOff - EmptyWeight - Payload(i) - TotalCrewWeight; %kg
i = i + 1;
end
TakeOffFuel = .995 .* Fuel;
ClimbFuel = .980 .* Fuel;
DescentFuel = .990 .* Fuel;
LoiterFuel = .987 .* Fuel;
LandFuel = .992 .* Fuel;
TakeOffFuelUsed = Fuel - TakeOffFuel;
ClimbFuelUsed = Fuel - ClimbFuel;
DescentFuelUsed = Fuel - DescentFuel;
LoiterFuelUsed = Fuel - LoiterFuel;
LandFuelUsed = Fuel - LandFuel;
FuelUsed = TakeOffFuelUsed + ClimbFuelUsed + DescentFuelUsed + LoiterFuelUsed + LandFuelUsed;
% WEIGHT CALCULATIONS
InitialWeight = MaxTakeOff;
FinalWeight = MaxTakeOff - (Fuel - FuelUsed);
% RANGE CALCULATION
Range = (PropellerEfficiency / Ct) * (LtoD) * log(InitialWeight ./ FinalWeight); %m
% PLOT Randy (Y) vs. Payload (X).
plot(Payload, Range, 'r.-', 'LineWidth', 2, 'markerSize', 30);
title("Range(m) vs Payload(kg) of a Propeller Aircraft", 'FontSize', fontSize);
xlabel("Payload(m)", 'FontSize', fontSize);
ylabel("Range(m)", 'FontSize', fontSize);
grid on
hold off

请先登录,再进行评论。

更多回答(1 个)

Yogi
Yogi 2023-11-28
Halo Hanna, Can i ask for the full code of Payload-Range diagram? Thank you for your sincerity
  3 个评论

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Programming 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by