【PyFMI】最小構成のMBD事例 第2章 その108【リアルタイム描画②】

【PyFMI】最小構成のMBD事例 第2章 その108【リアルタイム描画②】 事例
【PyFMI】最小構成のMBD事例 第2章 その108【リアルタイム描画②】

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回は、PyFMIのダミーFMUによる時間同期の課題について整理。
一言で言うと、FMU側の処理時間の方が長い状態になると、いままでの時間同期の手法は使えなくなる。
特にリアルタイムな描画処理などを入れるとこの課題は顕著になると思われる。
対策としては、
「実時間に対してシミュレーション時間を追いつかせる。」

当然これを実験するためにいろいろ作成する必要が出てくるだろう。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

実験方針

太郎くん
太郎くん

とりあえず、前回ので実時間との同期に課題があるのはわかったけど、
どういう構成で確かめるの?
リアルタイムな描画処理が割とクリティカルな問題になりそうな言いっぷりだったと思ったけど。

フクさん
フクさん

まさにそのクリティカルな問題が発生する構成を考える。

太郎くん
太郎くん

となると、シミュレーションしながらリアルタイムで波形表示しちゃう感じか!

フクさん
フクさん

そうなるねー。

太郎くん
太郎くん

うーん、なんかできるイメージがわかない・・・。

フクさん
フクさん

加えて以下もできるようにしておきたい。

  • スライダー等で入力を手動操作。
  • sin波、のこぎり波などを入力。
  • リアルタイム表示の一時停止。
太郎くん
太郎くん

なんかいろいろやること増えてない?
スライダーで手動操作とかGUI必須だし、Pythonでそんなことできるの?

PythonでGUI

フクさん
フクさん

一応PythonでGUIは作成可能だ。
いろいろ種類はあるが、
今回はtkinterを使おうとおもう。

太郎くん
太郎くん

tkinter?

フクさん
フクさん

Python公式から引用

tkinter パッケージ (“Tk インタフェース”) は、 Tk GUI ツールキットに対する標準の Python インタフェースです。 Tk と tkinter はほとんどの Unix プラットフォームの他、 Windows システム上でも利用できます。 (Tk 自体は Python の一部ではありません。 Tk は ActiveState で保守されています。)

Python公式サイトより(https://docs.python.org/ja/3/library/tkinter.html)
太郎くん
太郎くん

Tk?

フクさん
フクさん

まぁスクリプト言語向けのGUIツールキットなんだが、
これはWikipediaから引用しよう。

Tkは、GUIを開発するための、オープンソースの、クロスプラットフォームのウィジェット・ツールキットである。デスクトップ・アプリケーションを開発するために通常必要な、ボタン、メニュー、テキスト、フレーム、ラベルなどのウィジェットを提供する。カリフォルニア大学バークレー校の John Ousterhout によって、スクリプト言語 Tclの拡張として開発された。Tk は “Tool Kit” の略である。Unix系OS、Macintosh、Microsoft Windowsなどに移植されている。

Wikipediaより(https://ja.wikipedia.org/wiki/Tk_(%E3%83%84%E3%83%BC%E3%83%AB%E3%82%AD%E3%83%83%E3%83%88))
太郎くん
太郎くん

ウィジェット?
Tcl?
(調べれば調べるほど知らない用語が増えてくパターンや)

フクさん
フクさん

ウィジットGUIの部品のことだね。
ウィンドウそのものだったり、ボタンとかスライダーとか。

フクさん
フクさん

Tclは・・・まぁそういうスクリプト言語としたいいようがないな。
Tcl/Tkという呼び方をするようにTkを最初に組み込むことを想定した言語だ。
昨今だとTkだけ分離してtkinterのようにPythonから呼ばれるようになった。
というわけだ。

太郎くん
太郎くん

まぁいろいろ歴史がありそうだけど、
スクリプトと相性の良いGUIツールキットのTkってのがあって、
Pythonからもそれを使えるってことだね。

フクさん
フクさん

正解だ。

フクさん
フクさん

というわけで少しTkについても調べていくことになる。

まとめ

フクさん
フクさん

まとめだよ。

  • 実験環境は「シミュレーションしながらリアルタイムで波形表示」。
  • 上記以外にも以下を組み込む。
    • スライダー等で入力を手動操作。
    • sin波、のこぎり波などを入力。
    • リアルタイム表示の一時停止。
  • tkinterを使用する予定。
    • Tk GUIツールキットをPythonから呼ぶライブラリ。

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました