error occurring while solving odes using ode15s

2 visualizaciones (últimos 30 días)
Meenakshi Tripathi
Meenakshi Tripathi el 8 de Abr. de 2021
Comentada: Torsten el 5 de En. de 2023
function comb_thesis
clc
clear all
global E A B
E = [-3.6264 3.5447 -4.8625 zeros(1,8);-0.3148 -1.9197 -1.1648 zeros(1,8);zeros(3) eye(3) zeros(3,5);zeros(6,11)]
A = [8.5970 -8.3254 9.8331 zeros(1,8);1.0280 2.9897 1.8778 zeros(1,8);zeros(1,3) -0.75 -1 0.25 zeros(1,3) 51.3257 11.2723;zeros(1,3) 0 -2 0 zeros(1,3) 41.5581 7.8378;zeros(1,3) 0.25 1 -0.75 zeros(1,3) -24.3673 -6.2663;zeros(1,3) eye(1,3) -eye(1,3) -0.4488 2.4167;zeros(1,3) 0 1 0 0 -1 0 -0.0898 0.4833;zeros(1,3) 0 0 1 0 0 -1 0.2693 -1.4500;-0.1857 0 -0.1857 zeros(1,6) -eye(1,2);10 0 10 zeros(1,6) 0 -1;zeros(1,11)]
B = [-0.7306 -0.8299 -0.5319;0.4742 0.0304 1.3620;0.0517 -0.2759 0.7068;-0.2241 -0.1379 -0.3965;-0.0517 0.2759 -0.7068;zeros(3);zeros(3)]
tspan = 0:0.1:20;
x0 = [1 0 -1 10 11 6 zeros(1,5)];
size(x0)
opt = odeset('RelTol', 1e-6,'Mass',E);
[~,x] = ode15s(@ode,tspan,x0,opt);
end
function dxdt = ode(t,x)
global A B
dxdt = A*x + B*[exp(-t)*sin(t);0.2*sin(2*t);0.2*sin(3*t)]
end
Errors are-
Error using daeic12 (line 76)
This DAE appears to be of index greater than 1.
Error in ode15s (line 310)
[y,yp,f0,dfdy,nFE,nPD,Jfac] = daeic12(odeFcn,odeArgs,t,ICtype,Mt,y,yp0,f0,...
Error in comb_thesis (line 12)
[~,x] = ode15s(@ode,tspan,x0,opt);
I am getting output but still this kind of errors are showing up. Please Help!
  4 comentarios
Stephen23
Stephen23 el 8 de Abr. de 2021
"What about error that i am facing up?"
Check, double check, triple check your matrices! Perhaps write them in table or CSV file which you can import, just so that they can be written explicitly in a way that can be reviewed visually.
Check the behavior of the ODE you are trying to solve: is it suitable for the solver you have chosen?
Meenakshi Tripathi
Meenakshi Tripathi el 8 de Abr. de 2021
yes ode15s is suitable for this kind of odes.

Iniciar sesión para comentar.

Respuesta aceptada

Bjorn Gustavsson
Bjorn Gustavsson el 8 de Abr. de 2021
Check your mass-matrix E and make sure it looks exactly like you expect. The 3 off-diagonal 1s looks peculiar to me. Then you have to read up on the use of the mass-matrix in the documentation, there are rather strict constraints on what type of algebraic equations you can send in to the ODE-functions. Yours might be too complicated.
(
Also remove the globals, just define the ode-function like this instead:
function dxdt = ode(t,x,A,B)
dxdt = A*x + B*[exp(-t)*sin(t);0.2*sin(2*t);0.2*sin(3*t)];
end
and call it like this:
[~,x] = ode15s(@(t,x) ode(t,x,A,B),tspan,x0,opt);
)
HTH
  4 comentarios
Meenakshi Tripathi
Meenakshi Tripathi el 8 de Abr. de 2021
Editada: Meenakshi Tripathi el 8 de Abr. de 2021
Ok Thank you!!!
''See the documentation'' where i will find this?
when i solved same kind of problem taking 5 by 5 matrix then my result was showing up but when i am doing same for 11 by 11 matrix then i am getting error ''This DAE appears to be of index greater than 1.''
Now what can be done?
Bjorn Gustavsson
Bjorn Gustavsson el 9 de Abr. de 2021
Editada: Bjorn Gustavsson el 9 de Abr. de 2021
You might find your way forward from this link: Solve-Differential-Algebraic-Equations, and this:
When I've had to solve equations of motion in complicated conservative force-fields (where total particle energy is conserved) I'd switched to completely different ODE-integrating schemes (Boris-mover, etc). Since it is not perfectly clear to me what your DAE-system is in that sense I cannot give much better/more extensive advice than this.

Iniciar sesión para comentar.

Más respuestas (1)

Sr
Sr el 5 de En. de 2023
hello, I got the same problem. Have you solved this problem? Any information about this will be appreciated.

Categorías

Más información sobre Programming en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by