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.

Ejecutar simulaciones de forma programática

Para ejecutar una simulación de forma programática, puede escribir scripts o generar comandos en la ventana de comandos de MATLAB®:

  • Usando la función sim

  • Usando la función set_param para generar comandos de simulación con el argumento nombre-valor SimulationCommand.

Cada una de estas opciones proporciona diferentes prestaciones para configurar el comportamiento de la simulación y para interactuar con la simulación durante su ejecución.

Las simulaciones que se ejecutan de forma programática usando la función sim o la función set_param se ejecutan de una en una, en serie. Para ejecutar simulaciones paralelas o por lotes, use la función parsim o batchsim.

Decidir cómo ejecutar simulaciones programáticas

En general, la función sim admite la mayoría de los requisitos para ejecutar y crear scripts de simulaciones programáticas en serie, donde no se desea interactuar con el modelo durante la simulación.

Si desea interactuar con un modelo de forma programática durante la simulación, puede utilizar la función set_param para generar comandos de simulación. Los comandos de simulación se admiten en las simulaciones que se inician haciendo clic en Run o generando el comando de simulación start usando la función set_param. Generar comandos de simulación puede ser conveniente en los flujos de trabajo que implican alternar entre la ventana de comandos de MATLAB y el editor de Simulink®.

El reinicio rápido se admite en simulaciones programáticas que se ejecutan generando comandos de simulación y usando la función sim. Independientemente de cómo active el reinicio rápido, el modelo permanece inicializado en reinicio rápido al final de la simulación y puede ejecutar la siguiente simulación haciendo clic en Run, generando un comando de simulación o llamando a la función sim.

La tabla resume las diferencias entre las simulaciones que se ejecutan usando la función sim y la función set_param.

Acción u opciónFunción simComandos de simulación set_param
Configurar el modelo para simulación

Especifique valores para los parámetros de configuración del modelo, parámetros de bloque y variables que se van a usar en la simulación utilizando argumentos de entrada para la función sim.

Los valores que especifique se aplican durante la simulación y se revierten después de que finalice la simulación. Configurar simulaciones utilizando argumentos de entrada para la función sim no marca el modelo como modificado.

Especifique valores para los parámetros de configuración del modelo y los parámetros de bloque de forma programática utilizando la función set_param.

También puede configurar la simulación utilizando herramientas como Property Inspector, el cuadro de diálogo Configuration Parameters y el cuadro de diálogo Block Parameters.

Configurar el modelo para este tipo de simulación marca el modelo como modificado.

Iniciar la simulación

Llame a la función sim.

set_param(mdl,"SimulationCommand","Start")

En la barra de herramientas de Simulink, haga clic en Run.

Detener la simulación

En la ventana de comandos de MATLAB, pulse Ctrl+C.

set_param(mdl,"SimulationCommand","Stop")

En la barra de herramientas de Simulink, haga clic en Stop.

Pausar la simulación

No se admite.

set_param(mdl,"SimulationCommand","Pause")

En la barra de herramientas de Simulink, haga clic en Pause.

Reanudar la simulación

No se aplica porque no se admite pausar la simulación.

set_param(mdl,"SimulationCommand","Continue")

En la barra de herramientas de Simulink, haga clic en Continue.

Generar un comando en la ventana de comandos de MATLAB

No se admite.

La ejecución de la función sim bloquea el hilo de MATLAB.

Admitido.

Bloques de visualización como los bloques Scope

Las visualizaciones se actualizan solamente durante las simulaciones en modo Normal y Accelerator.

Las visualizaciones se actualizan durante las simulaciones en modo Normal, Accelerator y Rapid Accelerator.

Etiquetas de valor del puerto

No se admite.

Las etiquetas de valor del puerto muestran valores de señal en el diagrama de bloques durante las simulaciones en modo Normal, Accelerator y Rapid Accelerator.

Avanzar y retroceder en la simulación

No se admite.

Se admite en las simulaciones en modo Normal y Accelerator.

En la barra de herramientas de Simulink, en la pestaña Simulation, haga clic en Step Forward o Step Back.

Puntos de interrupción de señales

No se admite.

Se admite en simulaciones en modo Normal para pausar dentro de una unidad de tiempo.

Se admite en simulaciones en modo Normal y Accelerator configuradas para pausar solo entre unidades de tiempo.

Pausar en o después de una unidad de tiempo especificada

No se admite.

Se admite en las simulaciones en modo Normal y Accelerator.
Modo Fast Restart

Para ejecutar simulaciones utilizando el reinicio rápido:

  • Especifique el argumento nombre-valor UseFastRestart como "on" cuando especifique el primer argumento de entrada como un objeto SimulationInput o más.

    out = sim(simIn,"UseFastRestart","on");
  • Especifique el argumento nombre-valor FastRestart como "on" cuando especifique el primer argumento de entrada como una cadena o un vector de caracteres que define el nombre del modelo. Después de la simulación, el modelo permanece inicializado en reinicio rápido.

    out = sim("MyModel","FastRestart","on");

Use la función set_param para activar el reinicio rápido.

set_param(mdl,"FastRestart","on")

En la barra de herramientas de Simulink, en la pestaña Simulation, en la sección Simulate, haga clic en Fast Restart.

Velocidad de simulación

Configure los parámetros de velocidad de simulación del modelo.

  • EnablePacing: activa o desactiva la velocidad de simulación.

  • PacingRate: especifica la tasa aproximada de la velocidad como una relación entre el tiempo de simulación y el tiempo de reloj de pared.

Configure opciones de velocidad de simulación utilizando el cuadro de diálogo Simulation Pacing Options o especificando los parámetros de velocidad de simulación de forma programática.

  • EnablePacing: activa o desactiva la velocidad de simulación.

  • PacingRate: especifica la tasa aproximada de la velocidad como una relación entre el tiempo de simulación y el tiempo de reloj de pared.

Tiempo de espera de la simulación

Especificar una cantidad máxima de tiempo para permitir que se ejecute la función sim utilizando el argumento nombre-valor Timeout.

No se admite.

Detenga la simulación en cualquier momento generando un comando de simulación o haciendo clic en Stop.

Tratamiento de errores

Especifique si se van a capturar o no errores en la salida de simulación o a generar errores como excepciones de MATLAB:

  • Utilice el argumento nombre-valor StopOnError cuando especifique el primer argumento de entrada como uno o más objetos SimulationInput.

  • Utilice el argumento nombre-valor CaptureErrors cuando especifique el primer argumento de entrada como una cadena o un vector de caracteres que define el nombre del modelo.

Los errores se registran en Diagnostic Viewer.

Solicitar estado de la simulación

No se admite.

La ejecución de la función sim bloquea el hilo de MATLAB.

get_param(mdl,"SimulationStatus")
Ejecutar la simulación en la sesión de MATLAB iniciada utilizando las opciones -nodesktop o -nodisplay para matlab (macOS) o matlab (Linux).Admitido.No se admite.

Ejecutar simulaciones usando la función sim

La función sim tiene varias sintaxis que puede usar para ejecutar y configurar simulaciones de forma programática. Si desea simular el modelo utilizando los valores actuales de todos los parámetros de configuración del modelo, los valores de los parámetros de bloque, etc., utilice la sintaxis más básica.

out = sim("ModelName");

Esta sintaxis devuelve un solo objeto Simulink.SimulationOutput que contiene todos los resultados de la simulación excepto cuando el parámetro Single simulation output está desactivado. Para garantizar que pueda escribir código congruente para todas las simulaciones que ejecuta de forma programática, active el parámetro Single simulation output.

Si desea configurar la simulación; por ejemplo, especificando valores de parámetros de configuración del modelo, valores de parámetros de bloque y valores de variables, use un objeto Simulink.SimulationInput para especificar la configuración de la simulación.

out = sim(simIn);

La tabla resume las opciones que puede configurar y utiliza casos de uso para cada sintaxis.

Sintaxis de simOpciones de configuración de la simulación
out = sim("ModelName");

Simule el modelo utilizando los valores actuales de los parámetros de configuración, parámetros de bloque y variables.

out = sim(simIn);

Especifique la configuración de la simulación utilizando un objeto Simulink.SimulationInput con valores de anulación para:

  • Parámetros de configuración del modelo

  • Variables

  • Entradas externas

  • Estado inicial

  • Parámetros de bloque

Utilice argumentos nombre-valor para configurar opciones adicionales, como si debe:

  • Ejecutar simulaciones utilizando el reinicio rápido.

  • Capturar errores en la salida de la simulación o generar excepciones de MATLAB.

  • Abrir Simulation Manager.

out = sim("ModelName",Name=Value);

Utilice argumentos nombre-valor para configurar opciones de simulación, como:

  • Parámetros de configuración del modelo

  • Opciones para marcar la velocidad de simulación

  • Simular o no utilizando el reinicio rápido

  • Capturar o no errores en la salida de simulación o generar excepciones de MATLAB

out = sim("ModelName",paramStruct);

Especifique los valores de los parámetros de configuración del modelo y las opciones de simulación utilizando una estructura con nombres de campo que unen cada nombre de parámetro con los valores del campo que especifican el valor que se debe usar para cada parámetro.

Por ejemplo, para especificar el valor del parámetro StopTime como 20, cree una estructura con un campo denominado StopTime que tenga un valor de "20".

paramStruct.StopTime = "20";
out = sim("ModelName",configSet);

Especifique los valores de los parámetros de configuración del modelo utilizando un objeto Simulink.ConfigSet.

Ejecutar y controlar simulaciones generando comandos de simulación

Cuando inicia una simulación desde una interfaz de usuario, como el editor de Simulink, o utilizando la función set_param para generar un comando de simulación, puede:

  • Controlar e interactuar con la simulación utilizando la función set_param para generar comandos de simulación.

  • Usar la función get_param para solicitar el estado de la simulación.

Cuando genera comandos de simulación durante una simulación, el software no ejecuta el comando inmediatamente. El software genera el comando solo después de que los procesos que se están ejecutando actualmente que no pueden interrumpirse hayan finalizado. Por ejemplo, si genera un comando de simulación mientras el solver está determinando la siguiente unidad de tiempo, el software ejecuta el comando de simulación solo después de que el solver finalice el tiempo de propagación.

No todas las acciones disponibles en el editor de Simulink tienen un comando de simulación correspondiente. La tabla describe cada comando de simulación, las acciones correspondientes de la interfaz de usuario y los accesos directos.

Comando de simulación DescripciónAcción equivalente de la interfaz de usuarioAcceso directo
set_param(mdl,"SimulationCommand","start");

Inicia la simulación.

Haga clic en Run.

Ctrl+T o F5

set_param(mdl,"SimulationCommand","stop");

Detiene la simulación.

Haga clic en Stop.

Ctrl+Shift+T

set_param(mdl,"SimulationCommand","pause");

Pausa la simulación.

Haga clic en Pause.

Ctrl+T o F5

set_param(mdl,"SimulationCommand","continue");

Reanuda la simulación pausada.

Haga clic en Continue.

Ctrl+T o F5

set_param(mdl,"SimulationCommand","update");

Actualiza el diagrama.

En la barra de herramientas de Simulink, en la sección Prepare, haga clic en Update Model.Ctrl+D
set_param(mdl,"SimulationCommand","writedatalogs");

Escribe variables de registro de datos en el área de trabajo.

No se admite.No se admite.

Esta tabla describe el estado de la simulación que se corresponde con cada valor devuelto para el argumento nombre-valor SimulationStatus.

Valor SimulationStatusDescripción
stoppedSimulación detenida.
initializingFase de inicialización en ejecución.
runningFase de ejecución en curso.
pausedPausa en fase de ejecución.
compiledModelo compilado.
updatingActualización de diagrama en curso.
terminatingFase de finalización en ejecución.
externalSimulación con Simulink Coder™.

Consulte también

Funciones

Objetos

Temas relacionados