B.2 シミュレータ本体
B.2.1 処理系
処理系はシミュレータ本体のコアな部分であり,下記の部分からなり,MITRAMからの 基本思想が一部引き継がれている.
★シミュレータ制御
図B.2は本シミュレーションシステムの操作パネルである.
図 B.2 UFSfOMの操作パネル
シミュレータ制御は,シミュレーションのステップ管理や回数の制御,サイクル時間間 隔制御など ,表B.1のような機能を有する.
表 B.1 操作パネルの機能
ファイル(File) PWC構成入力,データの入出力コマンド
表示(View) 内部状態,入出力一覧表,グラフ表示コマンド 設定(Setting) 表示有効数字,アニメ間隔(ナシ,20m秒〜1秒)
自動ステップ回数(Run one cycle) 4,095回まで設定可 初期データ再入力(Reload initial data)
結果保存(Save result) シミュレーション結果の出力コマンド
現ステップ数(Step counts) 手動ステップ,クリア機能付
自動保存(Auto save) シミュレーション結果をステップ毎に保存
ツール呼出 PWC,CBRF,FIU,In dataの起動コマンド さらに,パネルの下部に並ぶ各種モデル構築ツールの呼出し機能もある.
★ 多段論理演算機構
PWCを構成するすべてのCBRFおよびその下位のPEに対し ,すべてのエージェント の推論や演算・判断の制御を行う(MITRAMからの拡張).
MITRAMでは下位から,
全FMV(Fuzzy Model Vehicle:自動車)→ 全FIU
の順に2重の演算サイクルを回して,1ステップのシミュレーション結果を得ていた.
UFSfOMではこの上位にさらにCBRFのサイクルが加わり,
全エージェント(プレーヤ)→ 全PE → 全CBRF
と3重のサイクルを通じて,1ステップのシミュレーションが終わる.なお要素名は,対象 が自動車から一般に変わったので,ふさわしい形に改めた.
いずれも最下位のサイクルでFuzzy推論や組込み関数およびユーザー作成のテーブルルッ クアップ関数の補間などの処理を行っており,その上位では必要なデータの供給とサイク ルの管理のみを行っている.
★ Fuzzy推論エンジン
FIU(Fuzzy関数)を割当てられたすべてのPEに対し,Fuzzy推論を実行する.
すでに述べた通り,MITRAMのViewerでのあらかじめFuzzy推論した結果を用意して 読込むという,テーブルルックアップ型の処理は止めて,その都度Fuzzy推論を実行する 形にした.
実際の推論エンジンは,Fuzzy推論構築ツールのFIU Builderで,構築中に推論結果を表 示できるようにした推論エンジンを移植しただけである.MITRAMのときは入出力値の 変域(台集合)を256分割していた演算精度を16倍の4,096分割にし,より高精度にFuzzy 推論が実行できるように拡張した.もちろん FIU Builder内の推論エンジンも同じ精度で 演算している.
★ 組込み関数処理
組込み関数はUFSfOMで用意された新しい機能で,MITRAMではこれもテーブルルッ クアップ方式のライブラリとしてFIUと同じように読込んで使っていた.
自動車運転のモデリングとは異なり,一般的なモデル作成ではかなり多くの組込み関数 を必要とするので,実際に表A.2のように50種ほどの非Fuzzy演算・判断機能を用意した.
これらの関数が割当てられたPEに対しては,対応する内部プログラムで直接演算・判断 を実行することで,テーブルルックアップよりも演算速度の高速化が図られた.
以前から発表・提供されているシミュレータでは,これらの関数はJavaなどのプログラ ム言語に頼ってモデルを構築する傾向にあるが,敢えて図A.2のようにFIUと同じ空間に 並列的に並べることで,モデルの視認性を上げている.
この点は,従来のシミュレータにおける,シーケンシャルなプロセッシングをベースと したシミュレーションモデルの作成方法と,大いに異なる点である.
★ テーブルルックアップ
Fuzzy関数以外の関数は,組込み関数として用意されたもの以外には,ユーザーが自分
で作成するか,すでに別途作成されているものを使うことになる.
これらは,2項関数のテーブルとしてMatoSimに読込まれる.ファイル形式は*.csvを採 用しているので,関数自体はExcel等で作成して用意することができる.
ただし,Fuzzy処理と同じ精度を出そうと思うと,2進データでも4k×4k×32 bits=64M
Bytesと非常に大きなファイルサイズになるために,通常は変域を1,024分割したテーブル
を読込んで使うことにした.
入力値1(13.2)
入力値2
0 変域 68.9
-23.50
0 4095
180 0
域変
4095
(96.3)
1626 1627
2190
2191
1063.461 1063.599 1063.066
1063.527
1063.081
図 B.3 テーブルルックアップの補間
変数値がテーブル上にないときは,入力値の近傍4点の関数テーブルの値を使って,直 線補間近似で図B.3のようにして出力関数値を求めている.