[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