Hur skapar du en katapult simulering med hjälp av matlab GUI?

Hur skapar du en katapult simulering med hjälp av matlab GUI?

% Definitioner
R2D = 180/pi; % rad till deg
D2R = pi/180; % deg till rad
F2M = 0.3040; % fot till meter
m = 45.46; % kg
g =-9.8; % allvar (m/s ^ 2)
j = sqrt(-1);
DT = 0,001; % 1000Hz

R1 = 15 * F2M; %m
R2 = 15 * F2M;

% Initialt villkorar
xBall = [0; 0]; % theta/omega

% Maskin initialt villkorar
Vridmoment = (-1) * m * g * R1; % N-m
Pmotor = 1119000; % W
TBREAK = (4404 / 0.738) * 2.3; % paus vridmoment i N-m

% Bollen
Jag = m*(R1^2);

för lansering = 0:1:20
times_launched = starta + 1.

% Main loop
ITER = 0;
tid = 0:dt:1

% Index
ITER = iter + 1.

% Vridmoment generation och kontrollera
om ((xBall(2,1))< ((pmotor)/tbreak)="">
Vridmoment = Tbreak;
annat
Vridmoment = (Pmotor)/xBall(2,1);
slutet

% Från 0 grader till 90 grader
om ((xBall(1,1)*R2D) > = 0) ((xBall(1,1)*R2D)<>
% Beräkna nettovridmoment
Tgrav = (m*g*cos(xBall(1,1))) * R1;
Tnet = vridmoment + Tgrav;

% Beräkna momentana vinkelformig acceleration
alfabetet b = Tnet / I.

% Beräkna derivatan av staten
xdot = [xBall(2,1); alfabetet b];

% Integration av staten
xBall = xBall + xdot * dt;

Procent beroende av stater
pBall = R1 * (cos(xBall(1,1)) + j*sin(xBall(1,1)));
Släkt = xBall(2,1) * R1;
Power = (Tnet/R1) * släkt;

ElseIf (((xBall(1,1)*R2D) > = 90) ((xBall(1,1)*R2D)<= 180)="">

% Beräkna nettovridmoment
Tgrav = (m * g * cos (xBall(1,1))) * R1;
Tnet = vridmoment + Tgrav;

% Beräkna momentana vinkelformig acceleration
alfabetet b = Tnet / I.

% Beräkna derivatan av staten
xdot = [xBall(2,1); alfabetet b];

% Integration av staten
xBall = xBall + xdot * dt;

Procent beroende av stater
pBall = real(vBall) * tid.
Power = (Tnet/R1) * släkt;

slutet;

DATA(ITER,:) = [iter tid xBall "alfabetet b Tnet xBall (1,1) * R2D...
Real(pBall) imag(pBall) real(vBall) imag(vBall) släkt Power];

slutet;

slutet;

%% Banan för projektil (y vs x)
Figure(1);
handling (DATA(:,8), DATA(:,9), '.');
titel ("bana (y vs x) av projektil under lanseringen")
xlabel('x')
ylabel('y')

%% Utbud (x) vs tid
Figure(2);
delyta (211), plot(DATA(:,2), DATA(:,8), '.');
titel ("Range(x) som en funktion av tiden")
ylabel('Range(x)')

%% Höjd (y) vs tid
delyta (212), plot(DATA(:,2), DATA(:,9), '.');
titel ("Altitude(y) som en funktion av tiden")
xlabel('time')
ylabel('Altitude(y)')

%% Velocity (x och y komponenter) vs tid
Figure(3);
delyta (211), plot(DATA(:,2), DATA(:,10), '.');
title ('hastighet (x och y) som en funktion av tiden")
ylabel('Velocity(x)')

delyta (212), plot(DATA(:,2), DATA(:,11), '.');
xlabel('time')
ylabel('Velocity(y)')

%% Velocity (total) vs tid
Figure(4);
Plot(data(:,2), DATA(:,12), '.');
titel ("Velocity(total) som en funktion av tiden")
xlabel('time')
ylabel ("Velocity (totalt))")

%% Power vs tid
Figure(5);
Plot(data(:,2), DATA(:,13), '.');
titel ("makt som en funktion av tiden")
xlabel('time')
ylabel('Power')