Bonjour,

Voilà, j'ai un souci avec l'utilisation du bloc Sci_function_m sous Xcos. Mes fonctions Scilab sont toutes définies en .sci, et j'obtiens le code d'erreur suivant : La variable retournée par la fonction Scilab passée en argument n'est pas valide.
J'ai fait quelques tests, notamment en décomposant mes vecteurs en composantes (scalaires donc) et je n'ai plus d'erreur. Mais j'ai une usine à gaz en schéma bloc! Le problème doit venir de mon bloc Xcos car quand j'appelle ma fonction dans un autre script, celle-ci s’exécute correctement.
C'est bizarre car Xcos est sensé gérer des matrices, sinon l'utilisation de schéma blocs n'aurait aucune utilité... Je vous mets quand même un exemple de fonction que j'utilise.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
function [dx]= chassis(x,delta,Fx,Fy)
global L1 L2 m Jz x dx delta Fx Fy
 
x=zeros(1,6);
dx=zeros(1,6);
 
x = u1;
delta = u2;
Fx = u3;
Fy = u4;
 
vx = x(1);
vy = x(2);
wz = x(3);
vxDot = x(4);
vyDot = x(5);
wzDot = x(6);
 
//Calculs...
 
dx(1) = vxDot;
dx(2) = vyDot;
dx(3) = wzDot;
dx(4) = (vxDot - vy.*wz - x(4));
dx(5) = (vyDot + vx.*wz - x(5));
dx(6) = (wzDot - x(6));
 
y1 = dx;
endfunction
Pour le paramétrage du bloc, j'ai donc en ports sizes :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
Input [1,6;1,1;1,2;1,4]
Output [1,6]
(J'ai laissé tout le reste vide)
Ensuite (2eme fenêtre) j'ai défini la sortie comme : y1=chassis(u1,u2,u3,u4)
J'ai ensuite laissé vide, à part la dernière fenêtre : y1=[u1,u2,u3,u4]

Je ne suis pas encore très familier avec l'utilisation de Scilab, je me doute que le problème vient du fait que mon bloc est sûrement mal défini...
Qu'en pensez vous ?