chevron_left

メインカテゴリーを選択しなおす

cancel
KEI
フォロー
住所
未設定
出身
未設定
ブログ村参加

2020/02/11

arrow_drop_down
  • 【FMU】最小構成のMBD事例 第2章 その55【FMILibrary⑫】

    fmi2_import_cs_testのシミュレーションステップとシミュレーション時間を変えてみた。 上記のシミュレーションを実行。 精度を細かくしたのと、シミュレーション時間を延ばしたことでデータ量は増えた。 グラフで確認。 前回の100msサンプリングと同じ特性で精度、時間が変わっていた。

  • 【FMU】最小構成のMBD事例 第2章 その54【FMILibrary⑪】

    シミュレーション時間とシミュレーションステップはFMUの外側の制御の仕方次第で確定する。 FMU処理自体はfmi2_import_do_stepという関数の中で指定時間分実施する動き。 サンプルプロジェクトfmi2_import_cs_testの場合はhstepとtendを調整すればOK。 時間は「秒」である点に注意。

  • 【FMU】最小構成のMBD事例 第2章 その53【FMILibrary⑩】

    fmi2_import_cs_testの実行結果のうちシミュレーション部分のところだけ抜き出し。 Ball heightとBall speedのパラメータがある。 本シミュレーションはボールを投げたあとのバウンドに伴うボールの高さと縦方向の速度を示したもの。 Excelでグラフ表示してみたところ確かにそんな感じ。

  • 【FMU】最小構成のMBD事例 第2章 その52【FMILibrary⑨】

    fmi2_import_cs_testの起動時パラメータ確認。 FMUとテンポラリディレクトリのPathを設定。 実行と結果を取得。 「log level = VERBOSE」ってのはFMILibraryの内部のデバッグログ。 Ball height、Ball speedとその次に続いている数値がシミュレーション上重要。

  • 【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を展開するためのワーク用。

  • 【FMU】最小構成のMBD事例 第2章 その50【FMILibrary⑦】

    FMILibraryのサンプルプロジェクトを確認。 大量にある。 今回はfmi2_import_cs_testを使用。 すでにビルド済みのものが存在。 fmi2_import_cs_testは引数を要求するタイプの実行プログラム。 よって、ただ起動しただけでは何もしてくれない。 引数については次回説明予定。

  • 【FMU】最小構成のMBD事例 第2章 その49【FMILibrary⑥】

    再びFMILibraryのビルドにチャレンジ。 今回は無事ビルドが通った。 ライブラリが生成されたのも確認。 その後、指定したインストール先にライブラリ及びヘッダファイルが配置された。 FMILibraryビルド時にサンプルプロジェクトが生成されているので、今後はこれをベースに話を進める予定。

  • 【FMU】最小構成のMBD事例 第2章 その48【FMILibrary⑤】

    FMILibraryのビルドエラーの原因究明。 stddef.hにoffsetofが定義されていなかった。 厳密にはC++向けには定義されていたが、C言語向けには定義されていなかった。 Visual Studio自体がC++を想定した環境であるためC言語のケアが薄いためなのかもしれない。

  • 【FMU】最小構成のMBD事例 第2章 その47【FMILibrary④】

    cmakeの前回のコマンドを使ってコンフィグレーション開始。 問題無く完了。 そのままcmakeでビルド開始。 ビルドの途中でエラーが発生。 xmlparse.cの中でBLOCKとsという構造体とメンバ変数の絡みでエラーが起きたようだが・・・。 とりあえず、頑張って調べてみる。

  • 【FMU】最小構成のMBD事例 第2章 その46【FMILibrary③】

    FMILibraryのビルド手順を確認。 開発者コマンドプロンプト起動、cmakeでビルド、ライブラリインストール。 cmakeへのオプションがちょっとややこしい。 FMILIB_INSTALL_PREFIXでインストール先。 FMILIB_FMI_PLATFORMでプラットフォーム。 -Gでビルドする環境指定。

  • 【FMU】最小構成のMBD事例 第2章 その45【FMILibrary②】

    バックナンバーはこちら。はじめに前回、C言語からのFMU/FMI制御するライブラリとしてFMILibraryというものが存在することが分かった。しかし、ビルド済みのものはwin32版のみ。欲しいのはwin64版。よって、win64版をソース

  • 【FMU】最小構成のMBD事例 第2章 その44【FMILibrary①】

    C言語からFMU/FMIを制御するライブラリはFMILibrary Windows版のFMILibraryはあるにはあるが…。 win32版のみ。 64bit版は自分でビルドする必要がある。 OpenModelica64bit版のFMUは恐らく64bitビルド。 FMILibrary 64bit版を用意することに。

  • 【FMU】最小構成のMBD事例 第2章 その43【FMI⑭】

    FMU/FMIを読めそうなツールを確認。 以前、太郎くんが調査した情報をベースに確認。 CANoeがすぐ使えそうだった。 CANoeでFMU/FMIの変数確認。 問題無く確認できた。 FMU/FMIの変数をCANoeのシステム変数に割り付ける形。 よって、CAPLからでも簡単に制御できそう。

  • 【FMU】最小構成のMBD事例 第2章 その42【FMI⑬】

    modelDescription.xmlのcausalityの内容を確認。parameter、calculatedParameter、input、output、local、independentの6種が存在。parameterはModelicaのparameter相当。calculatedParameterは初期値関連

  • 【振り返り】ブログ開設一年半記念記事【技術ブログのPV数と収益】

    祝1年半。 記事数は540記事に到達。 直近半年の記事はSDカード、FileSystem、Modelica、FMU/FMI。 「G検定」が稼ぎ頭なのは変わらないが、「MATLAB、Python、Scilab比較」「エンジニアの人事目標」「故障診断通信」も浮上。 収益は大体2千円/月オーバーあたり。

  • 【FMU】最小構成のMBD事例 第2章 その41【FMI⑫】

    modelDescription.xmlのvariabilityの仕様について。 constant(定数)、fixed(固定値)、tunable(調整可能値)、discrete(離散)、continuous(連続)。 fixedはシミュレーション前であれば変更可能。 tunableは変更時にODE演算のイベントが発生。

  • 【FMU】最小構成のMBD事例 第2章 その40【FMI⑪】

    modelDescription.xmlの中身を確認。 name、valueReference、description、variability、causality、Real unitが存在。 valueReferenceについて仕様確認。 変数ハンドル用で数値の衝突は禁止。 ただし、エイリアスはその限りではない。

  • 【FMU】最小構成のMBD事例 第2章 その39【FMI⑩】

    FMU/FMIのプラットフォーム上での位置づけを再確認。 FMUのユーザ視点に於いての位置づけを確認。 modelDescription.xmlとMotor.DLLの位置づけなど。 これを元に仕様の性質から予測される利用手順を列挙。 やはりmodelDescription.xmlの中身が気になるので、簡単に説明予定

  • 【FMU】最小構成のMBD事例 第2章 その38【FMI⑨】

    FMUとzipとして解凍してみた。 何個かのフォルダとxmlファイルがあった。 binariesにプラットフォーム別のライブラリが格納。 resourcesフォルダに依存関係があるファイル群を格納。 modelDescription.xmlにinput。output、内部パラメータが定義されている。

  • 【FMU】最小構成のMBD事例 第2章 その37【FMI⑧】

    FMU/FMIはあまり一般的に知られているものではないので利用方法の情報が皆無。 よって、仕様に踏み込まないと利用方法も見えない。 仕様書を読み込むのも大変なのでFMU自体の中身を見て行った方が理解としては楽そう。 実はFMUは特定のファイルとフォルダ構成をzip圧縮したもの。 つまり解凍して中身を参照できる。

  • 【FMU】最小構成のMBD事例 第2章 その36【FMI⑦】

    FMU/FMIのシミュレーション方式とSolverの位置づけを図解した。 MEは近似精度を調整したい場合に有利。 ECUの粗い制度を再現したい。 プラントの演算負荷を下げてシミュレーションを高速化したい。 CSは内部にSolverがあり、繋ぐだけで動くので設定が簡単。 CSのみのサポートしかしていないツールもある。

  • 【FMU】最小構成のMBD事例 第2章 その35【FMI⑥】

    FMU/FMIのシミュレーション方式は2種類ある。 Model Exchange(通称ME)。 外部にSolver。 Co-Simulation(通称CS)。 内部にSolver。 SolverはODE Solverのこと。 常微分方程式を解決する機能。 オイラー法、ホルン法などが有名。

  • 【FMU】最小構成のMBD事例 第2章 その34【FMI⑤】

    各社ツールでFMU/FMIの利用で追加費用は発生しない。 非競争領域と考えて広めることを重要視している可能性が高い。 2016年くらいから流行り始めている。 SDKのリリースが2014年なのが理由かも。 FMU/FMIのVersionは1.0と2.0がある。 ただし、互換性はない点に注意が必要。

  • 【FMU】最小構成のMBD事例 第2章 その33【FMI④】

    知ってる範囲でFMU/FMIに対応しているツールを調べてきた。 自動車業界限定且つメジャー所だと5社ほど。 対応Versionやアドオン追加などのの制約はある。 対応ツールは多いので結構使えそう。 ただし、Vector社製品のようにCANoeは対応しているが、CANapeは対応していない。などはある。

  • 【FMU】最小構成のMBD事例 第2章 その32【FMI③】

    FMU/FMIの存在価値について確認。 S-Functionと同等とすると存在価値が薄くなる。 自動車業界なりの狙いはある。 サプライヤから納入される部品と同等の振る舞いするモデルモジュールをもらい、完成車メーカ側で統合する。 FMU/FMIはSimulink、LabViewをプラットフォームとして入出力を繋げられる。

  • 【FMU】最小構成のMBD事例 第2章 その31【FMI②】

    FMI仕様の公開場所確認。 FMI-Standardにて公開されている。 FMI/FMUはMATLAB/Simulinkで言うところのS-Functionみたいなもの。 コンセプトとしてはほぼ一緒。 FMI/FMU側は標準仕様と言うことでもうマルチプラットフォームを意識したものとなっている。

  • 【FMU】最小構成のMBD事例 第2章 その30【FMI①】

    Modelicaモデルを外部から利用する手段は一応ある。 OpenModelicaからFMIをもったFMUを出力可能。 FMIは物理モデルをモジュール化したものの標準インターフェース。 MODELISARプロジェクトで策定。 その後、Modelica Association Project(MAP)で管理。

  • 【Modelica】最小構成のMBD事例 第2章 その29【DCモータ⑥】

    DcPermanentMagnetDataをOpenModelica Connection Editorで確認。UI上でパラメータを設定可能。さらにそのパラメータをDC_PermanentMagnetに渡すことでモデル初期化している。初期化するモデルが一個だとあまり意味がないかもだが、同特性モデルが複数あるとサボれる。

  • 【Modelica】最小構成のMBD事例 第2章 その28【DCモータ⑤】

    Modelicaコード モデル宣言部を確認した。 以下が存在しており、OpenModelica Connection Editor上にもある。 DC_PermanentMagnet、Ramp、SignalVoltage、Inertia、TorqueStep。 DcPermanentMagnetDataが特殊な位置づけ。

  • 【Modelica】最小構成のMBD事例 第2章 その27【DCモータ④】

    Modelicaコードのparameter部を確認。 parameterに関しては以前やった。 しかし、今回はReal型ではない。 厳密には、Real型に単位の定義を付加したもの。 電圧だったら"V"。 トルクなら"N.m"。 SI単位系で存在するものはModelica.SIunitsの中にすでに定義済み

  • 【Modelica】最小構成のMBD事例 第2章 その26【DCモータ③】

    DCモータモデルのModelicaコードを確認。 半分くらいはannotationなのでそれほど規模は大きくない。 見るべきポイントを列挙。 先頭のparameter部。 中間のモデル宣言部。 真ん中DcPermanentMagnetData。 これが今回のサボりポイントの目玉となる。

arrow_drop_down

ブログリーダー」を活用して、KEIさんをフォローしませんか?

ハンドル名
KEIさん
ブログタイトル
シミュレーションの世界に引きこもる部屋
フォロー
シミュレーションの世界に引きこもる部屋

にほんブログ村 カテゴリー一覧

商用