Insérer des conditions initiales à des blocs-fonction simulink

Fermé
ezor Messages postés 176 Date d'inscription dimanche 1 mars 2009 Statut Membre Dernière intervention 27 octobre 2016 - 27 oct. 2016 à 14:30
Bonjour à tous,

Dans le cadre d'un projet avec Matlab , je cherche à utiliser des fonctions que j'ai moi même codées puis les insérer dans des blocs simulink.
Pour cela, il faudrait que je puisse faire des blocs avec 'feddback', c'est à dire que la sortie reboucle sur l'entrée.

Voici, en simplifié, ce que je veux faire
function out = func(cmd,in)

if in == 0 && cmd == 1
    out = 1;
elseif in == 1 && cmd == 0
    out = 0;
else
    disp('error')
end

avec bien sur un bloc jouant le rôle de retard (une sorte de bascule D, ou 'memory') dans la boucle de retour, de sorte que in(t)=out(t-1).

Malheureusement, je ne peux pas compiler tout ça, car la variable 'out' doit être initialisée, ce que je ne peux évidement pas faire directement dans la fonction, sinon, elle se réinitialise à chaque pas.
Savez vous comment je peux spécifier séparément la valeur de le sortie 'out' au démarrage de la simulation t=0, de sorte que je n'ai plus ce message d'erreur?

Output argument 'out' is not assigned on some execution paths.

D'avance merci pour vos réponses/aide/conseils,
A voir également: