Contenido principal

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 volver a crear el mismo modelo con un solo comando. Para obtener más información, consulte Visión general de la API de Stateflow.

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