Clear Filters
Clear Filters

This DAE appears to be of index greater than 1 but det(M + lambda*dF/dx) isn't zero

3 views (last 30 days)
Hi everyone i'm trying to solve a DAE of the form M*y'(t) = F(y,t), with M a singular square matrix. Just for the context, my DAE comes from the equation of the dynamic response of a beam when the space derivatives are transformed into finite difference.
F is defined as follow : F(y,t) = A.y(t) - b(t) with A a square matrix non singular and b a vector. A and M are defined bellow :
A = zeros(9,9);
a = EI/(m*h);
A(1,:) = [h 0 -1 0 0 0 0 0 0];
A(2,:) = [1 0 0 -1 0 0 0 0 0];
A(3,:) = [0 h 0 0 -1 0 0 0 0];
A(4,:) = [0 a 0 0 0 -a 0 0 0];
A(5,:) = [0 0 1 h 0 0 0 0 0];
A(6,:) = [0 0 0 1 h 0 0 0 0];
A(7,:) = [0 0 0 0 1 h 0 0 0];
A(8,:) = [0 0 0 0 0 0 1 0 0];
A(9,:) = [0 0 0 0 0 a 0 0 -a];
M = zeros(9,9);
M(8,2) = 1;
M(9,7) = 1;
The function for the DAE system is :
function F = Vect4(t,y,w,P,m,A)
ligne = length(A);
% Création de b
b = zeros(ligne,1);
b(4) = -P/m;
b(9) = -P/m;
% Calcul de la DAE
F = A*y - b;
end
w isn'nt used because i simplified the equation by removing the cosine term in b(t).
And finally the output :
n = 2; % Number of nodes
ligne = 4 + 5*(n-1); % Nombre de lignes (Nombre d'équations)
w = 2*pi * 5; % Pulsation
P = 100;
tspan = [0 2];
y0 = zeros(14,1);
opt = odeset('Mass',M);
[t,y] = ode23t(@(t,y) Vect4(t,y,w,P,m,A), tspan, y0,opt);
But here comes the problem, i get the classical error :
Error using daeic12 (line 78)
This DAE appears to be of index greater than 1.
Error in ode23t (line 282)
[y,yp,f0,dfdy,nFE,nPD,Jfac] = daeic12(odeFcn,odeArgs,t,ICtype,Mt,y,yp0,f0,...
Error in Script_Dyna_vrai (line 114)
[t,y] = ode23t(@(t,y) Vect4(t,y,w,P,m,A), tspan, y0,opt);
I don't really understand because firstly there are only first derivatives. Secondly, i belive that the index is greater than 1 when the matrix
(M + ) is singular, which is not the case here for every lambda. I tried using other ODE solvers like ODE15i for example but the problem persists.
If someone has any clues, i would apreciate. Thank you very much.
  3 Comments
Marco
Marco on 11 Jun 2024
Ok, EI is equal to 5*10^5, m = 25*(0.12)^2/9.81, h = L/n with L = 2 and n = 2 so h = 1.
n is the number of nodes in the discretisation, but here i simplify the problem with only two nodes.
The PDE is :
With the boundary conditions :
at t = 0, every state variables are zeros.
When i do the finite difference : , it gives for all nodes except the last one (so i = 0,1 if there is only two nodes) :
for i = 0,1 and where design the j-eme derivative of V for the i-eme node
It results to the following matrix equation with A and M defined previously,and x = if n=2
are all equal to zero due to boundary conditions. is equal to zero too because = 0. Then these variabales which are null are not put into x(t) to get a non singular matrix.
Torsten
Torsten on 11 Jun 2024
This is your DAE system written out. There is no equation from which y(8) and y(9) could be deduced.
h*y(1) - y(3) = 0
y(1) - y(4) = 0
h*y(2) - y(5) = 0
a*y(2) - a*y(6) + P/m = 0
y(3) + h*y(4) = 0
y(4) + h*y(5) = 0
y(5) + h*y(6) = 0
dy2/dt = y(7)
dy7/dt = a*y(6) - a*y(9) + P/m

Sign in to comment.

Answers (1)

Marco
Marco on 11 Jun 2024
Thank you very much ! the error was quite "easy" but by looking again and again and again on the problem i lost my mind and got confused. Thank you infinitely.

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!