initil972
Messages postés5Date d'inscriptionmardi 3 mars 2009StatutMembreDernière intervention24 juin 2009
-
24 juin 2009 à 16:22
Bonjour,
Je cherche a résoudre un système de 6 équations du 1er ordre que j'ai définis a partir de la méthode de runge-kutta.
Voici le systeme:
---------
α1’= K2/J1*θ1- (K2/J1)* θ2 + (Cm-Cf1)/J1;
α2’= K2/J2* θ1 - (K2+K3)/J2* θ2 + (K3/J2)* θ3 - (Cf2/J2);
α3’ = K3/J3* θ1 - (-K3/J3)* θ2 - (Cf3+Cr)/J3;
θ1’= α1
θ2’= α2
θ3’= α3
---------
K1...K3, J1...J3, Cm,Cf1....Cf3 et Cr sont des constantes.(ne faite pas attention).
θ1,θ2,θ3 sont des variables que je recherche. Elles représentent en fait l'angle de position des arbres couplés a un moteur.
Je ne sais pas vraiment comment définir mon système d'équation dans matlab.
-------Mon fichier fun.m
function dy=fun(t,u)
u=zeros(3,1) %sans cette ligne ça m'affiche une erreur disant ke u1 est inconnu
dy=zeros(3,1);
dy(1) = K2/J1*u(1) - (K2/J1)*u(2) + (Cm-Cf1)/J1;
dy(2) = K2/J2*u(1) - (K2+K3)/J2*u(2) + (K3/J2)*u(3) - (Cf2/J2);
dy(3) = K3/J3*u(1) - (-K3/J3)*u(2) - (Cf3+Cr)/J3;
%ensuite comment définir les 3otre ligne: que α1 est la dérivé de θ1 ...etc
end
-------
------Mon prog (enfin ce ke j'ai commencé)
%Mes conditions initiales
y0=[0;0;0]
t0=0,tf=200;
options=odeset('RelTol',1e-4);
[t,y] = ode45(@fun,[t0,tf], y0,options);
plot(t,y(:,1),'b', t,y(:,2),'r', t,y(:,3),'g')
grid on
--------
Ma question: Comment faire pour écrire le système complet? Est-ce je procède de la bonne façon ? Je pensais pouvoir résoudre plus simplement avec une matrice de mon systeme, c pa plus simple ? Mais bon je ne c pa comment faire avec la matrice, je c ka l'ode propose une application "mass" mé bon.
voila ma matrice sinon :
B=[(Cm-Cf1)/J1;-Cf2/J2;-(Cf3+Cr)/J3;0;0;0]';
A= [0 0 0 K2/J1 K2/J1 0
0 0 0 K2/J2 -(K2+K3)/J2 K3/J2
0 0 0 K3/J3 -K3/J3 0
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0];
--on a donc A.y+B=y'