Ich habe dieses Matlab-Projekt, aber aus irgendeinem Grund kann ich einfach nicht aufhören darüber nachzudenken, weil ich es nicht zur Arbeit bringen konnte.Wie debugge ich diesen Matlab-Code, um den Gleitflug-Abstieg zu modellieren?
Ziel:
Dies ist ein MATLAB-Skript, das die Änderung von Druck, Temperatur und Dichte eines Segelflugzeugs berechnen würde, die von 10000 Fuß fallen gelassen wird. Wenn es fällt, wollen wir diese neuen Werte berechnen und dann eine Funktion einfügen, die 4 Gleichungen hat, die an jedem Punkt unter Verwendung von ode45 sowie der neuen Werte von P T und Rho differenziert werden müssen.
Hier ist der Hauptcode:
% HouseKeeping:
clc
clear all
close all
% Constants:
S = 232; % ft^2
Cd0 = 0.02;
K = 0.07;
W = 11000; % lbf
Cl_max = sqrt(Cd0/K);
Cd_max = 2*K*Cl_max^2;
Rho_10000 = .001756; % slugs/ ft^3
%Initial conditions:
t = 0; % Sec
x = 0; % ft
h = 10000; % ft
v = sqrt((2*W)/(Rho_10000*S*Cl_max)); %ft/s
gamma = -Cd_max/Cl_max;
% Find Endurance:
V_RD= sqrt((2*W)/(S* Rho_10000* sqrt(3*Cd0/K)));
RD= V_RD/((sqrt(3*Cd0/K))/(2*Cd0)) ; % ft/s
Endurcance= h/RD; % 958.3515 sec
% Sea Level values:
TSL = 518.69; % Rankine
PSL = 2116.199414; % lbs/ft^2
RhoSL = 0.0023769; % slugs/ft^3
while h > 0
tspan = [t t+1];
i=1;
X = [x;h;v;gamma;Rho_10000];
Time(i)= t;
% Calling ODE45:
[F] = ode45(@ D,tspan, X)
% Hight Varying Parameters:
T = TSL - 0.00356616*h;
P = (1.137193514E-11)*(T)^5.2560613;
Rho = (RhoSL * TSL/PASL)*(P/T);
a = 49.0214 * (T)^.5;
H_Del(i) = (-Cd_max/Cl_max)*(plotted_x(i))+10000;
V_Del(i) = sqrt((2*W)/(Rho*S*Cl_max));
Gamma_Del(i) = -Cd_max/Cl_max;
i= i+1;
X = [ x ; H_Del(i); V_Del(i); Gamma_Del(i); Rho];
end
% Plots:
%1
figure (1)
plot(F(:,1),'-r',F(:,3),'-b')
title('Velocity vs Distance');
xlabel('x (ft)');
ylabel('v (ft/s)');
%2
Figure (2)
plot(F(:,1),'-r',F(:,2),'-b')
title('Altitude vs Distance ');
xlabel('x (ft)');
ylabel('h (ft)');
%3
figure (3)
plot(F(:,1),'-r',F(:,4),'-b')
title('Gamma vs Distance');
xlabel('x (ft)');
ylabel('Gamma (rad)');
%4
figure (4)
plot(t,'-r',F(:,3),'-b')
title('Velocity vs Time');
xlabel(' t (s)');
ylabel('v (ft/s)');
%5
figure (5)
plot(t,'-r',F(:,1),'-b')
title(' Distance vs Time ');
xlabel('t (s)');
ylabel('x (ft)');
%6
figure (6)
plot(t,'-r',F(:,4),'-b')
title('Gamma vs Time ');
xlabel('t (s)');
ylabel('Gamma (rad)');
%7
figure (7)
plot(t,'-r',F(:,3),'-b')
title('Velocity vs Time');
xlabel('t (s)');
ylabel('V (ft/s)');
Hier wird die Funktion ist
function [F] = D(X)
% Constants:
S = 232; % ft^2
Cd0 = 0.02;
K = 0.07;
W = 11000; % lbf
Cl_max = sqrt(Cd0/K);
Cd_max = 2*K*Cl_max^2;
Rho_10000 = .001756; % slugs/ ft^3
% Initial conditions:
t = 0; % Sec
x = 0; % ft
h = 10000; % ft
v = sqrt((2*W)/(Rho_10000*S*Cl_max)); % ft/s
gamma = -Cd_max/Cl_max;
g= 32.2; % ft/s^2
% Equations:
X_Pr = X(3)*cos(X(4));
H_Pr = X(3)*sin(X(4));
V_Pr = (-32.2./W)*(0.5*X(5)*Cd_max*S*X(3)^2 + W*sin(X(4)));
G_Pr = (32.2./(W*X(3)))*(0.5*X(5)*Cl_max*S*X(3)^2 - W*cos(X(4)));
F = [X_Pr;H_Pr;V_Pr;G_Pr];
Ich bin nicht sehr gut mit Matlab, aber ich habe mein Bestes! Ich ging zu meinen Professoren um Hilfe, aber sie sagten, sie seien zu beschäftigt. Ich stakste sogar jeden Älteren, den ich kannte, und sie sagten alle, dass sie nicht wussten, wie es geht. Mein nächstes Projekt wird bald vergeben und ich denke, wenn ich das nicht kann, dann kann ich das nächste nicht machen.
'Ich konnte es nicht zum Laufen bringen ???' - erkläre das Problem! Syntaxfehler, Lauffehler? unerwartete Ergebnisse? Machen Sie nicht nur Code durch und erwarten Sie, dass wir die Arbeit für Sie erledigen. – hpaulj
Danke, Sir, und ich entschuldige mich aufrichtig dafür, dass Sie denken, dass ... wie ich bereits erwähnt habe, ich seit fast einem Monat an diesem Tag arbeite, ich weiß, dass mir das fehlt und ich natürlich nicht weiß, wie ich das machen soll, aber ich habe es wirklich versucht! Du kannst mich für meine Unfähigkeit verantwortlich machen, aber du kannst nicht sagen, dass ich es einfach rausschmeiße, damit die Leute es für mich tun, weil es nicht wahr ist. Und um Ihre Frage zu beantworten, ist es ALLE. Ich bin kein Programmierer und habe keine Erfahrung mit MATLAB, und auf einmal müssen wir es für etwas verwenden, das so kompliziert ist und erwarten, es richtig zu machen. – Gadless