Bonjour,

J'utilise 20-sim pour faire des simulations de systèmes mécaniques. Il y a une connectivité possible avec matlab. Pour celà, il faut régler un path dans matlab et la fonction !matlab -regserver. J'ai suivi la procédure et celà a fonctionné.

J'ai donc essayé un code basic pour tester la connectivité avec 20-sim. Voici le code testé :

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
variables
 real x;
 real y;
 
 
// at the start of the simulation
initialequations
 // create an empty array a
 doMatlab ('a = []; ');
 // create an variable
 
 doMatlab ('b=0; ');
 
 // during simulation
equations
 // calculate x
 x = sin (time);
 // send it to Matlab
 toMatlab (x,'x');
 // and add it to array a
 doMatlab ('a = [ a x ]; ');
 // in Matlab add 2 to x
 doMatlab ('b = x + 2;');
 // read matlab 'b' into 20-sim variable 'y'
 fromMatlab(y,'b');
 // at the end of the simulation
finalequations
 // plot the resulting array in Matlab
 doMatlab (' plot (a); ');
Conclusion :
J'obtiens bien le plot dans matlab. Par contre, les variables qui font suite à doMatlab ne se retrouvent pas dans le workspace. J'aurais voulu transferer de cette manière des variables 20-sim dans le workspace de matlab.

Question :
Est-ce que vous aurez une idée de pourquoi je n'obtiens pas mes variables dans le workspace ? Y a-t-il une manip spéciale à faire lorsqu'on utilise
!matlab -regserver pour activer le workspace ? Peut-être que vos expériences relatifs à de la communication d'un logiciel avec matlab peut m'aider à résoudre mon soucis.


Merci pour votre aide.