Main Content

La traducción de esta página aún no se ha actualizado a la versión más reciente. Haga clic aquí para ver la última versión en inglés.

Crear gráficos utilizando un script de MATLAB

Este ejemplo muestra cómo incluir comandos de API de Stateflow® en una función o script de MATLAB®. Crear un script de comandos de API permite evitar pasos repetitivos en la creación del gráfico y recrear el mismo modelo con un solo comando. Para obtener más información, consulte Overview of the Stateflow API.

Ejecutar la función de MATLAB

La función makeMyModel, que está definida en la parte inferior de esta página, produce un gráfico de Stateflow "básico" que puede reutilizar como plantilla en sus aplicaciones.

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.

Crear una función de gráfico básico

Esta función crea un gráfico de Stateflow y devuelve el objeto Stateflow.Chart correspondiente.

function ch = makeMyModel

Cree el modelo y acceda al nuevo objeto 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");

Cree el estado A en el gráfico.

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

Cree el estado A1 dentro del estado A.

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

Cree el estado A2 dentro del estado A.

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

Cree la transición de A1 a A2.

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

Añada la transición predeterminada al estado A.

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

Añada la transición predeterminada al estado A1.

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

Consulte también

Funciones

Objetos

Temas relacionados