Civil Engineer's Forum-FORUM8
このページをスタートページに設定する QR

Facebook - FORUM8

Twitter - FORUM8

YouTube - FORUM8

 サイトマップ | ご利用条件 | お問い合わせ | 英語翻訳サイト | Japanese | English | Korean | CHS/CHT | Vietnam | Francais | Europe

10
xpswmm、マイクロシミュレーション
xpswmmプラグインは、流出・氾濫解析シミュレーションが行えるxpswmmの解析結果を時刻歴のステップ毎にOpenGLで描画します。また、マイクロシミュレーションプレーヤーは、UC-win/Road の3D モデルや3D キャラクタをシミュレーションの要素に割り当て、各要素の動きを表示して析結果を可視化します。ここでは、これらとの連携について説明します。
 xpswmmプラグイン

 xpswmm による流出・氾濫解析結果をUC-win/Road へインポートし、氾濫流の描画、下水道網の描画、および管内流の描画を行い、時刻歴に基づくシミュレーションをUC-win/Road上で表現するプラグインツールです。xpswmm 本体にもアニメーション機能、ビューア機能が備わっていますが、UC-win/RoadのVR 機能を用いることで、計算結果の確認をVR 空間で可視化することが可能になります。

図1 キャラクタの移動の再現の仕組み

 以下に、xpswmm の計算結果をUC-win/Road へインポートして行う描画の方法を紹介します。

氾濫流による浸水エリア、浸水深の描画
 [下水道から溢水]→[溢水した水による地表面氾濫]→[氾濫流の下水道への戻り]といった、氾濫発生から収束までの一連の水理現象に関して、時刻歴に基づいた浸水エリアと浸水深の描画を自動的に行います。

 xpswmmでは、解析領域を細かなメッシュに分けて解析を行っています。解析領域におけるメッシュ格子点での各水位が保存されたファイルを読み込み、水位毎に色分けして描画しています。時刻歴毎のデータが存在すれば、ツールバーを利用してステップ毎の状態を確認することができます。

画像をクリックすると大きな画像が表示されます。
図2 キャラクタの移動の再現の仕組み

氾濫流による流速ベクトルの描画
 氾濫流の流速・方向について、時刻歴に基づいたベクトル表示が可能です【図04】。氾濫流の流れの様子がより分かりやすくビジュアルで確認できます。xpswmm での時刻歴毎の各格子の流速解析結果をUC-win/Road へ読み込み、グリッド四隅の流速の平均をその位置の流速として、方向を加味した矢印で表面流の情報と共に描画しています。

画像をクリックすると大きな画像が表示されます。
図3 氾濫流による流速ベクトルの描画例

下水道網の描画
 下水道管およびマンホールからなる下水道網の敷設状況を3D・VR 上で描画することができます【図05】。xpswmm の出力機能を利用して出力した下水道網で使用しているマンホール(ノード情報)やパイプ(リンク情報)をUC-win/Road へ読み込み、OpenGL の円柱描画機能を使用して描画しています。

図4 管内流の描画

管内流の描画
 下水道網の管内流について、時刻歴に基づいた管内水面の上昇・下降、流速ベクトルを描画できます【図06】。xpswmm の1D 結果データから水流解析結果をUC-win/Road へ読み込み、下水道網の各部対応した時刻歴での各ステップに対応した水位を描画します。水位と共にパイプ管内では水流の速度をオプションで設定した長さに置き換えた矢印で同時に描画します。

画像をクリックすると大きな画像が表示されます。
図5 管内流の描画


 xpswmm の主要機能

 プラグインには、xpswmm ツールバー、データインポート画面、氾濫流画面オプション、下水道網描画オプションの各画面があり、それらのオプションを基にツールバーで時刻を制御しながらUCwin/Road 上に各データを描画しています。

ツールバー
 プラグインを読み込むと、メイン画面にxpswmm 用のツールバー【注2】が表示されます【図07】 。ツールバーでは、xpswmm から出力された解析結果ファイルの読み込み、シミュレーションの制御(時間設定、アニメーションの実行、停止など)が行えます。

図6 ツールバー

解析結果インポート画面
対応する表面流、下水道網、管内流のデータを選択し、現在のUC-win/Road プロジェクト上へ読み込みます【図08】。読み込みと同時に、xpswmm の座標情報とUC-win/Road の座標情報の関連付けも行っています。

画像をクリックすると大きな画像が表示されます。
図7 解析結果インポート画面

氾濫流描画オプション画面
 表面流の解析結果データのUC-win/Road 上での描画方法などを設定します。

画像をクリックすると大きな画像が表示されます。
図8 氾濫流描画オプション画面

管内流描画オプション
 マンホール、パイプ内の水流のUC-win/Road 上での描画方法などを設定します。

画像をクリックすると大きな画像が表示されます。
図9 管内流描画オプション画面


 プラグイン開発のポイント

 ここでは、xpswmm プラグインを開発する際のポイントについて紹介します。

ツールバーの追加と削除
 ツールバーをメイン画面に追加するには、IF8Application.mianForm.AddTolbar() を使用します。TToolbar を追加したフォームTForm を定義し、上のインタフェースでメイン画面にプラグイン用のツールバーを追加します。プラグインで追加したツールバーは、プラグインを削除する場合など、不要になった時点でIF8Application.mianForm.RemoveTolbar() を使用して削除
します。

画像をクリックすると大きな画像が表示されます。
図10 TForm の例

//ツールバーの追加
var
   toobarForm : TForm; //上のTToolbarを貼ったフォーム。
begin
ApplicationService.mainForm.AddToolBar(toolbarForm.toolbar,'ToolbarName');
end;
//ツールバー削除
var
   toobarForm : TForm; //上のTToolbarを貼ったフォーム。
begin
ApplicationService.mainForm.RemoveToolbar(toolbarForm.toolbar);
end;

メッシュの描画
 表面流などのメッシュの描画はIF8OpenGL.PaintScene で行っていますが、数千、数万のグリッドがあるので、あらかじめすべての情報を配列にまとめ、OpenGL の頂点配列を利用したglDrawElement(s【)注3】を使用して描画しています。以下はソースコードの一部になるので、詳細は別途OpenGL 解説書などを参照してください。

var
   color_array : array of GLPointType;
   vertex_array : array of GLPointType;
begin
// 頂点色の配列の設定
SetLength(color_array, numberOfPoint);
color_array[0] := ….
color_array[1] := ….
...
color_array[n] := ….
// 頂点座標の配列の設定
SetLength(vertex_array,numberOfPoint);
vertex_array[0] := …
vertex_array[1] := …
...
vertex_array[n] := …
// 頂点配列色を追加
glEnableClientState(GL_COLOR_ARRAY);
glColorPointer(3,GL_FLOAT, 0, @(color_array[0]));
// 頂点配列座標を追加
glEnableClientState(GL_VERTEX_ARRAY);
glVertexPointer(3, GL_FLOAT, 0, @(vertex_array[0]);
// 描画関数のコール
glDrawElements(GL_QUADS, HIGH(vertex_array)*4, GL_
UNSIGNED_INT, @(vertex_array[0]));
end;

コンタ描画
 ポリゴンの頂点に色を設定すると、ポリゴン内で色のグラデーション表示が可能になります。


 この図のOpenGL に関するソースコードは以下の通りです。

glClear(GL_COLOR_BUUFER_LIST);
glShadeModel(GL_SMOOTH);
glDisable(GL_CULL_FACE);
glDisable(GL_LIGHTING);
glBegin(GL_TRIANGLES);
   glNormal3f(0,0,1);
   glColor3f(1.0,0,0);
   // 左下の頂点の色を赤に設定
   glVertex3f(-10,0,0);
   glColor3f(0,1.0,0);
   // 右下の頂点の色を緑に設定
   glVertex3f(10,0,0);
   glColor3f(0,1.0,0);
   // 上側の頂点の色を青に設定
   glVertex3f(0,10,0);
glEnd;
glEnable(GL_LIGHTING);
glEnable(GL_CULL_FACE);

 このプラグインは頂点配列を使用ているので、glColorpointer()を用いて水位標高による色分けを行うことにより、解析領域全体の水位差のグラデーション表示が可能になります。水位差による色設定はオプション画面で設定します。


 マイクロシミュレーション結果との連携

 UC-win/Road には、マイクロシミュレーションの結果を可視化できるツールとしてマイクロシミュレーションプレーヤーがあります。UC-win/Road の3D モデルや3D キャラクタをシミュレーションの要素に割り当て、各要素の動きを表示することで、解析結果を可視化します。この解析結果と容易に連携するために、xml ベースのOpenMicroSim というファイル形式が用意されています、この章では、OpenMicroSim フォーマットへの変換アルゴリズムの事例を紹介します。

OpenMicroSim
 OpenMicroSim によってターゲットとなるメインプログラムは、ソフトウェアプログラム間のシミュレーション結果の変換になります。たとえば、OpenMicroSim は、あるシミュレーションソフトウェア「A」から、「A」の結果を考慮する必要がある別のシミュレーションソフトウェア「B」へのデータ変換に役立ちます。そのほかにも、可視化ツールとしてシミュレーション結果をエクスポートするアプリケーションが可能になります。

 OpenMicroSim はエンティティの展開を記録するデータ構造を指定しています。このデータ構造では、あらゆるタイプのシミュレーションを記録できるような柔軟なデータの形式を保持することを試みています。 

 OpenMicroSim には、ある要素について複数の属性を保存できるようなデータ構造が用意されています。特に、要素の「タイプ」という属性は、マイクロシミュレーションプレーヤーで3Dモデルを割り当てる場合に必要な情報です。各要素の情報は時間に関連付けられており、基本的に、各要素の状態の時刻歴が保存されています。要素の状態としては位置、方向および自由な属性を保存することが可能です。時間によってシミュレーション結果を表現するので、時刻と位置情報が最低限の情報として必要になります。OpenMicroSim にあるいくつかのタグと属性が、マイクロシミュレーションプレーヤーで利用できます。下記の項目に注意しながらファイルを作成しましょう。

シミュレーション
Units(単位):シミュレーションデータの中で使用されている各単位を定義。メートル法での長さ、時間と角度の単位が選択可能。

要素の状態
Time(時刻属性):時刻属性は再生時の状態定義に使用される。<P>(位置タグ):位置タグはオブジェクトの配置や位置の更新に使用される。
<D>(方向タグ):方向タグはシーン内でのオブジェクトの方向を示す3 つの角度を定義。UC-win/Road では0 がデフォルト値です。ヨー角がY 軸になる。
Transition(位置補間方法タグ):再生中に要素の状態が定義されていない時刻に、前と後の状態から位置を補間する処理の方法を定義。

フレームの概念
 OpenMicroSim ファイルにはフレームというタグがあります。
1 つのフレームでは、ある時間から別の時間までのシミュレーション結果を保存します。シミュレーション全体を1 つのフレームに保存したり、幾つかのフレームに分割して保存することも可能です。たとえば、0.5 秒毎に計算を行うシミュレーションを0.5 秒間隔のフレームで保存すれば、ファイルの中でデータを時刻にそって保存させることになります。
 1 つのフレームの中ではデータが要素ごとに並ぶので、1 つのフレームでシミュレーションを保存する場合は、各要素のすべての情報をメモリ上で保持し、シミュレーションが終了したた後にファイルを保存する必要があります。複数のフレームを使えばシミュレーション途中までの結果をファイルに保存できるので、長いシミュレーションの場合は必要なメモリ容量を減らすために複数のフレームを使います。

//XMLヘッダー
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<Simulations> 
//シミュレーションのリスト、この例では1つのシミュレーション
   <Simulation Name="UC-win/Road Micro Simulation Sample" Length="120">
     //シミュレーションのヘッダー
   <Units AngularUnit="Radian" LengthUnit="Meter"TimeUnit="Second" />
     //シミュレーションで使用されている単位の定義
   <Frames>
     //シミュレーションのフレームのリスト。10秒置きにフレームを保存
    <Frame Time="0" Length="10">  //1つ目のフレームのヘッダ
      <FixedElmt ID="8403" Type="Traffic Light"Description="Traffic Light with Pole">
         //静止要素の定義、ここでは信号機です。

   <St T="0.02" Val="Green">
        //最初の状態の定義、信号の色は青です。
       <P>7661.93 2232.91 130.34</P> //位置情報
       <D>0.82 0 0</D> //方向
   </St>

   <St T="9.36" Val="Yellow">
        //次の状態(状態の更新)、信号の色は黄色です。
      <P>7661.93 2232.91 130.34</P> //位置情報
      <D>0.82 0 0</D> //方向
   </St>
  </FixedElmt>
   <MovingElmt Mesh3D="Coupe.rm" ID="1963903"Type="Coupe" Description="Coupe">
      //移動する要素の定義、ここでは「Coupe」という自動車です。
   <St T="0.07">
      //最初の状態の定義、0.07秒から始まります。
    <P>8412.27 1576.78 139.83</P>//位置情報
    <D>-2.52 0.01 -0.00</D>//方向
   </St>

   <St T="0.60">
      //状態の更新、ここでは姿勢情報のみを更新します。
   <P>8411.69 1575.92 139.82</P>//位置情報
   <D>-2.53 0.00 -0.00</D>//方向
  </St>

  <St T="0.96"> //状態の更新
   <P>8411.10 1575.04 139.81</P>//位置情報
   <D>-2.53 0.00 -0.00</D>//方向
  </St>

  <...省略...>
</MovingElmt>
</Frame>
<Frame Time="10" Length="10">

<...省略...>
</Frame>

<...省略...>
</Frames>
</Simulation>
</Simulations>


有償セミナーのお知らせ
 UC-win/Road SDKセミナー
日時 2012年 11月6 日(火) 9:30 〜 14:30
受講費 1 名様 \18,000(税別)
本会場 フォーラムエイト東京本社 GTタワーセミナールーム
TV会議システムにて東京・大阪・名古屋・福岡・仙台同時開催

     
前ページ    インデックス    次ページ
(Up&Coming '12 秋の号掲載)
戻る
Up&Coming

FORUM8


お問合せ窓口




[ ユーザー紹介 ]
若鈴コンサルタンツ株式会社 計画事業部
名古屋大学 情報学研究科 心理・認知科学専攻 認知科学講座 川合研究室
合同会社 KUSAMA DIGITAL WORKS
[ イベントプレビュー ]
ミラノサローネ2024出展






>> 製品総合カタログ


>> プレミアム会員サービス
>> ファイナンシャルサポート

最近リリースした製品
3次元鋼管矢板基礎の設計計算(部分係数法・H29道示対応) Ver.4
UC-1・UC-1 Cloud 統合版 BOXカルバート
電子納品支援ツール Ver.17
柔構造樋門の設計・3D配筋 Ver.17
建築杭基礎の設計計算 Ver.10

キャンペーン実施中
ライセンス同時購入キャンペーン
F8NFTSリリースキャンペーン
レジリエンスアワード特別賞受賞記念キャンペーン

セミナー・イベントカレンダー
開催間近のセミナー
4/2  ブロックUIプログラ
  ミングツールで学ぶ
  ジュニア・プログラミング
4/3  動的解析
4/4  下水道耐震設計体験
4/5  Shade3D-F8VPS
  メタバース入門

ソフトウェア/支援サービス
VRソフト(バーチャルリアリティ)
《UC-winシリーズ》
・道路・シミュレータ
・ドライブ・シミュレータ
・マイクロ・シミュレーション
・避難解析・シミュレーション
>>その他VRソフト
FEM解析ソフト
・3次元プレート動的非線形解析
・2次元動的非線形解析
・総合有限要素法解析システム
>>その他FEM解析ソフト
土木・建築・設計ソフト
《UC-1シリーズ》
・構造解析/断面
・橋梁上部工
・橋梁下部工
・基礎工
・仮設工
・道路土工
・港湾
・水工
・地盤解析
・CAD/CIM、建設会計
・維持管理・地震リスク
・建築
・船舶/避難
>>その他土木・建築・設計ソフト
クラウド
《スパコンクラウド®》
・スパコンクラウドサービス
《VR-Cloud®》
・リアルタイムVRシステム
解析支援サービス/サポート
・UC-win/Roadサポートシステム
・設計成果チェック支援サービス
・Engineer's Studio®解析支援
・地盤解析支援サービス
・EXODUS/SMARTFIRE解析支援
・xpswmm解析支援サービス
・建物エネルギーシミュレーション
・3Dレーザスキャン・モデリング
・3D模型サービス
・3D報告書・図面サービス
>>その他支援サービス
各種ソリューション
・耐震診断/解析
・鋼橋設計
・橋梁新工法
・建築設計
・自治体
・医療系VRシステム
・パーキングソリューション
・ECOソリューション
>>その他ソリューション