事例 【FMU】最小構成のMBD事例 第2章 その54【FMILibrary⑪】 シミュレーション時間とシミュレーションステップはFMUの外側の制御の仕方次第で確定する。 FMU処理自体はfmi2_import_do_stepという関数の中で指定時間分実施する動き。 サンプルプロジェクトfmi2_import_cs_testの場合はhstepとtendを調整すればOK。 時間は「秒」である点に注意。 2021.07.30 事例
事例 【FMU】最小構成のMBD事例 第2章 その53【FMILibrary⑩】 fmi2_import_cs_testの実行結果のうちシミュレーション部分のところだけ抜き出し。 Ball heightとBall speedのパラメータがある。 本シミュレーションはボールを投げたあとのバウンドに伴うボールの高さと縦方向の速度を示したもの。 Excelでグラフ表示してみたところ確かにそんな感じ。 2021.07.29 事例
事例 【FMU】最小構成のMBD事例 第2章 その52【FMILibrary⑨】 fmi2_import_cs_testの起動時パラメータ確認。 FMUとテンポラリディレクトリのPathを設定。 実行と結果を取得。 「log level = VERBOSE」ってのはFMILibraryの内部のデバッグログ。 Ball height、Ball speedとその次に続いている数値がシミュレーション上重要。 2021.07.28 事例
事例 【FMU】最小構成のMBD事例 第2章 その51【FMILibrary⑧】 fmi2_import_cs_testの引数について確認。 fmu_fileとtemporary_dir。 fmu_fileはその名の通りFMUを指定。 今回はFMI2.0且つCSのFMUであるBouncingBall2_cs.fmuが該当。 temporary_dirはFMUを展開するためのワーク用。 2021.07.27 事例
事例 【FMU】最小構成のMBD事例 第2章 その50【FMILibrary⑦】 FMILibraryのサンプルプロジェクトを確認。 大量にある。 今回はfmi2_import_cs_testを使用。 すでにビルド済みのものが存在。 fmi2_import_cs_testは引数を要求するタイプの実行プログラム。 よって、ただ起動しただけでは何もしてくれない。 引数については次回説明予定。 2021.07.26 事例
事例 【FMU】最小構成のMBD事例 第2章 その49【FMILibrary⑥】 再びFMILibraryのビルドにチャレンジ。 今回は無事ビルドが通った。 ライブラリが生成されたのも確認。 その後、指定したインストール先にライブラリ及びヘッダファイルが配置された。 FMILibraryビルド時にサンプルプロジェクトが生成されているので、今後はこれをベースに話を進める予定。 2021.07.25 事例
事例 【FMU】最小構成のMBD事例 第2章 その48【FMILibrary⑤】 FMILibraryのビルドエラーの原因究明。 stddef.hにoffsetofが定義されていなかった。 厳密にはC++向けには定義されていたが、C言語向けには定義されていなかった。 Visual Studio自体がC++を想定した環境であるためC言語のケアが薄いためなのかもしれない。 2021.07.24 事例
事例 【FMU】最小構成のMBD事例 第2章 その47【FMILibrary④】 cmakeの前回のコマンドを使ってコンフィグレーション開始。 問題無く完了。 そのままcmakeでビルド開始。 ビルドの途中でエラーが発生。 xmlparse.cの中でBLOCKとsという構造体とメンバ変数の絡みでエラーが起きたようだが・・・。 とりあえず、頑張って調べてみる。 2021.07.23 事例
事例 【FMU】最小構成のMBD事例 第2章 その46【FMILibrary③】 FMILibraryのビルド手順を確認。 開発者コマンドプロンプト起動、cmakeでビルド、ライブラリインストール。 cmakeへのオプションがちょっとややこしい。 FMILIB_INSTALL_PREFIXでインストール先。 FMILIB_FMI_PLATFORMでプラットフォーム。 -Gでビルドする環境指定。 2021.07.22 事例
事例 【FMU】最小構成のMBD事例 第2章 その45【FMILibrary②】 バックナンバーはこちら。 はじめに 前回、C言語からのFMU/FMI制御するライブラリとしてFMILibraryというものが存在することが分かった。しかし、ビルド済みのものはwin32版のみ。欲しいのはwin64版。よって、win64版をソ... 2021.07.21 事例