Bonjour à tous,
Voilà, j'ai un modèle Simulink qui me permet de rejouer des données acquises par une carte National Instrument (utilisation de look-up table).
J'ai besoin de faire tourner ce modèle en boucle depuis une fonction matlab, sachant que cette fonction incrémente une des valeurs du modèle en fonction de la valeur d'une de ses sorties (je sais c'est compliqué).
Pour la variable qui doit être incrémentée, j'utilise un bloc 'constant'.
Mon problème est que la variable ne semble pas s'incrémenter...
Voici mon code :
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
30
31
32 function [crit,reg] = Calibration(pmin,pas,pmax) size_crit = (pmin + pmax)/pas; crit = zeros(size_crit,1); j = 1; for i = pmin:pas:pmax Consigne_pression(i); % Entrée consigne pause(60) % On laisse le temps à la pression pour se stabiliser Script(i); % chargement des constantes acquisition; % acquisition de données sur 1500 points load vitesse.mat sim('modele_test_reglage'); tmp = find(yout == 1); while (isempty(tmp) ~= 1) crit(j) = crit(j) + 1; sim('modele_test_reglage'); tmp = find(yout == 1); end % end while display(crit(j)) j = j + 1; crit(j) = crit(j-1); end % end for reg = polyfit(i,crit,6); % renvoie les coefficients de la régression polynômiale z = polyval(reg,i); plot(i,crit,'o',i,z) % trace le résultat grid end % End function calibration.m
Partager