システムとモデリング

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

Julia言語

Julia言語 新規登録パッケージ紹介(2023/01/16~2023/01/22)

この1週間で新規に登録されたパッケージをまとめます。 ※Julia DiscourseのPackage Announcementsに書き込みがあったものが対象 discourse.julialang.org PanelShift.jl github.com 時間ベクトルに対する遅れを算出するプログラム julia> t, v = [1;2;4], […

Julia言語の書籍紹介 Web Development with Julia and Genie

www.amazon.co.jp (以下,amazonの紹介文を日本語訳して抜粋) 主な特徴 JuliaのエキスパートIvo BalbaertとGenieフレームワークの開発者Adrian SalceanuによるWeb開発のチュートリアルです。 Genieフレームワークで完全なWebアプリケーションを構築するため…

とあるJuliaユーザーの不満(Discourseより)

現在JuliaのDiscourseで熱い議論が交わされているスレッドを紹介します。 スレッドは↓です discourse.julialang.org これはスレ主が自身のブログにJuliaに関する記事を投稿し、それに対してスレッドで感想を求めたことが発端になっています ブログ記事の内容…

Juliaでワードクラウド を作る WordCloud.jl

JuliaのパッケージWordCloud.jlを使用してワードクラウドを作ってみます。 パッケージのgithubは↓ https://github.com/guo-yong-zhi/WordCloud.jl Julia Discourseは↓ https://discourse.julialang.org/t/ann-wordcloud-jl-a-word-cloud-generator-in-julia/…

Luxor.jlでDesignStructureMatrixの描画を改良

今回はJuliaの描画パッケージの1つ、Luxor.jlでDesign Structure Matrixの描画を改良した件についてまとめています。 Luxor.jlについて github.com Juliaのベクトル形式描画パッケージです。四角や丸やテキスト、テーブルなどあらゆるものの描画が可能です…

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

久しぶりの投稿です。今回は非因果モデリングのためのJuliaパッケージModelingToolkit.jlを使用してタンクモデルを作成してみます。 ModelingToolkit.jlについて ModelingToolkitはJuliaネイティブのモデリングツールで、方程式ベースでモデルを記述できます…

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

今回はJuliaの強力な微分方程式数値計算パッケージDifferentialEquations.jlを使用してRLC回路を解いていきます。 パッケージの詳細は以下です。 diffeq.sciml.ai また関連する記事は以下になります。 otepipi.hatenablog.com otepipi.hatenablog.com RLC回…

【プログラミング言語Julia】パッケージ[Symbolics.jl]で数式処理を組み合わせたニュートン法を実装する。

今回もJuliaの数式処理パッケージSymbolics.jlの事例紹介になります。 過去の記事は以下になります。 otepipi.hatenablog.com otepipi.hatenablog.com また、記事内容は以下書籍のプログラムを参考にしています。 MATLABとOctaveによる科学技術計算丸善出版A…

【Julia言語おすすめパッケージ】Juliaの数式処理システム[Symbolics.jl]で数学の問題を解いてみる

今回も前回に引き続き数式処理システムSymbolics.jlの解説です。今回はこのパッケージを用いて簡単な多変数最適化の文章題を解いてみたいと思います。 問題は以下書籍からそのまま抜き出しました。 数理モデリング入門 ―ファイブ・ステップ法― 原著第4版作者…

【Julia言語おすすめパッケージ】Symbolics.jlを試してみる

Juliaの数式処理パッケージSymbolics.jlを試してみます。 github.com ドキュメントは↓です symbolics.juliasymbolics.org パッケージの宣言 using Symbolics 変数の宣言 @variables x \begin{equation} \left[ \begin{array}{c} x \ \end{array} \right] \en…

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

今回もJuliaとmodelicaの連携記事になります。 関連記事は以下です。 otepipi.hatenablog.com otepipi.hatenablog.com 今回は制御工学の題材としてメジャーな倒立振子をmodelicaでモデリングし、Juliaでアニメーションを行います。 倒立振子のモデル 倒立振…

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

今回もこれまでに引き続いてJuliaとmodelicaの連携を実践してみます。 今回は「魚の体重」をJuliaとmodelicaを使ってPI制御してみます。 魚の体重の数理モデル 魚の体重の増加量を表す数理モデルとしてフォン・ベルタンフィーモデルが知られています。 ここ…

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

※今回の内容は以下論文を再現しただけになります https://www.researchgate.net/publication/330809787_OMJulia_An_OpenModelica_API_for_Julia-Modelica_Interactionwww.researchgate.net 前回に引き続きmodelicaとJuliaを繋ぐOMJulia関連の記事になります…

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

今回は久々にmodeica関連の記事になります。 JuliaでOpen Modelicaを操作するパッケージ「OMJulia」を用いてopen modelicaのモデルのパラメーターを最適化します。 関連する記事は以下になります。 otepipi.hatenablog.com 今回のモデル 今回モデリングする…

【Julia入門】Juliaで婚活アプリのシステムモデリング

2021年初投稿です。今回は婚活アプリのシステムモデリングをしてみましたが、Jupyterで作成したものをそのままブログに貼り付けてみました。こちらのほうが手数少なく記事が作成できそうですが、見栄えがどうでしょうか……? Jupyterからの投稿手順については…

セルオートマトンの分類

前回の続きでセルオートマトンについて書いていきます。 otepipi.hatenablog.com 今回はセルオートマトンの分類についてになります。 以下書籍を参考にしています。セルオートマトンに関する和書は数少ないですが、その中でも特に詳細に記述されている用に思…

【Julia入門】Juliaで一次元のセルオートマトンを描画する

今回はシステムの離散モデルの1種であるセルオートマトンをJuliaで描画してみたいと思います。 最近、『東京大学工学教程 システム工学』シリーズを読む機会がありました。 東京大学工学教程 システム工学 システム理論I作者:大橋 弘忠,古田 一雄発売日: 201…

【Julia入門】Juliaで計算モデルの解析:収束判定

今回も書籍『A Biologist's Guide to Mathematical Modeling in Ecology and Evolution』 で学んだ内容を復習します。内容としては、計算モデルの収束判定です。

【Juliaおすすめパッケージ】Interact.jlでプロットをgifにする

これまでいくつかの計算モデルを静的にプロットしてきました。 今回はJuliaのパッケージInteract.jlを使って プロットをgifにしてみます。

【Julia入門】JuliaでCobweb plotを作成する

今回も書籍『A Biologist's Guide to Mathematical Modeling in Ecology and Evolution』 から学習した内容の備忘録になります。 計算モデルを解析する際に使用されるCobweb Plotsを作成してみます。

DiscreteモデルとContinuousモデルの違い

今回も書籍『A Biologist's Guide to Mathematical Modeling in Ecology and Evolution』 から学習した内容の備忘録になります。 ネズミが生殖により増えたり、銀行に預けたお金が複利で増えたり、人気商品だということが広まるとさらに人気になったり…… 「…

【Julia入門】Juliaで分岐図を描画してカオスを感じる

今回はJuliaで分岐図を作成してみたいと思います。 分岐図についてですが例として以下のようなものになります。 これはロジスティック関数の分岐図でパラメーターrを増やしていくと値が発散してカオス減少が確認できるものになります。 ja.wikipedia.org 今…

【Julia入門】Juliaで信頼性工学:ワイブル分布のプロット

唐突ですがJuliaを使って信頼性工学の勉強をしていきます。 今回参考にした書籍は以下です。 入門 信頼性工学(第2版):確率・統計の信頼性への適用作者:福井 泰好発売日: 2016/07/30メディア: 単行本(ソフトカバー) ワイブル分布とは ワイブル分布は1939年…

Open ModelicaをJuliaで操作する

久々にOpen Modelicaに手を出してみました。 今回はJuliaを使ってOpen Modelicaを操作してシミュレーションする試みです。 今年になってOpen ModlicaのJulia APIが開発されために可能になりました。 www.openmodelica.org 手順 パッケージOMJuliaを使用しま…

Plotly で Design Structure Matrix を描画する。

久々にDesign Structure Matrixの記事になります。 今までDesign Structure Matrixの描画にはGadfly.jlパッケージのヒートマップ機能を使用していました。 例としては以下のようなものになります。 ただこの描画方法ですとDSMの要素の有無を色でしか表現でき…

Juliaパッケージ DesignStructureMatrix.jlを制作して公式パッケージにするまで

Design Structure Matrix ( DSM )関係の関数を集めたJuliaパッケージDesignStructureMatrix.jlを公開しました。 github.com 現時点の内容としては DSMの描画 DSMのシーケンシング DSMのクラスタリング が利用できます。詳細はREADMEを御覧ください。 今回、J…

Gadfly.jlでDesign Structure Matrixを描画する。

今まではDesign Structure Matrixの描画にSeaborn.jlを使用してきました。 otepipi.hatenablog.com ただSeaborn.jlはPython環境がないと使用できない点、日本語に対応していない点が不満でしたので、描画をGadfly.jlに乗り換えたいと思います。 Gadfly.jlで…

Juliaで可到達行列をレベル分けして並び替える

Design Structure Matrixのシーケンシング関連の記事です。今回の内容は以下の記事をJuliaで自動化したものになります。 otepipi.hatenablog.com 可到達行列を並び替えて下三角行列に近い形にします。 並べ替える前の可到達行列は以下のような形になります。…

Juliaで可到達行列を求める

DSM(DesignStructureMatrix)のシーケンシングに必要なDSMの可到達行列をJuliaのプログラムで求めてみます。 可到達行列とは 以下のスライドの説明がわかりやすいと思います。 http://ise.me.tut.ac.jp/lectures/decision-making/DSS12-2.pdf DSMの隣接行列A…

DSMをJuliaでクラスタリングし、自動で整列させる

前回の記事の続きです。 otepipi.hatenablog.com 前回はJuliaでDSMのクラスタリングのみしましたが、今回はそのクラスタリング結果に基づいてDSMを並べ替えるところまでやります。 実装 実装したコードは以下のようになりました。 using LinearAlgebra using…