Création de diagrammes au moyen d’un script MATLAB
Cet exemple indique comment intégrer des commandes API Stateflow® à une fonction ou à un script MATLAB®. La création d'un script de commandes API vous permet d'éviter les étapes répétitives de création de diagrammes et ainsi de recréer le même modèle avec une commande unique. Pour plus d’informations, veuillez consulter Overview of the Stateflow API.
Exécution de la fonction MATLAB
La fonction makeMyModel définie au bas de cette page génère un diagramme Stateflow « de base » que vous pouvez réutiliser en tant que modèle pour vos applications.
ch = makeMyModel; view(ch)

Création d’une fonction de diagramme de base
Cette fonction crée un diagramme Stateflow et renvoie l’objet Stateflow.Chart correspondant.
function ch = makeMyModelCréez un modèle et accédez à un nouvel objet Stateflow.Chart.
rt = sfroot;
prev_machines = find(rt,"-isa","Stateflow.Machine");
sfnew;
curr_machines = find(rt,"-isa","Stateflow.Machine");
m = setdiff(curr_machines,prev_machines);
ch = find(m,"-isa","Stateflow.Chart");Créez l’état A dans un diagramme.
sA = Stateflow.State(ch);
sA.Name = "A";
sA.Position = [50 50 310 200];Créez l’état A1 au sein de l’état A.
sA1 = Stateflow.State(ch);
sA1.Name = "A1";
sA1.Position = [80 120 90 60];Créez l’état A2 au sein de l’état A.
sA2 = Stateflow.State(ch);
sA2.Name = "A2";
sA2.Position = [240 120 90 60];Créez une transition de A1 vers A2.
tA1A2 = Stateflow.Transition(ch);
tA1A2.Source = sA1;
tA1A2.Destination = sA2;
tA1A2.SourceOClock = 3;
tA1A2.DestinationOClock = 9; Ajoutez une transition par défaut à l’état A.
dtA = Stateflow.Transition(ch);
dtA.Destination = sA;
dtA.DestinationOClock = 0;
dtA.SourceEndPoint = dtA.DestinationEndpoint-[0 30];
dtA.MidPoint = dtA.DestinationEndpoint-[0 15];Ajoutez une transition par défaut à l’état A1.
dtA1 = Stateflow.Transition(ch);
dtA1.Destination = sA1;
dtA1.DestinationOClock = 0;
dtA1.SourceEndPoint = dtA1.DestinationEndpoint-[0 30];
dtA1.MidPoint = dtA1.DestinationEndpoint-[0 15];
end