Undefined function or variable 'm'

1 次查看(过去 30 天)
cory loob
cory loob 2017-11-29
评论: Stephen23 2017-11-29
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

回答(2 个)

KSSV
KSSV 2017-11-29
Replace line:
global Fw, m, g, L
with :
global Fw m g L
don't use commas.
  7 个评论
Stephen23
Stephen23 2017-11-29
And don't use globals. Search this forum to know why.

请先登录,再进行评论。


Chafik Zerrouki
Chafik Zerrouki 2017-11-29
Hello Cory,
Read the documentation of 'global'. Don't put comma and it will work (line 1).
global Fw m g L

类别

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