このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。
duration
演算子を使用したオートマチック トランスミッション ギア システムの実装
この例では、Stateflow® の時相論理演算子 duration
を使用して、車両のスロットル要件と速度に基づいて自動的にギア シフトすることにより、自動車のトランスミッション システムをモデル化します。詳細については、時相論理を使用したチャート実行の制御を参照してください。
モデルの説明
このモデルには主要なブロックが 5 つあります。
User Inputs: モデルにブレーキとスロットルの 2 つの入力を提供。
Engine: インペラーのトルク値とスロットルに基づいてエンジン速度を計算。
Gear_logic: 現在のギア、スロットルおよび現在の車速に基づいて次のギアを計算。
Transmission: RPM、ギアおよびトランスミッション速度に基づいて、インペラーのトルクと出力のトルクを計算。
Vehicle: 出力トルクとブレーキに基づいて、車速とトランスミッション速度を計算。
チャートの説明
Stateflow チャートは車両のスロットルと速度に基づいてギアのシフトをモデル化します。出力 down_threshold
と up_threshold
は、スロットルと現在のギアが処理できる最低速度と最高速度を表します。Simulink 関数 calculate_thresholds
は、throttle
と gear
を入力として使用して、これら 2 つの値を計算します。実際の速度が、TWAIT
よりも長い時間にわたり up_threshold
よりも速ければ、チャートはより高速のギアに遷移します。逆に、実際の速度が、TWAIT
よりも長い時間にわたり down_threshold
よりも遅ければ、チャートはより低速のギアに遷移します。各タイム ステップで、チャートは duration
演算子を呼び出して、speed
が up_threshold
より速くなっている時間を検出します。この時間が TWAIT
を超える場合、boolean 変数 up
が設定され、チャートが現在のギアからより高速のギアに遷移します。一方で、チャートは down_threshold
の値に基づいて、より低速のギアに遷移します。
アクティブ ステート データ
アクティブ ステート データは、シミュレーション中に現在のアクティブ ステートを表す列挙データです。このチャートでは、出力データ gear
は現在のアクティブ ステートを保持し、後者は現在のギアを表します。遷移が実行されると、このデータは自動的に更新されます。このデータは下流ブロックおよび Simulink® 関数 calculate_thresholds
で使用されます。詳細については、アクティブ ステート データによるステート アクティビティの監視を参照してください。
シミュレーション
これらの変化を可視化するには、モデルをシミュレートしてスコープを開きます。