• 検索結果がありません。

Simulinkモデルから状態方程式・出力方程式の抽出

N/A
N/A
Protected

Academic year: 2021

シェア "Simulinkモデルから状態方程式・出力方程式の抽出"

Copied!
2
0
0

読み込み中.... (全文を見る)

全文

(1)Vol.2016-SE-192 No.16 Vol.2016-EMB-41 No.16 2016/6/3. 情報処理学会研究報告 IPSJ SIG Technical Report. Simulink モデルから状態方程式・出力方程式の抽出 池田 良裕1,a). 枝廣 正人1,b). 概要:車載制御向けの設計において、モデルベース開発を用いることが多くなってきている。一方で制御 システム・プラントシステム共に複雑化が著しく、モデルのテスト・修正を繰り返していくうちにシス テムの現状把握が難しいという状況が起きている。そこで本研究では、モデルベース開発ソフトである. MATLAB/Simulink を対象として、モデルから状態方程式・出力方程式の抽出手法について提案した。実 際に提案手法を用いてフィボナッチ数を出力するモデルから状態方程式・出力方程式を抽出できることを 確認した。. 1. はじめに. 態方程式・出力方程式の探索を行った. 現代制御理論では,システムは内部状態を持つものと捉. 車載制御向けの設計において,モデルベース開発が採. え,それを状態方程式で記述する.時刻 n における状態方. 用されることが増えてきている.モデルベース開発では. 程式には,時刻 n − 1 やそれ以上前の時刻における状態. MATLAB/Simulink[1] が広く用いられており,制御システ. 変数が必要になる.よって,状態方程式の探索では,まず. ムをモデルとして作成することで視認性を向上させ,シス. Simulink モデル内の前状態を保持しているブロックを探し. テムの大規模化,複雑化に対しても簡潔かつ正確に表現す. た.MATLAB/Simulink において前状態を保持できるブ. ることが可能である.また,実際のハードウェアをモデル. ロックは遅延ブロック,積分ブロックが挙げられる.中で. 化することにより実機を用いることなくシミュレーション. も,Unit Delay(遅延) ブロック,Integrator(積分) ブロッ. を行うことができ,制御システム開発における手戻りによ. クはモデルベース開発での制御の分野において,広く使わ. るロスを減らすことにも貢献している.. れているため,状態方程式の探索での基準とした.以降,. モデルベース開発において制御システム設計する際に,. これらを状態方程式の探索開始ブロックと呼ぶ.. 制御対象の仕様が変更されることがある.制御設計者はモ. 状態方程式の探索は,探索開始ブロックから始め,探索. デルを変更することで仕様変更に対応していくが,モデル. 終了ブロックまで Simulink モデルを遡りながら状態方程. の変更が繰り返されていくと制御対象システムのモデルは. 式該当ブロックを追加していった.探索終了ブロックとは. 存在しても数式によるシステムの特性を把握することがで. Unit Delay ブロック,Integrator ブロックのような内部状. きない.システムの特性を把握する上でモデルからの数式. 態を保持しているブロック,または Inport(入力) ブロック. 化は必須である.. のようなこれ以上遡ることが出来ないブロックである.. 2. 状態方程式・出力方程式の抽出 2.1 各方程式該当部の探索. 出力方程式はシステムの出力を式として表したもので ある.出力方程式の探索開始ブロックは Outport(出力) ブ ロックであり,探索終了ブロックは状態方程式と同様であ. Simulink モデル内の状態方程式・出力方程式の該当部. る.出力方程式の探索の流れも状態方程式と同様に探索開. の探索には BLXML(Block-Level XML)?を用いた.MAT-. 始ブロックから始め,探索終了ブロックまで Simulink モデ. LAB/Simulink の API を用いることでブロック接続関係. ルを遡りながら出力方程式該当ブロックに追加していった.. をたどることも可能ではあるが, 本研究では,Simulink モデ. また両方程式とも複数の探索開始ブロックが存在する可. ル BLXML 及び BLXML パーサである SimulinkXSD を. 能性があるため,各探索開始ブロックに対してそれぞれ該. 使用し,BLXML からブロックの接続関係を取得,及び状. 当ブロックのリストを作成した.. 1. a) b). 名古屋大学 大学院情報科学研究科 〒 464-8603 愛知県名古屋市千種区不老町 [email protected] [email protected]. c 2016 Information Processing Society of Japan ⃝. 2.2 Maple/BlockImporter を用いた数式化 Maple/BlockImporter は Simulink モデルを入力として,. 1.

(2) Vol.2016-SE-192 No.16 Vol.2016-EMB-41 No.16 2016/6/3. 情報処理学会研究報告 IPSJ SIG Technical Report. 数式に変換するツールである.このツールでは入力の. Simulink モデルは連続モデルでなければならず,一つの 1. Simulink モデルに対して一つの数式しか出力できない.そ. Out1. のため,2.1 章で探索した各方程式該当ブロックを元のモ 1 z. デルから抜き出した.元のモデルから該当ブロックを抜き. Fn Init=1. 出すと探索開始・探索終了ブロックに含まれる Unit Delay ブロック,Integrator ブロックの入出力どちらかの信号線. Add. 1 z. 2. Fn_1 Init=0. が接続されていない状況となり,数式への変換が行えない.. Saturation. approximate_golden_ratio. Divide. -C-. この問題を解決するため,それらのブロックを探索開始ブ. Subtract. Golden_ratio. |u|. -K-. Abs. Gain. 3 error[%]. ロックなら Outport(出力) ブロックへ,探索終了ブロック なら Inport(入力) ブロックへ置き換えた. 図 1. 各 方 程 式 の み の Simulink モ デ ル へ 抜 き 出 し た 後 ,. Maple/BlockImporter により数式化を行った.しかし, このツールは Simulink モデルから数式へ変換すると入力に 対応する変数には u1,1,1 から,出力に対応する変数に y1,1,1. フィボナッチモデル. x2 (n) = x1 (n − 1). (2). y1 (n) = x1 (n − 1). (3). から順に変数を割り当てていく.よって,別々に抜き出し. 式 (1) に式 (2) を代入することで式 (4) を得ることが出来,. た Simulink モデルではたとえ同じブロックでも別々の変. 正しく Simulink モデルから数式へ変換できていることが. 数が割り当てられてしまい,状態方程式・出力方程式を数. 確認できた.. 式化してもシステムの把握が難しいままとなってしまう.. x1 (n) = x1 (n − 1) + x1 (n − 2). そこで,各方程式間で変数を共有する必要がある. 変数の共有には 2 つのテーブルを用いた.一つはシステ ム全体で共有する変数と抜き出す前の Simulink モデル内の. 4. おわりに. Inport(入力),Outport(出力) ブロックの名前の組,もう一. 4.1 まとめ. (4). つは抜き出された Simulink モデル内の Inport(入力),Out-. 本研究では制御モデルを対象とした,Simulink モデルか. port(出力) ブロックの名前と Maple/BlockImporter により. ら状態方程式・出力方程式該当部の探索手法及び抽出後の. 割り当てられた変数の組である.前者は MATLAB の API. Simulink モデルから数式へ変換した際に起こる問題の解. により入出力ブロックの一覧を取得し,機械的に変数を割り. 決方法を述べた.制御設計者は常に制御モデルの特性を把. 当てることで作成した.後者は MATLAB の API により取. 握しておくべきであるが,Simulink モデルから数式レベル. 得できる入出力ブロックのリストと Maple/BlockImporter. の特性を把握することは時間がかかる.そこで数式で表す. により変数が割り振られる変数のリストが対応しているた. ことで容易に特性を把握することができる.これは図 1 の. め,それらを元にテーブルを作成した.. フィボナッチモデル (ブロック数:12) でも式 4 の方がシス. 2 つのテーブルを使い,抜き出したモデルから変換した. テムの全体は把握しやすいことからも分かる.. 数式内の変数からブロック名を取得し,ブロック名からシ ステム全体で共有している変数を取得した.. 4.2 今後の課題 本研究で提案した手法では複数の状態方程式・出力方程. 3. 適用結果. 式によりシステムを表現している.そこで,フィボナッチ. フィボナッチ数を計算するモデル (図 1) を対象として状. モデルにおいて式 (1) に式 (2) を代入し式 (4) を得たよう. 態方程式・出力方程式の抜き出し,数式化を行った.フィ. に,最小数の変数・式でシステムを表現することが挙げら. ボナッチモデルは Unit Delay ブロックを2つ,Outport ブ. れる.これはシステムが大規模になるにつれて,制御設計. ロックを 3 つ含むモデルのため状態方程式を 2 つ,出力方. 者がシステムを把握するために必要不可欠である.. 程式を 3 つ持つが,出力方程式の内 2 つはフィボナッチ数 を計算することと無関係のため省略した.. 参考文献. 状態方程式では,ブロック名 Fn から探索すると式 (1),. [1]. ブロック名 Fn 1 から探索すると式 (2) が生成された.出 力方程式では,ブロック名 Out1 から探索すると式 (3) が. [2]. 生成された.. [3]. x1 (n) = x1 (n − 1) + x2 (n − 1) c 2016 Information Processing Society of Japan ⃝. (1). MathWorks: MATLAB/Simulink, http://www.mathworks.co.jp Maplesoft: Maple/BlockImporter, http://www.maplesoft.com/ 山 口, 池 田, 枝 廣 他: Simulink モ デ ル か ら の ブ ロ ッ ク レ ベ ル 並 列 化, 組 込 み シ ス テ ム シ ン ポ ジ ウ ム 2015(ESS2015),2015,pp.123-124.. 2.

(3)

参照

関連したドキュメント

1.レコードセレクターをクリック 2.別のレコードにカーソルを移動 3.ウィンドウを閉じる 4.データベースを閉じる 5.Access を終了する.

化 を行 っている.ま た, 遠 田3は変位 の微小増分 を考慮 したつ り合 い条件式 か ら薄 肉開断面 曲線 ば りの基礎微分 方程式 を導 いている.さ らに, 薄木 ら4,7は

c加振振動数を変化させた実験 地震動の振動数の変化が,ろ過水濁度上昇に与え る影響を明らかにするため,入力加速度 150gal,継 続時間

前章 / 節からの流れで、計算可能な関数のもつ性質を抽象的に捉えることから始めよう。話を 単純にするために、以下では次のような型のプログラム を考える。 は部分関数 (

しかし何かを不思議だと思うことは勉強をする最も良い動機だと思うので,興味を 持たれた方は以下の文献リストなどを参考に各自理解を深められたい.少しだけ案

この節では mKdV 方程式を興味の中心に据えて,mKdV 方程式によって統制されるような平面曲線の連 続朗変形,半離散 mKdV

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

、肩 かた 深 ふかさ を掛け合わせて、ある定数で 割り、積石数を算出する近似計算法が 使われるようになりました。この定数は船