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