Finding the maximum time of ode45

10 vues (au cours des 30 derniers jours)
Collin Parker
Collin Parker le 30 Avr 2021
Commenté : Collin Parker le 30 Avr 2021
I have a question about my code. I am supposed to find the time at which ymax occurs. I have no idea how to set this up. Thank you.
% Physical constants
m = 45; % kg
l = 10; % m
d = 3.3; % m
rg = 4; % m
I = m*rg^2; % kg.m^2
k = 100e3; % N.m/rad
% Derive the equations of motion and solve them below using ode45
Dz = @(t,z)[z(2);((10*sin(0.1*t)*cos(z(1)*d)-(k/100*(z(1))))/(I+(m*d^2)))];
[t,z] = ode45(Dz,(0:0.1:330),[0;0]);
% Compute the maximum deflection magnitude and the first time of occurence
y = tan(z(:,1)).*l;
ymax = max(abs(y))
tmax =
  1 commentaire
VBBV
VBBV le 30 Avr 2021
Modifié(e) : VBBV le 30 Avr 2021
Use the index of the matrix y where the max selection occurs

Connectez-vous pour commenter.

Réponse acceptée

Benjamin Großmann
Benjamin Großmann le 30 Avr 2021
The max function is able to output the index of the max value:
[ymax, idx_max] = max(abs(y))
tmax = t(idx_max)

Plus de réponses (0)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by