Last active
March 29, 2020 11:04
-
-
Save finback-at/9d77965f5a7aa833e7c79492e1369713 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"### GenerationOfFMUs (2) - with_linear_correction\n", | |
"[CO-SIMULATION USING THE OPEN-SOURCE PYTHON PACKAGE PYFMI](https://www.modelon.com/co-simulation-using-the-open-source-python-package-pyfmi/) の最後の方に記述された linear_correction = True にしたシミュレーションを試みます。\n", | |
"\n", | |
"サブシステムモデルをコンパイルしてFMUを生成します。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 1, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from pymodelica import compile_fmu\n", | |
"fmu1 = compile_fmu('Modelica.Mechanics.Rotational.Examples.Utilities.DirectInertia',target='cs', version='2.0', compile_to='DirectInertia.fmu')\n", | |
"fmu2 = compile_fmu('Modelica.Mechanics.Rotational.Examples.Utilities.InverseInertia',target='cs',version='2.0', compile_to='InverseInertia.fmu')" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"サブシステムモデルをロードします。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 2, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"from pyfmi import load_fmu\n", | |
"directInertia = load_fmu(\"DirectInertia.fmu\")\n", | |
"inverseInertia = load_fmu(\"InverseInertia.fmu\")" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"パラメータを設定します。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 3, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"directInertia.set(\"J\", 1.1)\n", | |
"inverseInertia.set(\"J\", 2.2)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"サブシステムモデルのリストと接続関係のリストを作成します。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 4, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"models = [directInertia, inverseInertia]\n", | |
"connections = [\n", | |
" (directInertia, \"phi\", inverseInertia, \"phi\"),\n", | |
" (directInertia, \"w\", inverseInertia, \"w\"),\n", | |
" (directInertia, \"a\", inverseInertia, \"a\"),\n", | |
" (inverseInertia, \"tau\", directInertia, \"tau\")]" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Co-Simulationモデルを作成します。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 5, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:2: UserWarning: The model, DirectInertia, does not support directional derivatives which is necessary in-case of an algebraic loop. The simulation might become unstable...\n", | |
" \n", | |
"/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:2: UserWarning: The model, InverseInertia, does not support directional derivatives which is necessary in-case of an algebraic loop. The simulation might become unstable...\n", | |
" \n" | |
] | |
} | |
], | |
"source": [ | |
"from pyfmi.master import Master\n", | |
"coupled_simulation = Master(models, connections)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"directional derivatives を計算する機能がサポートされていないというワーニングが出ています。この機能はモデルどうしの接続で代数ループがある場合は必要になるようです。\n", | |
"\n", | |
"オプションを設定します。コミュニケーションステップサイズを設定し、linear_correction を False にします。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 6, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"opts = coupled_simulation.simulate_options()\n", | |
"opts[\"step_size\"] = 0.01\n", | |
"opts[\"linear_correction\"] = True" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"directInertia モデルの入力信号用オブジェクトを生成します。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 7, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"import numpy as np\n", | |
"f = lambda time: 10*np.sin(2*np.pi*2*time)\n", | |
"input_object = ((directInertia, \"tauDrive\"), f)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"Co-Simulation を実行します。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 8, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"name": "stderr", | |
"output_type": "stream", | |
"text": [ | |
"/usr/local/lib/python2.7/dist-packages/ipykernel_launcher.py:1: UserWarning: Linear correction only supported if directional derivatives are available.\n", | |
" \"\"\"Entry point for launching an IPython kernel.\n" | |
] | |
}, | |
{ | |
"name": "stdout", | |
"output_type": "stream", | |
"text": [ | |
"Elapsed initialization time: 0.00193905830383 seconds.\n", | |
"Master Algorithm options:\n", | |
" Algorithm : Jacobi (fixed-step)\n", | |
" Execution : Serial\n", | |
" Extrapolation Order : 0\n", | |
" Step-size : 0.01\n", | |
" Algebraic loop : True\n", | |
" Linear Correction : False\n", | |
"\n", | |
"Statistics: \n", | |
" Number of global steps : 100\n", | |
"\n", | |
"Simulation interval : 0.0 - 1.0 seconds.\n", | |
"Elapsed simulation time : 0.0547690391541 seconds.\n", | |
" 0.002795 seconds spent in DirectInertia.\n", | |
" 0.000860 seconds spent in InverseInertia.\n", | |
" 0.042885 seconds spent saving simulation result.\n" | |
] | |
} | |
], | |
"source": [ | |
"res = coupled_simulation.simulate(options=opts, input=input_object)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"linear correction は、directional derivative が計算できる場合のみサポートされるという旨のワーニングがでます。\n", | |
"シミュレーション結果を抽出してプロットします。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 9, | |
"metadata": {}, | |
"outputs": [], | |
"source": [ | |
"inverseInertia_time = res[inverseInertia][\"time\"]\n", | |
"inverseInertia_phi = res[inverseInertia][\"inertia.flange_b.phi\"]" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": 10, | |
"metadata": {}, | |
"outputs": [ | |
{ | |
"data": { | |
"text/plain": [ | |
"[<matplotlib.lines.Line2D at 0x7f728c326850>]" | |
] | |
}, | |
"execution_count": 10, | |
"metadata": {}, | |
"output_type": "execute_result" | |
}, | |
{ | |
"data": { | |
"image/png": "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\n", | |
"text/plain": [ | |
"<matplotlib.figure.Figure at 0x7f728c3b8990>" | |
] | |
}, | |
"metadata": { | |
"needs_background": "light" | |
}, | |
"output_type": "display_data" | |
} | |
], | |
"source": [ | |
"%matplotlib inline\n", | |
"import matplotlib.pyplot as plt\n", | |
"plt.figure(1)\n", | |
"plt.plot(inverseInertia_time, inverseInertia_phi)" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": {}, | |
"source": [ | |
"結局、linear_correction が有効になりませんでした。" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"execution_count": null, | |
"metadata": {}, | |
"outputs": [], | |
"source": [] | |
} | |
], | |
"metadata": { | |
"kernelspec": { | |
"display_name": "Python 2", | |
"language": "python", | |
"name": "python2" | |
}, | |
"language_info": { | |
"codemirror_mode": { | |
"name": "ipython", | |
"version": 2 | |
}, | |
"file_extension": ".py", | |
"mimetype": "text/x-python", | |
"name": "python", | |
"nbconvert_exporter": "python", | |
"pygments_lexer": "ipython2", | |
"version": "2.7.17" | |
} | |
}, | |
"nbformat": 4, | |
"nbformat_minor": 2 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment