[Users-fr] aide pour l'appel à une fonction dans un système dassl

KOCHER Cecile (AREVA) cecile.kocher at areva.com
Mer 17 Oct 13:54:00 CEST 2012


Bonjour,

 

J'utilise Scilab depuis très peu de temps et je rencontre un problème pour utiliser une fonction définie précédemment dans un système d'équations.

 

Voici le cas :

Au début du modèle je définis la fonction Q_cyl2(t) par interpolation linéaire à partir de quelques valeurs :

 

 temps = [0 t1 t2 t3];
Q_cyl = [q1 q2 q2 0];
Q_cyl2=interpln ([temps;Q_cyl],[0:dt:t3]);
plot2d((0:t3),Q_cyl2)

 

à cette étape j'obtiens bien la fonction voulue (figure ci-contre) 

 

 

 

 

 

Un peu plus loin dans le modèle, je commence le système :

 
deff('[r,ires]=P0res(t,y,yd)',[
r(1) = .y(1) ....
r(2)=
....
 r(16)=y(16)-Q_cyl2(t)
.....
 
'ires=0']);
t=[0:dt:t3];
 
y=dassl([y0,yd0],t0,t,P0res);
 

Plusieurs problèmes se posent :

 

- j'ai d'abord l'erreur « index invalide » apparement à cause de la valeur en 0. Je l'ai contourné en intégrant « if (t<>0) » 

dans l'expression de r(16).

- le fait d'utiliser « t » en argument de la fonction ne marche pas non plus (« index invalide »).

J'ai donc introduit un autre vecteur i=[0:dt:t3] donc totalement identique à t. 

l'expression finale est donc : «  'if(i<>0);r(16)=y(16)-Q_cyl2(i);else;r(16)=y(16)-2.613;end'  »

 

 

Là le calcul tourne, mais quand j'affiche la grandeur y(16) , je ne récupère pas la bonne fonction, 

mais seulement la valeur initiale quelque soit t. (figure ci-contre)

 

Pourriez-vous m'éclairer sur ce problème ? N'hésitez pas bien sûr si il manque des précisions. 

 

Merci d'avance. 

Cordialement,

 

Cécile KOCHER

AREVA NP Lyon

 

-------------- section suivante --------------
Une pièce jointe HTML a été nettoyée...
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20121017/214f50f6/attachment.htm>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: image007.jpg
Type: image/jpeg
Taille: 3737 octets
Desc: image007.jpg
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20121017/214f50f6/attachment.jpg>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: image006.png
Type: image/png
Taille: 112002 octets
Desc: image006.png
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20121017/214f50f6/attachment.png>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: image005.jpg
Type: image/jpeg
Taille: 2884 octets
Desc: image005.jpg
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20121017/214f50f6/attachment-0001.jpg>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: image003.png
Type: image/png
Taille: 86444 octets
Desc: image003.png
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20121017/214f50f6/attachment-0001.png>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: image004.jpg
Type: image/jpeg
Taille: 2884 octets
Desc: image004.jpg
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20121017/214f50f6/attachment-0002.jpg>
-------------- section suivante --------------
Une pièce jointe autre que texte a été nettoyée...
Nom: image005.jpg
Type: image/jpeg
Taille: 3737 octets
Desc: image005.jpg
URL: <https://lists.scilab.org/pipermail/users-fr/attachments/20121017/214f50f6/attachment-0003.jpg>


Plus d'informations sur la liste de diffusion users-fr