Implementar un sistema de transmisión automático que controla señales transitorias
Este ejemplo modela el sistema de transmisión de un vehículo que utiliza el operador lógico temporal de Stateflow® duration
para controlar señales transitorias. En este modelo, las exigencias del acelerador y la velocidad del vehículo provocan que la transmisión cambie de marcha. El gráfico de Stateflow Gear_logic
utiliza el operador duration
para controlar señales transitorias cuando el vehículo está cerca del umbral para cambiar a una marcha superior o inferior. Cuando Stateflow gestiona las señales transitorias, la transmisión puede pasar de manera fluida de una marcha a la siguiente. Para obtener más información sobre el operador duration
, consulte Controlar la ejecución de gráficos con lógica temporal.
Examinar un modelo
Este modelo consta de cinco bloques principales.
User Inputs
: Genera como salida dos señales, freno y acelerador.Engine
: Calcula las rpm del motor en función del valor del par motor del impulsor y del acelerador.Gear_logic
: Calcula la siguiente marcha en función de la marcha actual, el acelerador y la velocidad actual del vehículo.Transmission
: Calcula el par motor del impulsor y de salida basándose en las rpm, la marcha y la velocidad de transmisión.Vehicle
: Calcula la velocidad del vehículo y de la transmisión en función del par motor de salida y del freno.
El gráfico de Stateflow modela el cambio de marcha en función del acelerador y la velocidad del vehículo. Los datos down_threshold
y up_threshold
representan los valores mínimo y máximo de velocidad que el acelerador y la marcha actual son capaces de gestionar. La función de Simulink calculate_thresholds
calcula estos dos valores usando throttle
y gear
como entradas. Si la velocidad real es mayor que up_threshold
durante más tiempo que TWAIT
, el gráfico pasa a una marcha superior. Si, por el contrario, la velocidad real es menor que down_threshold
durante más tiempo que TWAIT
, el gráfico pasa a una marcha inferior.
En cada unidad de tiempo, el gráfico llama al operador duration
para averiguar la cantidad de tiempo en que speed
es mayor que up_threshold
. Si este tiempo supera a TWAIT
, el gráfico establece la variable booleana up
, que, a su vez, cambia el gráfico de la marcha actual a una marcha superior. En cambio, el gráfico pasa a una marcha inferior en función del valor de down_threshold
.
Los datos de estado activo son los datos enumerados que representan el estado activo actual durante la simulación. En este gráfico, los datos de salida gear
mantienen el estado activo actual, que, a su vez, representa la marcha actual. Estos datos se actualizan automáticamente cuando se produce una transición. Tanto los bloques posteriores como la función de Simulink® calculate_thresholds
utilizan estos datos. Para obtener más información, consulte Monitor State Activity Through Active State Data.
Simular el modelo
Simule el modelo y abra el bloque Scope.