言語変数を作成する
- 更新日2023-02-21
- 2分で読める
ファジーシステムを設計するときに、言語変数は、制御対象システムの入力変数と出力変数を言葉で表すものです。
入力変数と出力変数を言葉で表す言語変数を作成するときには、言語要素(言語変数の値のカテゴリ)をいくつ作成するかを決めます。言語変数は通常、中央の言語要素があり、両方向に対称的に言語要素が存在するように奇数の言語要素をもちます。ほとんどのアプリケーションでは、言語変数の値を分類するために3つから7つの言語要素があれば十分です。
任意の開始地点から自動車を自動的に車庫に入れる例を考えてみましょう。運転手は、適切なステアリング角度を決めるために、目標地点からの距離や自動車の向きなどの自動車の現在の状況を常に評価しながら、自動車を制御することができます。以下の図はこの例を表しています。

この例では2つの入力言語変数を定義できます。自動車の位置xは、目標地点からの自動車の相対的な位置を表します。自動車の方向βは、自動車の向きを表します。また、制御したい自動車のステアリング角度を表す出力言語変数ステアリング角度φも定義できます。
言語要素を定義する
自動車の目標地点から見た可能な位置を表す自動車の位置 x入力言語変数の言語要素として左、左中央、中央、右中央、右を定義できます。自動車の可能な向きを表す自動車の方向β入力言語変数の言語要素として、左下、左、左上、上、右上、右、右下を定義できます。ステアリング角度φ出力言語変数の言語要素は、方向とステアリング角度が変わる度合いの両方を表す必要があります。このため、この出力言語変数には負に大きく、負に中程度、負に小さく、ゼロ、正に小さく、正に中程度、正に大きくという言語要素を使用することができます。
ファジーシステムを設計する次のステップは、定義する言語要素に対応するメンバーシップ関数を作成することです。