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-valorSimulationCommand
.
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ón | Función sim | Comandos 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 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 | 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 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 |
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 | 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:
| Use la función 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.
| 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.
|
Tiempo de espera de la simulación | Especificar una cantidad máxima de tiempo para permitir que se ejecute la función | 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:
| Los errores se registran en Diagnostic Viewer. |
Solicitar estado de la simulación | No se admite. La ejecución de la función | 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 sim | Opciones 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
Utilice argumentos nombre-valor para configurar opciones adicionales, como si debe:
|
out = sim("ModelName",Name=Value); | Utilice argumentos nombre-valor para configurar opciones de simulación, como:
|
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 paramStruct.StopTime = "20"; |
out = sim("ModelName",configSet); | Especifique los valores de los parámetros de configuración del modelo utilizando un objeto |
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ón | Acción equivalente de la interfaz de usuario | Acceso 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 SimulationStatus | Descripción |
---|---|
stopped | Simulación detenida. |
initializing | Fase de inicialización en ejecución. |
running | Fase de ejecución en curso. |
paused | Pausa en fase de ejecución. |
compiled | Modelo compilado. |
updating | Actualización de diagrama en curso. |
terminating | Fase de finalización en ejecución. |
external | Simulación con Simulink Coder™. |