필터 지우기
필터 지우기

Not Sure How to Call a Norm from Within a Function

조회 수: 1 (최근 30일)
Jon Stapchuck
Jon Stapchuck 2021년 2월 26일
댓글: Jon Stapchuck 2021년 2월 26일
Hello,
I'm not sure how to make a plot of a norm that I found inside a function.
Here is my code, which will best help me explain:
clc; clear all;
ti = 0;
tf = 15;
global I11 I22 I33 Mx My Mz w10 w20 w30 eps10 eps20 eps30 eps40 IC K0
I11 = 160;
I22 = 400;
I33 = 400;
Mx = 0;
My = 0;
Mz = 45;
w10 = 2;
w20 = -1;
w30 = 1;
eps10 = 0;
eps20 = 0;
eps30 = 0;
eps40 = 1;
K0 = eps10^2+eps20^2+eps30^2+eps40^2;
IC = [w10 w20 w30 eps10 eps20 eps30 eps40];
[t, y] = ode45(@(t,y) DynEqn1(t,y,I11,I22,I33,Mx,My,Mz), [ti tf], IC);
figure (1)
plot(t,y(:,1:3))
figure (2)
plot(t,y(:,4:7))
figure (3)
plot(t,(norm(y(:,4:7))-K0))
function soln = DynEqn1(t,y,I11,I22,I33,Mx,My,Mz)
w1 = y(1);
w2 = y(2);
w3 = y(3);
eps1 = y(4);
eps2 = y(5);
eps3 = y(6);
eps4 = y(7);
disp(norm(y(4:7)))
w1_dot = (Mx - w2*w3*(I33-I22))/I11;
w2_dot = (My - w1*w3*(I11-I33))/I22;
w3_dot = (Mz - w1*w2*(I22-I11))/I33;
eps1_dot = .5*(w1*eps4-w2*eps3+w3*eps2);
eps2_dot = .5*(w1*eps3+w2*eps4-w3*eps1);
eps3_dot = .5*(-w1*eps2+w2*eps1+w3*eps4);
eps4_dot = -.5*(w1*eps1+w2*eps2+w3*eps3);
soln = [w1_dot; w2_dot; w3_dot; eps1_dot; eps2_dot; eps3_dot; eps4_dot];
end
Basically, if I just display the norm from within the function, I get the values. But I would like to plot those values (minus a set value) versus time, but can't get it to work.
I tried defining the norm from within the function as a variable, K, but that didn't work either.
Any help is appreciated.
Thanks,
Jon

채택된 답변

Walter Roberson
Walter Roberson 2021년 2월 26일
N = sqrt(sum(y(:,4:7).^2,2));
plot(t, N)
  댓글 수: 3
Walter Roberson
Walter Roberson 2021년 2월 26일
sum(EXPRESSION,2) is summation along the second dimension -- along the rows in other words. In this case equivalent to
N = sqrt(y(:,4).^2+y(:,5).^2+y(:,6).^2+y(:,7).^2);
Jon Stapchuck
Jon Stapchuck 2021년 2월 26일
Oh I see, thank you for the explaination

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Cell Arrays에 대해 자세히 알아보기

제품


릴리스

R2017a

Community Treasure Hunt

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

Start Hunting!

Translated by