システムとモデリング

modelica, Julia, Design Structure Matrix, SysML, 他モデリング全般について。

Modelica の検索結果:

JuliaパッケージModelingToolkit.jlでタンクモデルを作成する

…果モデリングツールはmodelicaや同じくJuliaベースのmodia.jlが有名ですが、ModelingToolkitとそれらの相違点は以下の記事に詳しく書かれています。 https://www.stochasticlifestyle.com/modelingtoolkit-modelica-and-modia-the-composable-modeling-future-in-julia/ また、ModelingToolkitのドキュメントは以下になります。 https…

【プログラミング言語Julia】DifferentialEquations.jlでRLC回路の微分代数方程式(DAE)を解く

… 今回は以下サイトでmodelicaの例題として使用されているRLC回路を計算します mbe.modelica.university こちらの方程式は次のようになります。 \begin{align} V = i_RR \end{align} \begin{equation} C\frac{dV}{dt} = i_C \end{equation} \begin{equation} L\frac{di_L}{dt} = V_b - V \end{equation} \begin{…

【modelica vs simulink】因果的モデルと非因果的モデルの強みと弱み

…mola, OpenModelica, Simscape 因果的モデリングと非因果的モデリングの普及度 冒頭で引用した論文では因果的モデリングと非因果的モデリングがそれぞれどのくらい普及しているか調査しています。 下記グラフはそれぞれの代表的なキーワードで出版物がどの程度存在するか調べたものです。 Simlink(因果的)の出版物の数 非因果的モデリングの出版物の数 普及度は因果的モデルの圧勝です。非因果的モデリングが束になってもSimulink1つに叶いません。実際、mod…

【Julia言語入門】Juliaとmodelicaで倒立振子のアニメーション

今回もJuliaとmodelicaの連携記事になります。 関連記事は以下です。 otepipi.hatenablog.com otepipi.hatenablog.com 今回は制御工学の題材としてメジャーな倒立振子をmodelicaでモデリングし、Juliaでアニメーションを行います。 倒立振子のモデル 倒立振子のモデルはwikipediaにある台車駆動形倒立振子を使用します。 ja.wikipedia.org wikipediaより引用 台車駆動形倒立振子の運動方程式は以…

【Julia言語入門】Juliaとmodelicaで魚の体重をPI制御する

…き続いてJuliaとmodelicaの連携を実践してみます。 今回は「魚の体重」をJuliaとmodelicaを使ってPI制御してみます。 魚の体重の数理モデル 魚の体重の増加量を表す数理モデルとしてフォン・ベルタンフィーモデルが知られています。 ここでは魚の体重を示します。また右辺第1項は栄養分による体重の増加を、第2項は呼吸による体重ロスを表します。 今回はエサの量≒係数を入力とし、魚の体重をコントロールします。 過去に同様の数理モデルを使ってフィードバック制御をした際の…

【Julia入門】modelicaとJuliaで感度分析

…回に続いてopen modelicaのJulia APIOMJuliaを使用して計算モデルを解析していきます。 前回の記事は↓こちら otepipi.hatenablog.com パラメーターの感度分析 パラメーターの感度分析とは、あるパラメーターの変化がシステムのアウトプット変数にどれだけ影響を与えるかを分析する手法です。 仮にアウトプット変数を、パラメーターをとすると、Open Modelicaは感度としてを計算します。 この機能を実際に使用してみます。 計算モデル自体は…

【Julia入門】modelicaとJuliaで水タンクをモデリングする

…ia_An_OpenModelica_API_for_Julia-Modelica_Interactionwww.researchgate.net 前回に引き続きmodelicaとJuliaを繋ぐOMJulia関連の記事になります。 github.com 関連するOMJulia記事は以下です。 otepipi.hatenablog.com otepipi.hatenablog.com 今回のモデリング対象 今回は下図のような水の入ったタンクをモデリングします。タンク上部から水…

【Julia入門】JuliaでOpen Modelicaのパラメーターを最適化する

…uliaでOpen Modelicaを操作するパッケージ「OMJulia」を用いてopen modelicaのモデルのパラメーターを最適化します。 関連する記事は以下になります。 otepipi.hatenablog.com 今回のモデル 今回モデリングする対象は上図です。物理の授業でよくある、ボールをある角度で投擲して地面(y=0)に落下するまでのモデルになります。 今回、ModelicaとJuliaを使って、地面にぶつかるまでx方向に最も長く飛ぶ角度θを探索します。 Op…

Matlabで微分方程式の計算練習

…'-o') 一方、例えば精度がode45ほどではないode23では、1000ステップ計算すると軌道がどんどん円周から外れていってしまいます。 tspan = [0 1000]; y0 = [1 0]; [t1,y1] = ode23(@(t,y) odefcn(t,y), tspan, y0); plot(y1(:,1),y1(:,2),'-o') modelicaで計算する際は特に精度に特に気を遣っていないのですが、本当は注意しなくてはいけませんね。今回はここまでにします。

2020年の抱負

…re Matrix Modelica matlab/simulink SysML PlantUML これらのトピックは主にツールに関するもので、一時の話題にはなりますが将来的な陳腐化が予想されるものでもありました。 2020年は陳腐化されにくい技術、つまり数学力を鍛える一年にしたいと思っています。モデリング対象を物理現象と考えた場合、そのモデリング様式は微分方程式になる場合が多いかと思います。今年はその微分方程式の数値計算を主に取り組みたいと考えております。 今年の正月休みに…

modelicaでタイマー設定のヒーターをモデリングする

…デリングに優れた言語modelicaを使用して物理モデルと制御モデルが一体になったシミュレーションをします。 今回は以下の例題を参考にしながらすすめていきます。 mbe.modelica.university 以下のような制御をシミュレーションしてみます。 高温(温度T[K])の物体Aが温度Tamb[K]の環境下に置かれている。 物体Aの温度Tはニュートンの冷却法則に従って低下していく。 物体Aの温度をコントロールするためのヒーターを設ける。 ヒーターは、物体Aの温度が設定値…

Open ModelicaをJuliaで操作する

久々にOpen Modelicaに手を出してみました。 今回はJuliaを使ってOpen Modelicaを操作してシミュレーションする試みです。 今年になってOpen ModlicaのJulia APIが開発されために可能になりました。 www.openmodelica.org 手順 パッケージOMJuliaを使用します。 手順はおおよそ下記GithubのReadmeに書いてあります。 github.com 注意点としては Open Modelica v1.14が必要(v1…

JuliaでModelicaライクなシミュレーション

…a.jl"を使用してModelicaのような非因果モデリングでシミュレーションしてみます。 Modelicaについては以前の記事を参照してください。 otepipi.hatenablog.com Modia.jlについて Modia.jlはJulia言語による方程式ベースのシステムモデリング環境です。作者はModelicaを使用した経験をもとにこのライブラリを制作しており、Modelicaと非常に似た作りになっています。 github.com https://modiasim…

メモ:注目しているシミュレーションソフト

…の探索などは非常に面白そうです。 Altair Activate solidthinking.jp Simulinkのようなソフトウェアですが、信号モデルだけでなくModelicaライブラリを利用した物理モデリングも可能という優れたソフトウェアです。Maplesimと同じようなイメージ。これも個人で使用する分には無料なのですから驚きです。これを利用した記事も投稿してみたいと思っています。 以上、今注目しているシミュレーションソフトウェア2点の紹介でした。 今回はここまでです。

Open Modelicaで状態機械をシミュレーションする。その2

今日は再びOpen Modelicaで状態機械のシミュレーションをしてみます。 Open Modelicaで状態機械をシミュレーションするには設定が必要で、それについては過去の記事で解説しています。 otepipi.hatenablog.com サンプルコード 今回使わせてもらうサンプルコードは下記PDFにありましたものです。 https://openmodelica.org/images/docs/openmodelica2015/OpenModelica2015-talk…

Open Modelicaで流量のPIDコントロール その3

今日もOpen Modelicaで流量のPIDコントロールをしていきます。 前回の記事はこちら↓ otepipi.hatenablog.com 前回ではバルブが線形動作だったためにPIDが一瞬で調整を完了してしまいました。 これでは面白くないので、このモデルに遅れ時間を設定してやります。 遅れ時間の設定 Blocks -> Nonlinear -> FixedDelayで固定時間遅れを設定します。 これをPIDのアウトプットとバルブのインプットの間に設置してやることで、PID…

Open Modelicaで流量のPIDコントロール その2 失敗編

…に引き続きOpen ModelicaでPIDコントロールをしてみたいと思います。 前回の記事はこちらです。 otepipi.hatenablog.com 前回下図の状態まで実施しましたので、あとはステップ入力の部分をPID動作に変更します。 PID操作器 Blocks -> Continuous -> LimPID でPID操作器を設定します。今回、バルブが受け付ける信号が0~1までの数値になりますので、出力の最大最小を設定できるLimPIDを使用します。 PIDの設定は適当…

Open Modelicaで流量のPIDコントロール その1

…ipiです。 今日はModelica標準ライブラリを使用して流量のコントロールを検討してみます。 図のように圧力の高いところから圧力の低いところに流体を流し、その流量を流量計で測定し、望ましい流量になるようにバルブの開度を変更するフィードバック制御をかけます。 今日はフィードバック制御をかける前段階まで実施していきたいと思います。 機器の設置 まず機器を設置するところからはじめます。 境界 境界はModelica標準ライブラリのFluid -> Souces -> Bouda…

Open Modelicaで状態機械をシミュレーションする。

…piです。Open Modelicaを使って状態機械(State Machine)をシミュレーションしてみました。 シミュレーションしたのは下記のような状態機械図になります。これはModelica3.3のドキュメントにあるものです。 https://www.modelica.org/documents/ModelicaSpec33Revision1.pdf これをコードにすると下記のようになります。これも上記ドキュメントのまんま引用です。 block Hierarchical…

【雑記】Googleトレンドで遊ぶ SysMLなど、多く検索している地域はどこか

…われます。 // "Modelica"は東京で最も検索されています。Modelicaといえばそれこそ自動車業界で使われているものですので愛知県が多くなると思いきや、東京都言うのが意外ですね。ソフトウェアベンダーが東京にあるからなのでしょうか? // "Simulink"は1位が栃木、2位が愛知、3位は静岡となっております。Simulinkも自動車のモデルベースデザインに使用されているソフトウェアであることを考えると、栃木はホンダでしょうか?愛知はトヨタとして、静岡はヤマハかも…

Modelicaでローレンツ方程式を解く(カオス挙動を確認する)

…今回はモデリング言語Modelicaを使ってローレンツ方程式を解いていきます。 ローレンツ方程式とは ローレンツ方程式 - Wikipedia ローレンツ方程式とは大気変動のメカニズムを簡略して数学モデル化したものです。マサチューセッツ工科大学のローレンツ氏(~2008)によって発表されたのでこの名前がついています。 このローレンツ方程式は下のような式になります。 これをmodelicaによって実装してみます。 modelicaによる実装と結果 ここでは定数をとします。 また…

Modelica 参考になる書籍・WEBサイト

…ipiです。 今日はModelica言語を学習する上で参考になる書籍やWEBサイトを紹介します。 書籍 Modelicaによるシステムシミュレーション入門 -モデルベース開発のための物理システムモデリング- (MBD Lab Series)作者: Peter Fritzson,大畠明(監訳),広野友英出版社/メーカー: TechShare発売日: 2015/07/15メディア: 単行本(ソフトカバー)この商品を含むブログを見る Modelicaを解説した貴重な和書です。オブジ…

Modelicaプログラミング練習その2

…pipiです。今回もModelicaを使ってプログラミングしていきたいと思います。 Modelicaの特徴である非因果的モデルを実装していきます。 例題としては下記教科書の、流通式完全混合槽モデルを作成していきたいと思います。 基礎式から学ぶ化学工学: Excelによるモデル解法で直観的にわかる作者: 伊東章出版社/メーカー: 化学同人発売日: 2017/11/28メディア: 単行本この商品を含むブログを見る モデリング対象は下の流通式完全混合槽で、槽内の物質Aの濃度はシミュ…

Modelicaプログラミング練習

…はプログラミング言語Modelicaを使用してプログラミングの練習をしていきたいと思います。 Modelicaとは Modelicaはオブジェクト指向のプログラミング言語ですが、その中でも物理モデリングに特化しています。 言語仕様は下記にあります。 https://www.modelica.org/documents/ModelicaSpec34.pdf 大きな特長としては非因果モデルの記述が可能という点です。 非因果モデリングは、「出力」「入力」の区別をしない記述方法で、例…