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.

Solver Configuration

Entorno de red física y configuración de solver

  • Solver Configuration block

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.

Puertos

Transferencia

expandir todo

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

expandir todo

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.

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étodo Derivative 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.

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.

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

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.

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.

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.

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™.

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 que Backward 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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

Multibody

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.

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 que ode1.

  • Second-order explicit formula: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas que ode2.

  • Third-order explicit formula: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas que ode3.

  • Fourth-order explicit formula: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas que ode4.

  • Fifth-order explicit formula: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas que ode5.

  • Eight-order explicit formula: solver explícito de paso fijo que utiliza las mismas ecuaciones matemáticas que ode8.

Dependencias

Para activar este parámetro, en la sección Multibody, seleccione la casilla Use local solver.

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 R2007a

expandir todo