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

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

バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/

はじめに

前回、DCモータモデルのモデル宣言部を確認。
OpenModelica Connection Editorと同様のモデルが配置されているはず・・・。
と思いきや、DcPermanentMagnetDataがモデル宣言部にいなかった。
さらに、モデル初期値にもDcPermanentMagnetDataのメンバ変数が依存しており、
DcPermanentMagnetDataの説明をしなければモデル宣言部の説明ができない状態に陥る。

今回は、DcPermanentMagnetDataについて説明していく。
実は、OpenModelica Connection Editor上での使い勝手を良くするような…。

登場人物

博識フクロウのフクさん

指差しフクロウ

イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1

エンジニア歴8年の太郎くん

技術者太郎

イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1

DcPermanentMagnetData

太郎くん
太郎くん

DcPermanentMagnetDataってなにさー?!

フクさん
フクさん

ま、簡単に言うとDC_PermanentMagnetモデルに必要且つおおよそ妥当なパラメータOpenModelica Connection Editorで編集するためのブロックだね。

太郎くん
太郎くん

へ?
OpenModelica Connection Editorで編集??

フクさん
フクさん

うん。
OpenModelica Connection Editor上でDcPermanentMagnetDataをダブルクリックしてみな。

太郎くん
太郎くん

こんなん出てきた。

DcPermanentMagnetData OpenModelica Connection Editor、Modelica.Electrical.Machines.Utilities.ParameterRecords.DcPermanentMagnetData dcpmData、Rotor's moment of inertia、Stator's moment of inertia、ViNominal
DcPermanentMagnetData OpenModelica Connection Editor、Modelica.Electrical.Machines.Utilities.ParameterRecords.DcPermanentMagnetData dcpmData、Nominal armature voltage、Nominal armature current (>0..Motor, <0..Generator)、Nominal speed、Nominal armature temperature、IaNominal、VaNominal、wNominal、TaNominal
DcPermanentMagnetData OpenModelica Connection Editor、Modelica.Electrical.Machines.Utilities.ParameterRecords.DcPermanentMagnetData dcpmData、Armature resistance at TRef、Reference temperature of armature resistance、Temperature coefficient of armature resistance、Armature inductance

DcPermanentMagnetDataパラメータの渡し先

フクさん
フクさん

そして、DcPermanentMagnetDataのパラメータがどこにわたっているかと言うと・・・

太郎くん
太郎くん

DC_PermanentMagnetに渡してるのか!

  Machines.BasicMachines.DCMachines.DC_PermanentMagnet dcpm(
    VaNominal=dcpmData.VaNominal,
    IaNominal=dcpmData.IaNominal,
    wNominal=dcpmData.wNominal,
    TaNominal=dcpmData.TaNominal,
    Ra=dcpmData.Ra,
    TaRef=dcpmData.TaRef,
    La=dcpmData.La,
    Jr=dcpmData.Jr,
    useSupport=false,
    Js=dcpmData.Js,
    frictionParameters=dcpmData.frictionParameters,
    coreParameters=dcpmData.coreParameters,
    strayLoadParameters=dcpmData.strayLoadParameters,
    brushParameters=dcpmData.brushParameters,
    TaOperational=293.15,
    alpha20a=dcpmData.alpha20a,
    phiMechanical(fixed=true),
    wMechanical(fixed=true),
    ia(fixed=true)) annotation (Placement(transformation(extent={{-20,-50},
            {0,-30}})));
フクさん
フクさん

そうそう。
どんなパラメータが必要そうかをDcPermanentMagnetDataである程度設定できれば、
それをDC_PermanentMagnetに渡せばOKって構造になってる。

太郎くん
太郎くん

でも、これ、DC_PermanentMagnet側に直接指定すればいいんじゃない?

フクさん
フクさん

それでも良いが、同じ特性のモータが6個とか並んでたら?

太郎くん
太郎くん

あ、いちいち設定するのがメンドクサイ!

フクさん
フクさん

というわけでパラメータの複製を目的としているのがDcPermanentMagnetDataとなる。

太郎くん
太郎くん

これもサボりポイントってやつか。

フクさん
フクさん

そうだねー。
振る舞いの複製はModelicaのオブジェクト指向的特性でなんとかなるが、
パラメータの複製は専用のブロックがあると楽ができる。
あと、ある程度デフォルト値が最初から埋まってるんで、
とりあえず何も考えず繋いで動かしたい場合も結構有用。

太郎くん
太郎くん

意外と欲しいものが揃ってるって感じだねー。

フクさん
フクさん

まぁこの手のツールを使う人達ってめんどくさがり屋が多いからね。
サボるためには労力を惜しまないのだろう。
我々はその労力もかけずに有難く使わせてもらってるって寸法だ。

太郎くん
太郎くん

うーん、そういう言い方されると僕たちが悪いヤツみたいになっちゃうなー。

フクさん
フクさん

いやいや、全力でサボらせてもらう方が礼儀ってもんだよー。

太郎くん
太郎くん

そんなもんかー。

まとめ

フクさん
フクさん

まとめだよ。

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

バックナンバーはこちら。

コメント

タイトルとURLをコピーしました