合同会社小村ソフト
第 5 章

スライダで体感する

手計算で追ってきた数字が、実際のシミュレータではどう見えるかを確認する。

ここからは下のシミュレータを使います。初期値は 26℃・68% にしてあり、第 2〜4 章で追った例がそのまま表示されます。まずは自分の手計算と画面の数値が一致するかを見てください。

シミュレータの構成 (テキスト版)

シミュレータには次の領域があります。JavaScript が動かない環境ではグラフは表示されませんが、構成だけはここから把握できます。

  1. 入力スライダ: 室温 (16〜34℃, 0.1 刻み) と湿度 (20〜90%, 1 刻み) の 2 本。
  2. プリセットボタン: 「快適な昼 (24℃・55%)」「梅雨どき (25℃・80%)」「真夏 (32℃・60%)」「乾いた寒い日 (18℃・30%)」「境界を観察 (26.8℃・69%)」の 5 つ。
  3. 出力リードアウト: ファジィ制御の出力 (%) とラベル (弱/中/強) を上に大きく、しきい値制御の出力との差分を下に並べます。
  4. 集約出力グラフ: 出力軸 0〜100% にクリップ後の山と重心位置 (縦線) を描いた、デファジィ化の主役のグラフ。
  5. 所属度グラフ 2 枚: 温度・湿度それぞれのメンバーシップ関数と現在値を重ねたもの。
  6. 発火ルール一覧: 9 ルールのうち発火度 > 0 のものを発火度の値とともに表示します。
  7. 計算メモ表: 所属度・発火度・集約高さ・最終出力を 1 表に並べた、手計算と突き合わせるためのテキスト版要約。
  8. 温度スイープグラフ: 湿度を固定したときの「温度 vs ファジィ出力」と「温度 vs しきい値出力」を重ね描きしたもの。

4 つの主要グラフが何を表すか

1. 集約出力 (aggregated)
出力軸 (ファン強度 0〜100%) に対して、各ルールの主張 μ_agg(x) をクリップして重ね合わせた山。重心法はこの山の重心 x 座標を読み取ります。
2. 重心 (centroid)
集約出力グラフの中に縦線で表示される、計算された重心位置です。これがそのままファジィ出力値になります。
3. ファジィ出力 (fuzzy output)
重心の x 座標を 1 つの数値として読み出した最終結果。リードアウトに大きく表示される %値です。
4. しきい値出力 (threshold output)
比較用の参照値です。第 1 章で示したしきい値テーブルを同じ入力に適用したときの 20 / 50 / 85% のいずれか。

入力を動かす

温度と湿度を変えると、所属度・発火しているルール・集約出力がリアルタイムで更新されます。

ファジィ制御の出力
62.1 %
中くらい
しきい値制御 50 % / 中くらい
差分メモ ファジィは段差の手前から少しずつ出力を動かします。
集約出力 重心 ファジィ出力 しきい値出力

出力側で何が起きているか

弱風 / 中風 / 強風の山を切り取り、max で重ね、重心を 1 点として読み取っています。

温度の所属度

湿度の所属度

いま発火しているルール

境界にいると複数ルールが同時に点灯します。これが段差を滑らかにする源です。

計算メモ

手計算と見比べるための要約です。所属度・集約高さ・出力値を一覧で表示します。

温度を変化させたときの比較

現在の湿度を固定して、室温 16〜34℃ に対する出力を描いています。灰色の破線がしきい値制御、青がファジィ制御です。

観察するときのポイント

  1. 初期値 26℃・68% で、第 4 章の結果 中風 0.50 / 強風 0.25 / 出力 約 62.05% と一致するかを確認する。
  2. プリセット 境界を観察 を押し、しきい値出力は 50 のままなのに、ファジィ出力は 70% 付近まで先に持ち上がる様子を見る。
  3. プリセット 快適な昼 を押し、発火ルールが 1 本だけになるとグラフもきれいな 1 山になることを見る。
  4. プリセット 真夏 を押し、強風ラベルだけがほぼ全面に残る状態を見る。

理解チェック 5 — シミュレータの数値を読み取る

下のシミュレータを動かして答えます。小数は表示値どおり 1〜2 桁で十分です。

Q1. 初期値 26℃・68% で表示されるファジィ出力はおよそいくつですか。

%

Q2. プリセット『境界を観察』(26.8℃・69%) にすると、発火しているルールは何本ですか。

Q3. プリセット『境界を観察』で表示されるファジィ出力はおよそいくつですか。

%

Q4. プリセット『快適な昼』(24℃・55%) にすると、発火しているルールは何本ですか。