Undefined function or variable 'm'
2 views (last 30 days)
Show older comments
Good evening, I am a fairly new matlab user and am trying to run ode45 to output a graph of a change in theta over time. I am using a friends code as a template and can't figure out where I am going wrong. I appreciate the help that anyone can offer. For context, the problem is of someone rappelling from a helicopter, and I want to graph the change in theta with different values for mass, wind force (Fw), and Length.
global Fw, m, g, L
R2D= 180/pi;
m= 97; % mass of soldier [Kg]
L= -5; % Length of soldier on rope (relative to helicopter)
g= 9.81; % gravity in m/s^2
dt=.01; % step size for time
tspan= 0:dt:tf;
the= 1*(pi/180); %initial angle in degrees
y0=[0, 0, the, 0];
[t,x]= ode45(@AA,tspan,y0);
figure
plot(t,x(:,1)*R2D)
title('Pendulum angle over time')
xlabel('Time [s]')
ylabel('\theta [deg]')
[n,m] = size(t);
W = -m*g.*ones(n,1);
function dxdt = AA(t,x)
global g L m Fw
dxdt = zeros(2,1);
dxdt(1) = x(2);
dxdt(2) = (Fw*cos(x(1)))/(m*L)-(g/L)*sin(x(1));
end
0 Comments
Answers (2)
KSSV
on 29 Nov 2017
Replace line:
global Fw, m, g, L
with :
global Fw m g L
don't use commas.
7 Comments
Chafik Zerrouki
on 29 Nov 2017
Hello Cory,
Read the documentation of 'global'. Don't put comma and it will work (line 1).
global Fw m g L
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!