MATLAB ユーザーコミュニティー

matlab&si金宝appmulinkユーザーコミュニティー向けブログブログブログ

金宝appsimulink apiでmatlabからsimulinkをを操る

こんにちはテクニカルエンジニアのと申します。
闪电谈话ののの発表として制作について语らてていただきまし。。

今回はゲストブログとしての投稿ということで何について書こうか色々迷ったのですが、私は仕事では Simulink、趣味では MATLAB をよく使っているので、その間を取ったSimulink APIについて書いていきたいと思います。

金宝appsimulink simulink simulinkエディタエディタでマウスによってモデルを编集ていきいきますますがが,,何度も同じようような操作操作を行う行う场合场合场合やや大规模モデル特定特定特定特定特定特定特定特定の场合など操作もプログラムからしてしまっ方楽なことがことがます。

このような場合に便利なのが Simulink API です。

金宝appSimulink APIとは

金宝appsimulink apiとはmatlab simulink simulinkのの使用するためのコマンド群ことことででで,,,,,,,,のののエディタ上ででで行っているいる操作操作ののの一部一部一部(((ブロックための机能。

Simulink API の基本的な使い方は「プログラムによるモデル化の基礎」でされて。。

金宝appsimulink apiの关数一覧

プログラムによるモデル编集」に、用意されている関数の一覧がまとめられています。

金宝appsimulink simulinkをコマンドブロックをするする様々なコマンドがさされててているいることがわかりますがが,,さすがさすがにこれらすべてすべてををを一度解说にににことことことことことことことこと思われる「パラメータの」について详しくしいきたいと思い。。

ブロックのパラメータの変更

モデルを編集していく中で、

  • 条件によって上ブロックのをををスクリプトからたいたい
  • 特定のブロックの設定を一括して変更するような m スクリプトが欲しい

というような需要は一定数あるかと思います。

このようスクリプト作成するに便利なのが

get_param
set_param

2つのつのになります。

get_param,set_paramははブロックモデルののおよび変更をするための关数。
使うときは,

p = get_param(ブロック,'パラメータ名');
set_param('ブロック,'パラメータ',パラメータ値);

という構文を使用します。第一引数のブロックオブジェクトには、基本的に階層を含んだブロック名(’model/Scope’ など)を文字列で指定します。

Mymodel.slx’とというモデルあったたと。。​​。。

このモデルの Gain ブロックのゲイン値を取得してみましょう。上記の構文に従うと、

>> gain = get_param('mymodel/gain','gain')

によってゲインができるはず。実际に実行とととととと

gain =
'5'

ゲイン値が文字列として取得できました。

间违いやすいて,ブロックブロックゲインブロックダイアログ上入力するパラメータは基本基本的にに文字列となりなり
そのため、取得したパラメータを数値に直すためにはstr2num関数などをセットで使用しましょう。

>>值= str2num(增益)
值=
5

10にをををにに変更してset_paramののの构文従って,,,,

>> set_param('mymodel/gain','gain','10');

を実行すると、

ゲイン値が変更されました。

get_param の時と同様に、set_param でもゲイン値は文字列として与える必要があります。
例えば次のようなコードだとエラーになってしまうので注意です。

>> set_param('mymodel/gain','gain',10);% 数値を直接与えるのは間違い!
パラメーター'增益'に対する增益块'增益'内の设定がですですです

それでは、今度は Gain ブロックの「乗算」の部分を「要素単位(K.*u)」から「行列(K*u)」にコマンドで変更してみましょう。

set_paramででででパラメータ変更には名ががにになり。。。
「乘」パラメータ名どうどうて调べれのでしょのでしょうかかかかかか

このようなときに便利なのが「これはなに?」机能です乘」部分をクリックと「これこれはなに?」といういうポップアップポップアップが出てて

これをクリックすると……

このようの说明にてパラメータ名,型,取り得る取り得る値などなどを确认确认する。
“乘法”という算というというのなので以下のようななをを実行ますます。ますますますます

set_param('myModel/Gain','Multiplication','Matrix(K*u)');

「乗算」を変更することができました!

ちなみに、パラメータ名などの情報は各ブロックのヘルプドキュメントから確認することもできます。
复数のまとめてするときなどヘルプ见た方が楽ですね
(各ブロックのヘルプはダイアログの「ヘルプ」ボタンからチェックできます)。

ダイアログにないブロックパラメータ

前述した通り、ブロックのダイアログにあるパラメータは「これはなに?」機能やヘルプドキュメントでパラメータ名や取りうる値を調べることができます。

しかし,や背景色の的なパラメータはこの方法方法ではは确认するすることができ。
ここで役立つのが、「共通のプロパティ」ドキュメントです。

このドキュメントを見れば、設定できるパラメータおよびその名前を確認することができます。
例えば、先ほど例に挙げたブロックの位置は “Position”、背景色は “BackgroundColor” であることがわかります。

ちなみに、上記の共有のブロックプロパティの中に “ObjectParameters” というプロパティがあるのですが、これを get_param することでそのブロックのパラメータ名をすべて構造体として取得することができます。

lists = get_param('myModel/Gain','ObjectParameters');

また,が固有持っているについて「「「ブロック固有のパラメーター」にがあります。

ブロックの検索

さて、set_param や get_param ではブロックパスを指定してパラメータを取得、変更しますが、例えば「モデル上の特定の条件を満たすブロックすべてのパラメータを変更したい」というような場合、複数のブロックを手動で指定するのは非常に手間がかかってしまいます。
せっかくプログラム的にパラメータを設定できるのですから、ブロックパスの取得も自動でやりたいですよね。

ここで登场のがfind_systemという関数です。

blocks = find_system(検索対象,パラメータ,パラメータ値);

という构文パラメータがの値とてブロックを検索することができます。

よく検索で使うパラメータとしては、ブロックの種類が設定されている “BlockType” パラメータがあげられます。
例えば,增益3つあるモデルモデルモデルモデル“ mymodel2.slx”をを。。。。。。

このモデル上のすべてのゲインブロックを取得したい場合は、”BlockType” パラメータが “Gain” になっているブロックを検索すればよいので、

>> gainBlocks = find_system('myModel2','BlockType','Gain')

となり。実行结果,,

gainBlocks =
3×1の细胞配列
{'myModel2/Gain' }
{'mymodel2/gain1'}
{'mymodel2/gain2'}

セル配列全てブロックパス取得できました。

また,は复数指定できる「「「「「「「「「「「「「」」」に设定さてているゲインブロックブロックをを

>> gainBlocks = find_system('myModel','BlockType','Gain','Multiplication','Matrix(K*u)');

とすれば大丈夫です。

ただし、set_param や get_param はブロック 1 つに対してのみ使用可能です。
そのため复数取得たブロックのをたいたいはは,

为了i = 1:length(gainBlocks)
set_param(gainBlocks{i},'Gain','10');
结尾

のように、for ループなどで 1 つずつ設定しなければなりません。
この部分オブジェクトのの

その他、検索オプションもいろいろあるので、詳しくは「find_system」をチェックしてみてください。

ちなみに、直近でクリックしたブロックはわざわざ find_system を使用しなくてもgcbというコマンド取得することができ。。

>> type = get_param(gcb,'BlockType');%直近にたブロックタイプを取得取得

コマンドウィンドウ上で動作を確かめる際などに便利なので、覚えておきましょう。

コンフィギュレーションパラメーターの変更

ここまではブロックのパラメータ変更の話でしたが、get_param や set_param はブロックだけでなくモデルにも使うことができます。
よく使う,モデルコンフィギュレーションパラメーターのをするするですです。

コンフィギュレーションはや,コードなどモデル关する様々设定を行うためのの。。。
エディタ上では、「モデル化」タブの「モデル設定」を押す、または Ctrl+E で開くことができます。

モデルのアクセス场合はブロックパス名を指定し。。

>> solver = get_param('myModel2','Solver')%mymodel2.slxのソルバー取得取得取得

solver =
'variablestepauto'

现在アクティブなっているははgcsというコマンドで取得できます。

>> solverType = get_param(gcs,'SolverType');% 現在のモデルのソルバータイプを取得

solverType =
'Variable-step'

また、コンフィギュレーションパラメーターでも「これはなに?」機能が使用できます。
コンフィギュレーションパラメーターな名が多いので积极に活用してましょう。

「コード」「コードとアーティアーティのパッケージ化はははははははははははははははははははははははははは
(长い……)

おわりに

今回は set_param, get_param の使い方について解説しました。

App Designerととのなどについても书こ书こととててのですのですのですががが,,,,ののののの方方だけで结构结构な量になってしまったた

sim金宝appulink simulinkをするににしかしかしかしかをを触っないという方方もも,,これこれをををを机机机机にににににににににににににににににに

(()
コマンドでオブジェクトの位置を変更するって見るとついこんなものを作りたくなります。

|
  • 打印
  • 发送电子邮件

注释

To leave a comment, please clickhereto sign in to your MathWorks Account or create a new one.