Solver Configuration
Entorno de red física y configuración de solver
Bibliotecas:
Simscape /
Utilities
Descripción
Cada red física representada por un diagrama de bloque de Simscape™ conectado requiere información de la configuración de solver para realizar la simulación. El bloque Solver Configuration especifica los parámetros de solver que el modelo necesita antes de poder comenzar la simulación.
Cada diagrama de bloque de Simscape distinto en términos de estructura topológica requiere exactamente un bloque Solver Configuration conectado a él.
Ejemplos
Puertos
Transferencia
Port_1 — Puerto de conexión
puerto de transferencia no tipificado
Puerto de conexión de transferencia. Este puerto no está tipificado. Puede conectarlo en cualquier lugar del circuito de una red física creando un punto de bifurcación en una línea de transferencia entre puertos de transferencia de cualquier tipo. El bloque proporciona la configuración de solver para toda la red física, independientemente del tipo de conexión.
Parámetros
Equation formulation — Especifica cómo el solver trata las variables sinusoidales
Time
(predeterminado) | Frequency and time
Especifica cómo el solver trata las variables sinusoidales.
Use el valor Frequency and time
para acelerar la simulación de sistemas con una frecuencia nominal única. Para obtener más información, consulte Frequency and Time Simulation Mode.
Index reduction method — Elija el método de reducción del índice para resolver las DAE no lineales de alto índice
Derivative replacement
(predeterminado) | Projection
| None
Elija el método de reducción del índice no lineal más adecuado para la red conectada al bloque Solver Configuration:
Derivative replacement
: en este método, partes de la DAE están diferenciadas analíticamente y añadidas al sistema original. Para cada ecuación adicional, se selecciona una derivada que se sustituye por una nueva variable algebraica denominada derivada ficticia. Para obtener más información, consulte https://epubs.siam.org/doi/abs/10.1137/0914043?journalCode=sjoce3. Esta opción se corresponde con el método de reducción del índice no lineal utilizado en versiones anteriores. Se recomienda comenzar con este método.Projection
: utilice esta opción si el métodoDerivative replacement
falla debido a problemas con la selección de estado dinámico.None
: si el modelo no contiene DAE no lineales de alto índice, utilice esta opción para evitar por completo la reducción del índice no lineal y eliminar la sobrecarga de análisis.
Start simulation from steady state — Seleccione si desea iniciar la simulación desde el estado inicial o desde el estado estacionario
desactivado (predeterminado) | activado
De forma predeterminada, cuando se desactiva esta casilla, la simulación se inicia desde el estado inicial obtenido a partir del cálculo de condiciones iniciales.
Cuando selecciona esta casilla, el solver intenta encontrar el estado estacionario que se obtendría si las entradas del sistema se mantuvieran constantes durante un tiempo lo suficientemente prolongado. Para obtener más información, consulte Initial Conditions Computation. En ese caso, la simulación se inicia desde este estado estacionario.
Para modelos compatibles con la formulación de ecuaciones de frecuencia y tiempo, cuando selecciona esta casilla, el solver intenta realizar una inicialización sinusoidal de estado estacionario. Es decir, la inicialización se lleva a cabo utilizando ecuaciones de tiempo y frecuencia y, luego, la simulación continúa utilizando la formulación de ecuaciones real y otras opciones seleccionadas en el bloque Solver Configuration. Para obtener más información, consulte Frequency and Time Simulation Mode.
Nota
Al utilizar la opción Initial state del panel Data Import/Export del cuadro de diálogo Configuration Parameters, se anula la opción Start simulation from steady state.
Consistency tolerance — Esquema de tolerancia basada en estados utilizado para el cálculo de condiciones iniciales y de inicialización transitoria
Model AbsTol and RelTol
(predeterminado) | Local tolerance settings
Este parámetro afecta al solver no lineal utilizado para el cálculo de condiciones iniciales y para la inicialización transitoria. Seleccione la fuente de tolerancia basada en estados:
Model AbsTol and RelTol
: utiliza la configuración de tolerancia de modelo, especificada como parámetros Absolute tolerance y Relative tolerance en el panel Solver del cuadro de diálogo Configuration Parameters.Local tolerance settings
: reemplaza la configuración de tolerancia de modelo por valores locales. Al seleccionar esta opción, los parámetros Absolute tolerance y Relative tolerance aparecen en el cuadro de diálogo del bloque Solver Configuration.
Independientemente de si utiliza las tolerancias de modelo o la configuración de tolerancia local, el parámetro Tolerance factor proporciona un factor de escalado para estos valores. El valor resultante determina la precisión con la que deben cumplirse las restricciones algebraicas al inicio de la simulación y después de cada evento discreto (por ejemplo, una discontinuidad que surge al abrir una válvula, con un tope rígido, etc.).
Absolute tolerance — Tolerancia absoluta local
0.001
(predeterminado) | escalar positivo
Especifique un valor local que desee utilizar para el cálculo de condiciones iniciales y para la inicialización transitoria en lugar de utilizar el parámetro Absolute tolerance del panel Solver del cuadro de diálogo Configuration Parameters.
Dependencias
Para activar este parámetro, establezca Consistency tolerance en Local tolerance settings
.
Relative tolerance — Tolerancia relativa local
0.001
(predeterminado) | escalar positivo
Especifique un valor local que desee utilizar para el cálculo de condiciones iniciales y para la inicialización transitoria en lugar de utilizar el parámetro Relative tolerance del panel Solver del cuadro de diálogo Configuration Parameters.
Dependencias
Para activar este parámetro, establezca Consistency tolerance en Local tolerance settings
.
Tolerance factor — Factor de escalado utilizado para tolerancias absolutas y relativas
0.001
(predeterminado) | escalar en el rango [0,1]
Este parámetro proporciona el factor de escalado para las tolerancias absolutas y relativas basadas en estado, independientemente de si utilizan las tolerancias de modelo o la configuración de tolerancia local. Reduzca el valor del parámetro (es decir, aumente la tolerancia) para obtener una simulación de tiempo más fiable. Aumente el valor del parámetro (es decir, reduzca la tolerancia) si la resolución para las condiciones iniciales no ha podido converger o para reducir el tiempo de cálculo.
Use local solver — Use un solver local basado en muestreo para la red física en el modelo
desactivado (predeterminado) | activado
Permite utilizar un solver local basado en muestreo con un tiempo de muestreo especificado por el parámetro Sample time. En la simulación basada en muestreo, todos los estados de red física, que, de lo contrario, son continuos, se representan como estados discretos para Simulink®. El solver actualiza los estados una vez por unidad de tiempo. Esta opción es especialmente útil para código generado o simulaciones de hardware-in-the-loop (HIL).
Nota
Si utiliza un solver local, no se recomienda usar simultáneamente herramientas de linealización de Simulink o Simulink Control Design™.
Solver type — Tipo de solver utilizado por el solver local para actualizar los estados
Backward Euler
(predeterminado) | Trapezoidal Rule
| Partitioning
Seleccione el tipo de solver utilizado para actualizar los estados:
Backward Euler
: tiende a amortiguar las oscilaciones, pero es más estable, especialmente si aumenta la unidad de tiempo.Trapezoidal Rule
: captura las oscilaciones mejor queBackward Euler
, pero es menos estable.Partitioning
: permite aumentar la velocidad de simulación en tiempo real realizando particiones del sistema completo de ecuaciones correspondiente a una red de Simscape para convertirlo en una cascada de sistemas de ecuaciones más pequeños. No todas las redes admiten particiones. No obstante, cuando un sistema admite particiones, este solver proporciona un aumento significativo de la velocidad de simulación en tiempo real. Para obtener más información, consulte Understanding How the Partitioning Solver Works y Increase Simulation Speed Using the Partitioning Solver.
Independientemente del solver local que elija, el método Backward Euler siempre se aplica:
Inmediatamente al principio de la simulación.
Inmediatamente después de un cambio instantáneo, cuando el bloque correspondiente sufre un cambio discreto interno. Este tipo de cambios incluyen el acoplamiento y desacoplamiento de embragues, la apertura y el cierre de actuadores de válvula y la conmutación del bloque PS Asynchronous Sample & Hold.
Dependencias
Para activar este parámetro, seleccione la casilla Use local solver.
Sample time — Tiempo de muestreo para el solver local
0.001
(predeterminado) | escalar positivo
Especifique el tiempo de muestreo del solver local, en segundos. El solver actualiza los estados una vez por unidad de tiempo.
Dependencias
Para activar este parámetro, seleccione la casilla Use local solver.
Partition method — Seleccione si desea priorizar la velocidad o la solidez al utilizar el solver local Partitioning
Robust simulation
(predeterminado) | Fast simulation
Seleccione si desea priorizar la velocidad o la solidez al utilizar el solver local Partitioning:
Fast simulation
: mejora el rendimiento de la simulación resolviendo la mayoría de las ecuaciones diferenciales mediante el método de Euler explícito.Robust simulation
: aumenta la solidez de la simulación resolviendo más ecuaciones mediante el método de Euler implícito.
Dependencias
Para activar este parámetro, seleccione la casilla Use local solver y establezca Solver type en Partitioning
.
Partition storage method — Seleccione el método utilizado para almacenar los datos de partición al utilizar el solver local Partitioning
As needed
(predeterminado) | Exhaustive
Cuando utiliza el solver Partitioning, se resuelven las ecuaciones lineales conmutadas pequeñas de forma consecutiva. Puede decidir almacenar las inversas de matrices para mejorar el rendimiento de la simulación. Luego, si se detecta la misma configuración en una unidad de tiempo posterior, el solver de partición utiliza las inversas de matrices almacenadas en lugar de recalcularlas. Seleccione el método utilizado para almacenar los datos de partición:
As needed
: calcula las inversas de matrices durante la simulación, según sea necesario. Este método no requiere tanta memoria, pero puede provocar picos de rendimiento.Exhaustive
: calcula y almacena las inversas de matrices antes de la simulación. Este método mejora el rendimiento de la simulación, pero requiere más memoria. Utilice el parámetro Partition memory budget [kB] para especificar la asignación de memoria máxima permitida para almacenar los datos.
Dependencias
Para activar este parámetro, seleccione la casilla Use local solver y establezca Solver type en Partitioning
.
Partition memory budget [kB] — Asignación de memoria para el método exhaustivo de almacenamiento de datos de partición
1024
(predeterminado) | escalar positivo
Especifique la asignación de memoria máxima, en kB, permitida para almacenar datos de partición en caché. Si se supera esta asignación, se produce un error en la simulación. Puede ajustar el valor predeterminado basado en los recursos de memoria disponibles y en los datos de Total memory estimate en Statistics Viewer. Para obtener más información, consulte Partitioning Solver Statistics.
Dependencias
Para activar este parámetro, seleccione la casilla Use local solver. Establezca Solver type en Partitioning
y Partition storage method en Exhaustive
.
Use fixed-cost runtime consistency iterations — Permite realizar una inicialización transitoria con una carga computacional fija
desactivado (predeterminado) | activado
Si selecciona esta casilla, puede especificar el número de iteraciones no lineales y de modo para la inicialización transitoria. Si el sistema no converge una vez que realice el número de iteraciones especificado, se ignora el fallo y continúa con el siguiente paso.
Si desactiva la casilla, el sistema utiliza un algoritmo más sólido y que requiere más tiempo, realizando tantas iteraciones como sea necesario para alcanzar la convergencia, y se produce un error si no alcanza la convergencia en el momento de la inicialización transitoria.
Cuando se activa y desactiva Use local solver, también se selecciona y desactiva la casilla Use fixed-cost runtime consistency iterations automáticamente, dado que esta es la configuración recomendada para simulaciones de HIL y en tiempo real. No obstante, puede activar y desactivar las dos casillas de verificación de forma independiente entre sí. Para obtener más información, consulte Simulación de coste fijo.
Nonlinear iterations — Número de iteraciones de Newton para la inicialización transitoria
3
(predeterminado) | entero positivo
Especifique el número de iteraciones de Newton que se deben realizar en el momento de la inicialización transitoria.
Dependencias
Para activar este parámetro, seleccione la casilla Use fixed-cost runtime consistency iterations.
Mode iterations — Número de iteraciones de modo para la inicialización transitoria
2
(predeterminado) | entero positivo
Especifique el número de iteraciones de modo que se deben realizar en el momento de la inicialización transitoria.
Dependencias
Para activar este parámetro, seleccione la casilla Use fixed-cost runtime consistency iterations y desactive la casilla Use local solver. Cuando se utilizan solvers locales, solo se realiza una actualización de modo principal por cada paso, por lo que este parámetro no está disponible si está seleccionada la casilla Use local solver.
Compute impulses — Permite gestionar la carga computacional de la detección de impulsos durante la inicialización transitoria
desactivado (predeterminado) | activado
Permite gestionar la carga computacional de la detección de impulsos durante la inicialización transitoria, tanto para solvers globales como locales.
Los métodos basados en eventos de reinicialización de estados y gestión de impulsos permiten modelar fenómenos físicos, como colisiones y rebotes de pelotas, y proporcionan un aumento significativo de la velocidad de simulación de estos modelos. No obstante, la detección de impulsos puede añadir un coste a la inicialización transitoria. Este coste es proporcional al número de iteraciones de impulso realizadas para alcanzar la convergencia.
Si selecciona la casilla Compute impulses, puede especificar el número de iteraciones de impulso que se deben realizar durante la inicialización transitoria. Si el sistema no converge una vez que alcance estos números, ignora el fallo y continúa con el siguiente paso.
Si desactiva la casilla, el sistema calcula los impulsos tantas veces como sea necesario para alcanzar la convergencia.
Dependencias
Para activar esta casilla, seleccione la casilla Use fixed-cost runtime consistency iterations.
Impulse iterations — Número de iteraciones de impulso para la inicialización transitoria
2
(predeterminado) | entero positivo
Especifique el número de iteraciones de impulso que se deben realizar en el momento de la inicialización transitoria. Si el sistema no converge una vez que alcance estos números, ignora el fallo y continúa con el siguiente paso.
Dependencias
Para activar este parámetro, seleccione la casilla Compute impulses.
Resolve indeterminate equations — Aplica una regularización de tiempo de ejecución para resolver sistemas indeterminados estadísticamente
activado (predeterminado) | desactivado
Determinadas configuraciones de modelo, como el acoplamiento de embragues en paralelo o los sensores de corriente conectados en paralelo, admiten un número infinito de soluciones, lo que los hace indeterminados estadísticamente. La regularización es una transformación que convierte los modelos con variables indeterminadas Through en sistemas que pueden resolverse. De forma predeterminada, si el solver se encuentra con un sistema indeterminado estadísticamente, aplica una regularización de tiempo de ejecución para resolverlo.
Desactive la casilla Resolve indeterminate equations para acelerar la simulación en una máquina multinúcleo utilizando el parámetro Maximum threads for function evaluation. No obstante, los modelos que tienen ecuaciones indeterminadas estadísticamente pueden fallar en tiempo de ejecución.
Dependencias
Para activar esta casilla, seleccione la casilla Use fixed-cost runtime consistency iterations.
Maximum threads for function evaluation — Utilice multihilos para acelerar las iteraciones de Newton para el solver Backward Euler
1
(predeterminado) | entero positivo
Especifique el número máximo de hilos para evaluar la función cuando se utilice el solver Backward Euler para una simulación en tiempo real. El número real de hilos utilizados es la potencia de 2 más cercana que no supere el valor de parámetro. Por ejemplo, si especifica 5
como valor de parámetro, el solver utiliza cuatro hilos. El valor predeterminado, 1
, corresponde a la evaluación de una función de un solo hilo.
Para utilizar la evaluación de función multihilos, debe desactivar la casilla Resolve indeterminate equations. Si selecciona la casilla Resolve indeterminate equations, el solver emite una advertencia y cambia a la evaluación de función de un solo hilo.
Otros modos de simulación que no se admiten incluyen simulación de frecuencia y tiempo, retraso, compilación escalable, modo Accelerator y modo Rapid Accelerator. Puede generar código utilizando Simulink Real-Time™, pero no se admiten otros tipos de generación de código.
Dependencias
Para activar este parámetro, seleccione la casilla Use local solver, establezca el parámetro Local solver en Backward Euler
y seleccione la casilla Use fixed-cost runtime consistency iterations.
Linear Algebra — Especifique cómo el solver trata las matrices
auto
(predeterminado) | Sparse
| Full
Especifique cómo el solver trata las matrices:
auto
: el solver selecciona automáticamente la opción adecuada, dispersa o completa, para tratar las matrices.Sparse
: el solver trata las matrices como dispersas.Full
: el solver trata las matrices como completas.
Number of threads (specify n for 2^n) — Utilice álgebra lineal multihilos para acelerar la simulación en escritorio en una máquina multinúcleo
0
(predeterminado) | entero positivo
Especifique el número de hilos para álgebra lineal multihilos proporcionando un exponente entero para 2. El número de hilos es igual a 2 elevado a la potencia del valor de parámetro. El valor predeterminado, 0
, corresponde al álgebra lineal de un solo hilo.
Para modelos pequeños, los algoritmos multihilos que utilizan números superiores a 0 pueden ser más lentos que los de un solo hilo.
Dependencias
Para activar este parámetro, seleccione la casilla Use local solver y establezca el parámetro Linear algebra en Sparse
. Para un solver global, Simulink resuelve las ecuaciones sin utilizar algoritmos de álgebra lineal de Simscape.
Delay memory budget [kB] — Asignación de memoria para procesar retrasos
1024
(predeterminado) | escalar positivo
Especifique la asignación de memoria máxima, en kB, permitida para procesar retrasos cuando se simulen modelos que contengan bloques de la biblioteca Delays o bloques personalizados con el constructo de lenguaje delay
Simscape. El objetivo de este parámetro es proteger frente a un intercambio de memoria excesivo. Si se supera esta asignación, se produce un error en la simulación. Puede ajustar este valor basado en los recursos de memoria disponibles.
Apply filtering at 1-D/3-D connections when needed — Proporciona automáticamente la derivada adicional necesaria para bloques de Simscape Multibody™
activado (predeterminado) | desactivado
Esta opción solo es aplicable a los modelos que conectan bloques de la biblioteca Simscape Multibody con bloques de Simscape o bloques de otros productos complementarios. Use Statistics Viewer para determinar si el modelo tiene conexiones 1D/3D. Para obtener más información, consulte 1-D/3-D Interface Statistics.
Cuando un bloque de Simscape Multibody se conecta directamente a una red de Simscape, puede ser necesaria una derivada adicional para resolver la red. Cuando selecciona esta casilla, el solver aplica automáticamente el filtrado de entradas a la señal que entra en el bloque Simulink-PS Converter para obtener esta derivada adicional. El parámetro Filtering time constant proporciona la constante de tiempo para el retraso.
Nota
Esta casilla está seleccionada de forma predeterminada. Si la desactiva y la conexión 1D/3D requiere la derivada adicional, el solver emite un mensaje de error.
Filtering time constant — Constante de tiempo para el retraso, en segundos
0.001
(predeterminado) | escalar positivo
Este parámetro especifica la constante de tiempo de filtrado, en segundos, para el filtrado de entradas automático para conexiones 1D/3D. El valor del parámetro se aplica globalmente a todas las conexiones que pertenecen a la red que incluye este bloque Solver Configuration.
Dependencias
Para activar este parámetro, seleccione la casilla Apply filtering at 1-D/3-D connections when needed.
Use local solver — Use un solver local basado en muestreo para la red de Simscape Multibody
desactivado (predeterminado) | activado
Permite utilizar un solver local basado en muestreo para la red de SimscapeMultibody conectada. Si se usa un solver local, se puede reducir la carga computacional de un modelo complejo de Simulink que tiene redes simples de Simscape Multibody. El solver global de Simulink interpreta una red de Simscape Multibody que utiliza un solver local como si tuviera estados discretos. El solver local actualiza los estados una vez por unidad de tiempo.
Nota
Esta configuración es independiente de la configuración Use local solver de la parte principal del cuadro de diálogo del bloque, que hace referencia a la red de Simscape conectada al bloque.
Solver type — Tipo de solver utilizado por el solver local para actualizar los estados de la red de Simscape Multibody
First-order explicit formula
(predeterminado) | Second-order explicit formula
| Third-order explicit formula
| Fourth-order explicit formula
| Fifth-order explicit formula
| Eight-order explicit formula
Seleccione el tipo de solver utilizado para actualizar los estados de la red de Simscape Multibody:
First-order explicit formula
: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas queode1
.Second-order explicit formula
: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas queode2
.Third-order explicit formula
: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas queode3
.Fourth-order explicit formula
: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas queode4
.Fifth-order explicit formula
: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas queode5
.Eight-order explicit formula
: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas queode8
.
Dependencias
Para activar este parámetro, en la sección Multibody, seleccione la casilla Use local solver.
Sample time — Tiempo de muestreo para el solver local Multibody
0.001
(predeterminado) | escalar positivo
Especifique el tiempo de muestreo del solver local Multibody, en segundos. El solver actualiza los estados de la red de Simscape Multibody conectada una vez por unidad de tiempo.
Dependencias
Para activar este parámetro, en la sección Multibody, seleccione la casilla Use local solver.
Capacidades ampliadas
Generación de código C/C++
Genere código C y C++ mediante Simulink® Coder™.
Historial de versiones
Introducido en R2007aR2023b: Solver local Multibody
La nueva sección Multibody contiene configuraciones específicas para resolver la red de Simscape Multibody conectada. La casilla Use local solver permite reducir la carga computacional representando la red de Simscape Multibody como si tuviera estados discretos. Los parámetros Solver type y Sample time de esta sección solo se aplican al solver local Multibody.
R2022b: Nuevas formas de especificar la tolerancia de consistencia
El bloque utiliza tolerancias de consistencia absolutas y relativas basadas en estados, multiplicadas por un factor de escalado para calcular las condiciones iniciales y para la inicialización transitoria. El parámetro Consistency tolerance permite elegir entre las tolerancias del modelo o la configuración de tolerancia local. El nuevo parámetro Tolerance factor proporciona un factor de escalado para estos valores. Este método basado en estados proporciona una mayor solidez y eficiencia, especialmente si se utiliza junto con el escalado del modelo mediante valores nominales.
En versiones anteriores, el parámetro Consistency tolerance tenía un valor numérico y el bloque utilizaba un solver no lineal basado en la tolerancia residual de la ecuación para inicializar el modelo.
Si abre un modelo existente donde el parámetro Consistency tolerance tiene un valor numérico, el modelo sigue utilizando el mismo método de cálculo basado en el valor residual que usaba en versiones anteriores. Los resultados de su simulación no cambian.
Para actualizar los modelos existentes de forma que usen el método basado en estados, utilice Check Simscape use of state-based consistency tolerances en Upgrade Advisor.
R2022b: Evaluación de función multihilos para simulación de coste fijo
Si el modelo utiliza el solver local Backward Euler, calcular iteraciones de Newton requiere mucho tiempo y puede suponer un problema para las simulaciones de coste fijo. Puede utilizar la evaluación de función multihilos para acelerar la simulación en una máquina multinúcleo utilizando el nuevo parámetro Maximum threads for function evaluation y desactivando la nueva casilla Resolve indeterminate equations.
En versiones anteriores, el solver utilizaba evaluación de función de un solo hilo y siempre aplicaba la regularización de tiempo de ejecución. Los valores predeterminados del parámetro Maximum threads for function evaluation y la casilla Resolve indeterminate equations son equivalentes al algoritmo utilizado en versiones anteriores.
Comando de MATLAB
Ha hecho clic en un enlace que corresponde a este comando de MATLAB:
Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)