主要内容

フォ,ルトトレラント燃料制御システムのモデル化

この例では,Stateflow®を仿真金宝app软件®と組み合わせてハイブリッドシステムを効率的にモデル化する方法を示します。このタ@ @プのモデル化は,離散@ @ベントに基づいて多数の動作モ@ @ドが考えられるシステムで特に便利です。従来の信号の流れは仿金宝app真软件で処理されますが,制御構成の変更はStateflowで実装されます。以下で説明するモデルは,ガソリンエンジンの燃料制御システムを表します。このシステムは,個々のセンサーの故障が検出され,制御システムが中断せずに稼働するよう動的に再構成されるという点で非常にロバストです。

解析と物理学

物理的および経験的関係が,このモデルのスロットルおよびインテークマニホールドのダイナミクスの基礎となっています。空燃比を計算するには,(インテークマニホールドから送り込まれる)空気の質量流量を,(バルブで噴射される)燃料の質量流量で除算します。理想(理論)混合比は,パワ,燃費,および排気の間での最適なバランスを提供します。このシステムのタゲット空燃比は14.6です。通常,センサ,が排気ガス(ego)中の残留酸素量を決定します。これにより,混合比が明示され,閉ル,プ制御でのフィ,ドバック測定が可能になります。センサ,が高い酸素レベルを示した場合,制御則は燃料比を増加させます。センサーが(非常に低い残留酸素レベルに相当する)燃料リッチ混合気を検出すると,コントローラーは燃料比を減少させます。

モデル化

図1は,Si金宝appmulinkモデルの最上位レベルを示します。モデルを開くには,[モデルを開く]をクリックします。モデルウィンドウのの[再生]ボタンを押してシミュレ。モデルにより,必要なデ,タがsldemo_fuelsys_data.mからモデルワ,クスペ,スに読み込まれます。このモデルはmatlabワ,クスペ,スのsldemo_fuelsys_outputというデータ構造体に関連データをログ記録し,シミュレーションデータインスペクターにデータをストリーミングします。ログ記録された信号には青いインジケーターが付き,信号のストリーミングには薄い青のバッジが付きます(図1を参照)。

モデルワークスペースに初期条件を読み込むと,シミュレーションデータが,開いている他のモデルのデータから分離されたままになることに注意してください。これは,matlabワ,クスペ,スが乱雑にならないようにするためにも役立,ます。モデルワークスペースの内容を表示するには,[モデル化],[モデルエクスプローラー]を選択し,[モデルの階層構造]リストから[模型工作区]をクリックします。

モデルおよびサブシステムア@ @コンと信号線上に単位が表示されることがわかります。単位は端子とバスオブジェクトに指定されます。

図 1:燃料制御システムモデルの最上位レベルのブロック線図

仪表板サブシステム(図2)を使用すると,シミュレーション中にモデルを操作できます。(故障注入)のスイッチを(正常)から(失败)の位置に動かしてセンサーの故障をシミュレートし,(发动机转速)のセレクタースイッチを切り替えてエンジン速度を変更できます。燃料信号と空燃比信号はダッシュボードのゲージとスコープを使用して可視化され,シミュレーションの実行中に視覚的なフィードバックを提示します。

図 2:燃料制御システムモデルの仪表盘サブシステム

fuel_rate_controlは,システムのセンサーからの信号を使用して,理論混合気を得られる燃料比を決定します。燃料比はエンジンの気体力学モデル内で実際の空気流量と組み合わされて,排気時に検出される最終的な混合比を決定します。

故障をシミュレートするために,4つのセンサー(スロットル角度,速度,自我,マニホールド絶対圧[图])をそれぞれ,仪表板サブシステムのスライダースイッチを使って選択的に無効にすることができます。金宝app仿真软件では,スライダースイッチを常数ブロックの値パラメーターにバインドしてこの操作を実行します。仪表板サブシステムをダブルクリックして制御ダッシュボードを開き,スイッチの位置を変更します。同様に,仪表板サブシステムのエンジン角速度スイッチを切り替えることにより,高速のエンジンによる故障状態を引き起こすことができます。重复表ブロックは,スロットル角度の入力を提供し,マスク内で指定されたデータのシーケンスを周期的に繰り返します。

図3に示すfuel_rate_controlブロックは,センサー入力とフィードバック信号を使用して,理論混合比を得られるように燃料比を調整します。このモデルでは,この手法を実装するために,制御ロジック,気流計算,および燃料計算の3つのサブシステムを使用しています。通常の動作では,モデルは気流量を推定し,その推定値に目標混合比の逆数を乗算して燃料比を求めます。酸素センサ,からのフィ,ドバックによって,比率推定値の閉ル,プ調整を行い,理想混合比を維持します。

図 3:燃料比コントロ,ラ,サブシステム

制御ロジック

6つのパラレルステートの集合で構成される単一のStateflowチャートにより,制御ロジック全体が実装されます。図4の上部に示す4のパラレルステトは,4。下部にある残りの2つのパラレルステートは,4つのセンサーのステータスを同時に検討し,システム全体の動作モードを決定します。このモデルはStateflowブロック線図全体を一定のサンプル時間間隔0.01秒で同期的に呼び出します。これにより,正しいモ,ドへの遷移に対する条件を適時にテストできます。

Stateflowチャ,トcontrol_logicを開くには,fuel_rate_controlサブシステムでこのチャ,トをダブルクリックします。

図 4:制御ロジックチャ,ト

実行が開始されると,酸素センサ,(ego)を除いて,すべてのステ,トが正常的モ,ドで開始します。ウォ,ムアップ期間が完了するまで最初はO2_warmupステ,トに入ります。システムがスロットルおよび圧力センサーの故障を検出するのは,それらの測定値がノミナル範囲から外れた場合です。速度信号がないときにマニホ,ルドが真空になる場合は,速度センサ,の故障を示しています。酸素センサーにも故障状態を表すノミナル範囲がありますが,最小信号レベルと範囲の下限が共に0であるため,故障が検出されるのは,上限を超えた場合に限定されます。

どのセンサ,が故障したかにかかわらず,モデルは常に指示のある,ベントブロ,ドキャスト失败。公司を生成します。こうすることで,汎用のセンサ,故障ロジックのトリガ,はセンサ,に依存しません。モデルは,対応するセンサ,回復,ベント失败。12月も使用します。失败ステ,トは,故障したセンサ,の数を追跡します。カウンタ,は,失败。公司,失败。12月aaplベントごとにデクリメントします。モデルはス,パ,ステ,ト

一番下のパラレルステ,トは,エンジンの燃料供給モ,ドを表しています。1つのセンサーが故障した場合,動作は続行されますが,混合気をよりリッチにして高い排気の犠牲のもとに,より円滑なエンジン回転を実現します。1つを超えるセンサーが故障した場合は,空燃比を確実に制御できないため,安全対策としてエンジンを停止させます。

酸素センサ,のウォ,ムアップ中,モデルは混合気を正常レベルに保,ます。これが不十分な場合,Rich_Mixtureス,パ,ステ,ト内でウォ,ムアップステ,トを移動することで,設計を変更できます。ウォ,ムアップ期間中にセンサ,の故障が発生した場合,ウォ,ムアップ期間の経過後にSingle_Failureステ,トに入ります。それ以外の場合は,この時点で正常的ステ,トがアクティブになります。

Fuel_Disabledスーパーステート内に新しいステートを作成することによって,モデルに過速度保護機能が追加されています。ヒストリジャンクションを使用することによって,モデルが過速度ステートから出ると,チャートが確実に適切なステートに戻ります。指定されるエンジンの安全要件がより適切になるにれて,Fuel_Disabledス,パ,ステ,トにさらに停止ステ,トを追加できるようになります。

センサ,補正

センサ,が故障すると,モデルはセンサ,の推定値を計算します。たとえば,圧力センサ,の計算を開きます。通常のセンサ,動作では,モデルは圧力センサ,の値を使用します。それ以外の場合,モデルは値を推定します。

モデルは,マニホ,ルド圧の推定値を,エンジン速度とスロットル位置の関数として計算します。この値を計算するため,モデルはStateflow内でSim金宝appulink関数を使用します。

気流計算

气流计算ブロック(図6)は,中央の制御則の位置です。このブロックは,燃油率控制サブシステム内にあります(このブロックを開く)。このブロックは吸入空気流量を推定して,適切な空燃比を得られる燃料比を決定します。閉ループ制御は,混合比を正確に維持するために,残留酸素フィードバックに応じてこの推定値を調整します。センサーの故障により開ループ動作が要求された場合でも,制御目的を最適に満たすために最新の閉ループ調整が保持されます。

図 6:気流の推定と補正

方程式 1

エンジンの吸入空気流量は,エンジン速度,マニホールド圧、および時変スケール係数の積として定式化できます。

$ $ q = \压裂{N}{4 \π}V_ {cd} \ν\压裂{P_m} {RT} = C_{泵}(N, P_m) N P_m = \ mbox{进气质量流量}$ $

$$N = \mbox{发动机角速度(Rad/sec)}$$

$$V_{cd} = \mbox{发动机气缸排量体积}$$

$$\nu = \mbox{容量效率}$$

$$P_m = \mbox{歧管压力}$$

$$R, T =\mbox{特定气体常数,气体温度}$$

Cpumpはルックアップテ,ブルによって計算され,速度と圧力が乗算されて,初期流量が推定されます。過渡時に,スロットル流量と,ハイパスフィルターで近似された導関数により,充填動力学に対して空気流量が補正されます。制御アルゴリズムが方程式2に従って追加補正を行います。

方程式 2

$$e_0 = 0.5 \mbox{for} EGO\le 0.5$$

$$e_0 = -0.5 \mbox{for} EGO >0.5 $ $

$$e_1 = K_i (N,P_m) e_0 \mbox{for} EGO\le 0.5$$

$$\dot{e_2} = e_1 \mbox{用于LOW模式,带有有效的EGO信号}$$

$$\dot{e_2} = 0 \mbox{用于RICH, DISABLE或EGO预热}$$

$$ e_0, e_1, e_2 = \mbox{中间错误信号}$$

図 7:发动机气体动力サブシステム

図 8:发动机气体动力学サブシステム内の混合燃烧ブロック

非線形酸素センサー(自我传感器ブロック)は,发动机气体动力学サブシステム(図7を参照)内の混合与燃烧ブロック(図8を参照)内にあります。自我センサーは,双曲線正接関数としてモデル化されており,0.5ボルトに近づくと,意味のある信号を提供します。方程式2に示されているように,フィードバックループ内の生の誤差は切り替えしきい値で検出されます。空燃比が低い(混合気がリーンである)場合,元の空気推定値は小さすぎるため,増やす必要があります。逆に,酸素センサ,出力が高い場合,空気推定値が大きすぎるため,減らす必要があります。補正項が,混合比で定常偏差を0にするレベルを実装できるように,積分制御が利用されます。

通常の閉ル,プ動作モ,ド,低では,誤差を最小限に抑えるために積分器を動的に調整します。積分は離散時間で実行され,10ミリ秒ごとに更新されます。ただし,丰富またはO2故障モードで,開ループで動作する場合,フィードバック誤差は無視され,積分器が保持されます。これにより,最新の有効なフィ,ドバックに基づいて最適な補正が行われます。

燃料計算

Fuel_calcサブシステム(fuel_rate_controlサブシステム内。図9を参照)は所与の気流計算および故障ステータスと一致するようにインジェクター信号を設定します。最初の入力は,計算された気流推定値です。これにタ,ゲット空燃比を乗算すると,指令燃料比が得られます。通常,タ,ゲットは理論空燃比,まり,最適な空燃比14.6と等しくなります。センサーの故障が発生すると,Stateflow制御ロジックは,モード入力を値2または3(富または禁用)に設定し,混合気が理論混合気よりわずかにリッチになるか,または完全に停止されるようにします。

図 9:Fuel_calcサブシステム

fuel_calcサブシステム(図9)は,モードによって異なる目的を達成するために調整可能な補償(図10)を使用します。通常の動作では,フィ,ドバック補正信号の位相進み補償が閉ル,プの安定余裕を広げます。ただし,丰富モードでかつ自我センサーの故障時(開ループ)には,推定プロセスで発生したノイズを減衰させるために複合燃料信号がローパスフィルター処理されます。最終結果は,実際のシステムでは,インジェクターのパルス時間に変換される燃料流量を表す信号になります。

図 10:切り替え可能な補償サブシステム

結果とまとめ

シミュレ,ション結果を図11と図12に示します。シミュレーション実行時に使用されるスロットル入力は,2秒間にわたって10度から20度に傾斜してから,次の2秒間にわたって10度に戻ります。ユーザーがさまざまな故障状態と故障モードを実験できるように,このサイクルは連続的に繰り返されますが,エンジンは一定の速度に保たれます。仪表板サブシステムのセンサー故障スイッチをクリックして,関連付けられたセンサーの故障をシミュレートします。この操作を繰り返し,スaaplッチをスラaaplドさせて通常の動作に戻します。

図 11:さまざまなセンサ,故障の場合の燃料流量の比較

図11では,故障がない条件(ベースライン)下での燃料流量と,各センサーに単一の故障がある場合に適用される燃料流量を個別に比較しています。いずれの場合にも,燃料流量と(図13に示す)三角形のスロットルコマンド間の非線形の関係に注目してください。ベースラインの場合,燃料比は厳密に調整され,自我センサーの入力回路がもつ切り替えの性質により小さな波形を示します。他の4の場合,。この制御手法は,単一故障モードで適正な燃料プロファイルを維持するのに効果的であると証明されています。各故障状態で,燃料比は基本的にベースライン流量の125%であり,設計目標の80%リッチを達成します。

図 12:さまざまなセンサ,故障の場合の空燃比の比較

図12に,それぞれの場合にいて対応する空燃比をプロットします。ベスランプロットは,閉ルプ動作の効果を示しています。混合比は,理論目標の14.6に非常に厳密に調整されています。リッチな混合比が図12の下の4のプロットに示されています。閉ループの場合とは異なり,これらは厳密に調整されていませんが,空燃比の目標に近似しています(0.8 * 14.6 = 11.7)。

図 13:スロットルコマンド

システムの過渡動作を図14に示します。スロットル角度が一定の12度で,システムが定常状態の場合に,スロットルの故障がt = 2で発生し,t = 5で補正されています。故障の発生時に,燃料比が直に増加します。リッチな空燃比がシステム中に伝播されるため,排気時に効果が現れます。その後,閉ル,プ動作に戻ると,定常状態条件が迅速に回復します。

図 14:故障検出に対する過渡応答

注意

Stateflowデバッガーでアニメーションを有効にした場合,さまざまなステートがアクティブになると,Stateflowブロック線図でステート遷移が強調表示されます(図4を参照)。アクティブ化の順序は,色を変更することで示されます。このように密接に連結したStateflowと仿真软金宝app件間の相乗効果により,完全な制御システムのモデル化および開発が促進されます。

関連するトピック