【MATLABデータ処理の実践事例詳細解説(19)】—ニューロファジー制御による洗濯機の制御

1. 問題の説明

1990年代初頭、日本のパナソニック株式会社は、衣類の風合いの柔らかさや硬さ、衣類の量、汚れの程度や性質などを自動で判断できるニューロファジー制御の全自動洗濯機を発売した。ニューロファジー制御技術を適用して自動的にファジー洗濯を生成. ルールとメンバーシップ関数を制御し、洗濯水のレベル、水流の強さ、洗濯時間を事前設定し、洗濯プロセス全体でこれらのパラメーターをリアルタイムで調整して、最高の結果を達成します.洗濯効果。
洗濯機の主な制御パラメーターは、洗濯時間と水流強度であり、この出力パラメーターに影響を与える主な要因は、
洗濯物の濁度と濁度であり、後者は濁度の変化率で表すことができます。洗浄工程において、油汚れの濁度変化率は小さく、泥汚れの濁度変化率は大きい。したがって、濁度とその変化率は制御システムの入力パラメーターとして使用でき、洗浄時間と水流強度は制御量、つまりシステムの出力として使用できます。実際、特定の数学的モデルを使用して洗濯プロセスのインプットとアウトプットを記述することは困難です。システムの運用には大きな不確実性があり、制御プロセスはオペレータの経験に大きく依存するため、従来の制御方法では機能しにくいため、ファジィ制御が導入されています。

2. 洗濯機のファジィ制御

上記のファジー制御の基本原理に従って、洗浄時間を決定するためのファジー推論ブロック図が得られます。入力量は洗浄水の濁度とその変化率であり、出力量は洗浄時間です。下の図で。適切な制御性能と簡素化された手順の必要性を考慮に入れる。入力濁度を定義するファジー単語セットは{ クリア、かなり濁っている、濁っている、非常に濁っている}、濁度の変化率を定義するファジー単語セットは{ ゼロ、小、中、大}であり、出力変数の洗浄時間を定義します セットは{ 短い、短い、標準、長い}です。入力/出力変数を記述する単語セットはすべてファジー プロパティを持ち、ファジー セットで表すことができます。したがって、ファジー概念を決定する問題は、ファジー集合のメンバーシップ関数を取得する問題に直接変換されます。洗濯機のファジー制御ルールは、次のように 16 のルールに要約できます。
ここに画像の説明を挿入

洗濯機のファジィ制御ルール表
洗濯時間 濁度
クリア 濁った 濁度 非常に泥だらけ
変化率
ゼロ 短い 短い 標準 標準
非常に少ない 標準 標準 標準 標準
真ん中 標準 長さ 長さ 長さ
大きい 標準 標準 長さ 長さ

ファジィ制御の手順は次のとおりです。まず、洗濯機で得られた濁度情報がセンサによって情報処理装置に送られ、濁度と濁度変化率に分解され、ファジィコントローラに送られます。入力されたファジー量については、ファジー変数に変換する必要があります.シングルチップコンピュータを介して、ルックアップテーブル法を使用して、ファジー推論規則に従って決定を行います.結果はファジー変数と見なされます.洗浄時間を変更して、ファジー制御アルゴリズム プロセスを完了します。

一般的なファジィ制御洗濯機は、「熟練者の経験」をファジィ制御ルールで表現し、運転中にテーブルを参照して制御を決定します。これは、オペレーターがプログラムを設定する必要があるコンピューター制御の洗濯機に比べて大きな進歩です。ただし、この種の洗濯機は、ルール テーブルが大量のメモリ空間を占有する必要があり、テーブル ルックアップの応答速度が遅く、プログラムされたルールに従ってしか制御できないため、理想的ではありません。ニューラルネットワークとファジー制御を組み合わせることで、これらの問題を解決できます。

洗濯機のニューラル ネットワーク ファジー制御は、オフラインで学習させたネットワークを使用し、オンライン計算で最適な出力を得ることができます。この制御モードの応答速度は速く、ニューラルネットワークには自己学習機能と連想能力があり、学習に現れなかったサンプルについても、記憶の機能を連想させることで制御判断を行うことができ、パフォーマンスが向上します。非常に柔軟です。

洗濯機のニューラル ネットワーク ファジー コントローラーの制御システムには、複数のニューロ ファジー リンクが含まれていますが、以下では、
濁度と濁度変化率の入力変数を使用して洗濯時間を決定するコントローラーのみを紹介します。ニューロファジィ制御器は、入出力パラメータの選択、ファジィ領域とファジィ部分集合の決定は一般のファジィ制御器と変わらないが、推論手段にニューラルネットワークを導入している。x1~x7 を入力濁度のファジー サブセット、x8~x14 を入力濁度変化率のファジー サブセット、y1~y8 を出力制御量のファジー サブセットとする。上の図から、16 の制御ルールがあり、各ルールにはサンプルのペアがあるため、合計で 16 のサンプルのペアがあることがわかります。たとえば、濁度が「クリア」で濁度変化率が「ゼロ」の場合、アタックは「短い」はずであり、このサンプルは x = [ 1 , 0.6 , 0.1 , 0 , 0 , 0 ,
0 , 1.0 , 0.5 , 0 , 0 , 0 , 0 , 0 ] T , y = [ 1.0 , 0.5 , 0 , 0 , 0 , 0 , 0 , 0 ] T x=[1,0.6,0.1,0,0 , 0,0,1.0,0.5,0,0,0,0,0]^T,y=[1.0,0.5,0,0,0,0,0,0]^Tバツ=[ 1 ,0.6 0.1 0 0 0 0 1.0 0.5 0 0 0 0 0 ]Ty=[ 1.0 0.5 0 0 0 0 0 0 ]T

次の表は、各入力パラメーターのあいまいさの量を示しています。

入力パラメーターのファジー量
入力パラメータ ぼかし量
濁度 クリア 1 0.6 0.1 0 0 0 0
濁った 0 0.6 0.6 0 0 0 0
濁度 0 0 0.6 1 0 0 0
非常に泥だらけ 0 0 0 0 1 0.6 0
濁度変化率 ゼロ 1 0.5 0 0 0 0 0
非常に少ない 0 0.5 1 0.4 0 0 0
真ん中 0 0 0 0.4 1 0.6 0
大きい 0 0 0 0 0 0 0.8
洗濯時間 短い 1 0.5 0 0 0 0 0 0
短い 0.4 0.8 1 0.8 0.4 0.2 0 0
標準 0 0 0 0.2 0.6 1 0.6 0.2
長さ 0 0 0 0 0 0.2 0.5 0.8

ファジー ルールに従って、ネットワークのトレーニング サンプル P と T を取得できます。完全な MATLAB コードは次のようになります。

3. 走行結果

誤差曲線は次のとおりです。
ここに画像の説明を挿入
ネットワークを 266 回反復した後、誤差の影響は要件を満たします。
ここに画像の説明を挿入

4. 完全なコード


完全なコードについては、https: //download.csdn.net/download/didi_ya/87740580のリソースを参照してください


わかりました、上記はこの記事の全内容です。役に立ったら、忘れずに気に入ってください〜

おすすめ

転載: blog.csdn.net/didi_ya/article/details/130425238