Hauptinhalt

Die Übersetzung dieser Seite ist veraltet. Klicken Sie hier, um die neueste Version auf Englisch zu sehen.

Erstellen von Diagrammen mithilfe eines MATLAB-Skripts

Dieses Beispiel zeigt, wie Stateflow®-API-Befehle in eine MATLAB®-Funktion oder ein Skript eingebunden werden. Durch die Erstellung eines Skripts mit API-Befehlen können Sie wiederholte Schritte bei der Diagrammerstellung vermeiden und dasselbe Modell mit einem einzigen Befehl neu erstellen. Weitere Informationen finden Sie unter Overview of the Stateflow API.

Ausführen der MATLAB-Funktion

Die Funktion makeMyModel, die unten auf dieser Seite definiert ist, erzeugt ein „Basis“-Stateflow-Diagramm, das Sie als Vorlage für Ihre Anwendungen wiederverwenden können.

ch = makeMyModel;
view(ch)

Stateflow chart with a hierarchy of states. The outer state is called A. It contains two inner states called A1 and A2.

Funktion zur Erstellung eines Basisdiagramms

Diese Funktion erstellt ein Stateflow-Diagramm und gibt das entsprechende Stateflow.Chart-Objekt zurück.

function ch = makeMyModel

Erstellen Sie ein Modell und greifen Sie auf das neue Stateflow.Chart-Objekt zu.

    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");

Erstellen Sie im Diagramm den Zustand A.

    sA = Stateflow.State(ch);
    sA.Name = "A";
    sA.Position = [50 50 310 200];

Erstellen Sie den Zustand A1 innerhalb des Zustands A.

    sA1 = Stateflow.State(ch);
    sA1.Name = "A1";
    sA1.Position = [80 120 90 60];

Erstellen Sie den Zustand A2 innerhalb des Zustands A.

    sA2 = Stateflow.State(ch);
    sA2.Name = "A2";
    sA2.Position = [240 120 90 60];

Erstellen Sie einen Übergang von A1 zu A2.

    tA1A2 = Stateflow.Transition(ch);
    tA1A2.Source = sA1;
    tA1A2.Destination = sA2;
    tA1A2.SourceOClock = 3;
    tA1A2.DestinationOClock = 9;

Fügen Sie den Standardübergang zu Zustand A hinzu.

    dtA = Stateflow.Transition(ch);
    dtA.Destination = sA;
    dtA.DestinationOClock = 0;
    dtA.SourceEndPoint = dtA.DestinationEndpoint-[0 30];
    dtA.MidPoint = dtA.DestinationEndpoint-[0 15];

Fügen Sie den Standardübergang zu Zustand A1 hinzu.

    dtA1 = Stateflow.Transition(ch);
    dtA1.Destination = sA1;
    dtA1.DestinationOClock = 0;
    dtA1.SourceEndPoint = dtA1.DestinationEndpoint-[0 30];
    dtA1.MidPoint = dtA1.DestinationEndpoint-[0 15];
end

Siehe auch

Funktionen

Objekte

Themen