タスク2.1 - 基本的な統計コレクターを構築する
タスクの概要
統計はモデルからデータを取得するために使用するデータの基本単位です。関心のある統計を取得するために使用する方法は、その統計がFlexSimでデフォルトで利用可能な標準統計であるかどうかによって異なります。標準統計でない場合は、統計コレクターを使用して独自のカスタム統計を作成できます。
このチュートリアルタスクでは、統計コレクターの基本的な機能について説明します。次の画像は、モデルからカスタム統計を収集するプロセスの主要フェーズの概要と、各フェーズで使用するFlexSimツールを示しています。
このチュートリアルタスクでは、このプロセスの最初の2つのステップ、イベントの追加とデータテーブルの設定に焦点を当てます。プロセッサがフローアイテムを処理するのにかかる時間をリッスンして記録する基本的な統計コレクターを設定します。
ダッシュボードチャートを統計コレクターのデータテーブルにリンクして、データを視覚化する方法についても学習します。
データ収集プロセスの詳細については、「データの取得についての主要な概念」と「統計コレクターを使用する」を参照してください。
ステップ1 基本的な3Dモデルを構築する
このステップでは、基本的な3Dモデルを構築します。このチュートリアルの主な焦点は、シミュレーションモデルからさまざまなデータを取得する方法であるため、3Dモデル自体はかなりシンプルです。
作業が完了すると、3Dモデルは次の画像のようになります。
このチュートリアルタスクでは、フローアイテムの処理時間に関するデータの収集に焦点を当てます。そのため、処理時間がランダムになるように、プロセッサの滞在時間に統計分布の使用を設定します。このチュートリアルでは、従来のベル曲線に似た正規分布を使用します。
この3Dモデルを構築するには、次の手順を実行します。
- ライブラリから次のオブジェクトをドラッグし、左から順に平面に配置します。
- 1つの[ソース]
- 1つの[キュー]
- 1つの[プロセッサ]
- 1つの[シンク]
- すべての3Dオブジェクトの末尾に1が付いていることを確認します(Source1、Queue1など)。必要に応じて名前を変更します。
- 次のポート接続(A接続)を作成します。
- Source1からQueue1
- Queue1からProcessor1
- Processor1からSink1
- [Processor1]をクリックして選択します。
- [クイックプロパティ]の[プロセッサ]グループで、[処理時間]ボックスの横にある矢印をクリックしてメニューを開きます。
- [統計分布]をポイントし、[正規]を選択して分布セレクターを開きます。
- ここでは、平均を
10.0
、標準偏差を2.0
に設定するデフォルトの正規分布設定を使用します。 - このウィンドウの外側をクリックして変更を保存します。
このヒストグラムには特に注意してください。これは、正規統計分布のグラフ表示です。このチャートには、可能な処理時間の統計的確率が表示されます。ほとんどの処理時間は9~11の間に収まり、他の処理時間の頻度は徐々に減少します。モデルからシミュレーションモデルの処理時間に関するデータを収集する場合、収集するデータはこの分布を反映します。
ステップ2 統計コレクターを設定する
このステップでは、モデルからデータを収集する新しい統計コレクターを作成します。このチュートリアルタスクの始めに説明したように、統計コレクターの設定には、一般に、イベントの追加とデータテーブルの設定の2つのフェーズがあります。
統計コレクターにイベントを追加する場合は、基本的にデータを収集するオブジェクトとイベントを指定します(イベントリスニングとも呼ばれます)。このモデルでは、プロセッサをリッスンし、処理フローアイテムの処理にかかる時間を記録するようにコレクターを設定します。FlexSimでは、この統計は通常、プロセッサの滞在時間と呼ばれます。次に、プロセッサによって処理される各アイテムの滞在時間を表示するシンプルなデータテーブルを設定します。
統計コレクターを設定するには:
- [ツールボックス]で[追加]ボタン をクリックして、メニューを開きます。[統計]をポイントし、[統計コレクター]を選択します。新しい統計コレクターのプロパティウィンドウが自動で開きます。
- ウィンドウの上部にある名前ボックスで、統計コレクターの名前を「ProcessingTimes」に変更します。
- [イベントリスニング]タブの[サンプラー]ボタン をクリックして、サンプリングモードに入ります。
- [Processor1]をクリックして、メニューを開きます。[滞在時間変更時]を選択して、このイベントをサンプリングします。このイベントが統計コレクターのイベントリストに表示されるようになります。
- [イベントの詳細]グループで[変更ルール]メニューをクリックし、[更新]を選択します。
- [パラメータ]テーブルで、[新しい値]パラメータの[ラベル名]を「ItemStaytime」に変更します。
- [データ記録]タブの[行]グループで、[行作成モード]が[イベントごとに追加]に設定されていることを確認します。
- [列]グループで、[追加]ボタン をクリックして新しい列をデータテーブルに追加します。
- [名前]ボックスで、列の表示名を「Staytime」に変更します。
- [値]ボックスの横にある矢印をクリックして、メニューを開きます。[イベントデータ]をポイントし、[イベントデータラベル値]を選択します。
- [値]ボックスに「
data.labelName
」と表示されます。ドットの後ろのテキストを削除して、「data.ItemStaytime
」に変更します。 - [適用]ボタンを押して変更を保存します。ここでは統計コレクターを開いたままにしておきます。
この時点でシミュレーションモデルを保存することをおすすめします。
ステップ3 データテーブルを表示する
このステップでは、データテーブルを開き、作成したばかりのProcessingTimes統計コレクターで収集される未加工データを表示します。シミュレーションモデルを実行し、データテーブルがリアルタイムで入力されるのを確認します。
- [ツールボックス]の[統計コレクター]グループで、[ProcessingTimes]コレクターを右クリックしてメニューを開きます。[テーブルを表示]を選択して、このコレクターのデータテーブルを開きます。現時点ではテーブルは空白になっています。
- シミュレーションコントロールバーの[リセット]ボタンを押します。この時点で[滞在時間]列がデータテーブルに表示されます。
- シミュレーションモデルを実行します。
モデルが実行されると、フローアイテムがプロセッサから出るたびに、滞在時間データがデータテーブルに入力されます。
また、このデータテーブルは、作成したばかりの統計コレクターの行と列の設定とも一致します。統計コレクターとデータテーブルの両方を閉じてください。
ステップ4 ヒストグラムチャートを作成する
このステップでは、チャートを作成して統計コレクターのデータを視覚化します。まず、チャートライブラリから、関心のあるデータをグラフィカルに表すチャートを選択します。次に、このチャートを統計コレクターにリンクして、データテーブルで収集されたデータを視覚化します。
ProcessingTimes統計コレクターは、プロセッサ内のアイテムの滞在時間に関するデータを収集しているため、このデータを表すにはヒストグラムが適しています。ヒストグラムは、シミュレーションモデルが実行される際の処理時間の頻度の傾向を表示できます。実際、このチュートリアルタスクの最初のステップでプロセッサの統計分布を設定した際、分布セレクターには正規分布のヒストグラムが表示されました。
ヒストグラムチャートを作成するには:
- メインツールバーの[ダッシュボード]をクリックしてメニューを開きます。[ダッシュボードを追加]を選択します。
- [チャート]グループのライブラリで、[ヒストグラム]チャートをダッシュボードにドラッグします。プロパティウィンドウが自動で開きます。
- プロパティの上部にある名前ボックスで、チャートの表示名を「処理時間」に変更します。
- [データ]タブで[データソース]メニューをクリックし、[ProcessingTimes]を選択します。
- [値]メニューに、統計コレクターのデータテーブルの唯一の列である[滞在時間]が表示されていることを確認します。
- [OK]ボタンを押して変更を保存し、ウィンドウを閉じます。
モデルをまだリセットしていない場合は、ヒストグラムが更新され、これまでにProcessingTimesデータテーブルに収集されたデータが表示されます。
ステップ5 シミュレーションモデルを実行する
このステップでは、フローアイテムの処理時間に関する代表的なデータを取得するのに十分な期間、シミュレーションモデルを実行します。
- シミュレーションコントロールバーで、[実行速度]の横にある矢印をクリックしてプロパティを開きます。[カスタム]ボックスに「500」と入力し、[設定]ボタンを押します。
- モデルをリセットして実行します。
モデルが実行されると、ヒストグラムチャートが表示されます。
処理時間チャートは、時間の経過とともに徐々にベル曲線のように表示されるようになります。正規統計分布を使用して処理時間をランダムに割り当てたため、シミュレーションモデルから処理時間全体のデータを正常に収集できました。
結論
これで、このチュートリアルタスクが完了し、統計コレクターの基本的な使い方をよく理解できるようになりました。次のチュートリアルタスクでは、統計コレクターを使用して複数のオブジェクトからデータを収集して比較する方法について学習します。「チュートリアル2.2 - 複数のオブジェクトからデータを取得する」に進みます。