フィルターのクリア

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 件のコメント
KSSV
KSSV 2017 年 11 月 29 日
Good......
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 Center および File ExchangeProgramming についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by