自作ブロックライブラ​リをSimulink​ライブラリに追加する​にはどうすればよいで​すか?

158 Ansichten (letzte 30 Tage)
MathWorks Support Team
MathWorks Support Team am 25 Okt. 2013
自作ブロックライブラリをSimulinkライブラリに追加する方法を教えてください。

Akzeptierte Antwort

MathWorks Support Team
MathWorks Support Team am 26 Okt. 2013
自作ライブラリを追加する方法は、次のような流れになります。
1. ライブラリの作成
2. slblocks.m を自作ライブラリの置いているフォルダにコピー
3. slblocks.m の編集
4. 自作ライブラリを置いているフォルダにパスを通す
以下に各手順について説明します。
1. ライブラリの作成
ライブラリを作成します。
モデルウィンドウのメニュー[ ファイル ] →[ 新規作成 ]→[ ライブラリ ]を選択すると、新規ライブラリウィンドウが開きます。ここに自作のマスクしたブロックを配置し保存します。
ライブラリ内のブロックを階層化するには、ライブラリ内にSubsystemブロックを配置します。
例えば、Simulinkライブラリはその下に14個のライブラリがあります。これは14個のSubsystemを配置し、その中にブロックを配置することにより階層化しています。
下図のウィンドウは以下のコマンドで開くことができます。
open_system('simulink')
では実際にライブラリを作成します。
ここでは簡易化のために、Simulinkライブラリの下のSourcesライブラリにあるRampブロックとRepeating Sequenceブロックを配置します。Repeating Sequenceブロックは1つ下の階層に配置します。作成したモデルはmylib.mdlと名前をつけて保存します。
Subsystem内部の編集方法を以下の図に示します。
2. slblocks.mを自作ライブラリを置いているフォルダにコピー
ライブラリの確認方法は、ライブラリブラウザと後述のBlocksets_and_Toolboxesウィンドウの2つがあります。これらに自作ライブラリを表示するには、自作ライブラリの置いてあるフォルダに slblocks.m というファイル名のMATLABファイルを置く必要があります。
どの Toolbox や Blockset のライブラリにもこのMATLABファイルが存在します。
次のコマンドで各ライブラリの slblocks.m MATLABファイルを検索することができます。
which('slblocks.m', '-all')
slblocks.m を作成するには、既存の slblocks.m をコピーし、それを雛型にし編集します。
次のコマンドでSimulink標準ライブラリの slblocks.m を開くことが出来ます。
edit slblocks
開かれた slblocks.m を自作ライブラリの置いてあるフォルダにコピーして下さい。
3. slblocks.m の編集
Blocksets_and_Toolboxesウィンドウとライブラリブラウザでの表示設定はslblocks.mで作成する構造体データblkStructで行います。
2でコピーしたslblocks.mの編集例を以下に示します。
function blkStruct = slblocks
% 自作ライブラリ名がmylib.mdlの場合
% Blocksets_and_Toolboxesウィンドウでの表示設定
blkStruct.Name = 'My Library';
blkStruct.OpenFcn = 'mylib';
blkStruct.MaskInitialization = '';
blkStruct.MaskDisplay = '';
% ライブラリブラウザでの表示設定
% 注意:Browserフィールドを設定するときは、構造体配列のインデックス番号を入力
% インデックス番号が未指定の場合とは、以下のような記述です
% Browser.Library = 'mylib';
Browser(1).Library = 'mylib';
Browser(1).Name = 'My Library';
Browser(1).IsFlat = 0;
blkStruct.Browser = Browser;
構造体データblkStructのフィールド構造は次の図のとおりです。
1) Blocksets_and_Toolboxesウィンドウでの表示設定
simulink.mdlから開かれる、Blocksetを表示するBlocksets_and_Toolboxesウィンドウでの表示設定を行います。
●Nameフィールド
編集対象のライブラリのアイコンに表示される名称。
●OpenFcnフィールド
編集対象のライブラリをダブルクリックしたときに実行するコマンド。通常は開きたいライブラリのファイル名を入力。
●MaskInitializationフィールド
MaskDisplayフィールドでの表記を簡略化するために、使用したい変数を定義する目的等で使用。
●MaskDisplayフィールド
編集対象のライブラリのアイコンの描画設定。このフィールドの記述方法は、マスクエディタの[アイコン]パネルでの記述方法と同じ。描画設定をしない場合は下図のように表示。
2) ライブラリブラウザでの表示設定ライブラリブラウザでの表示はBrowserフィールドに定義された情報により定義されます。Browserフィールドはさらに 3 つのフィールドを持ちます。
●Browserフィールド
- Libraryフィールド
アイコンをクリックしたときに開くライブラリのファイル名。
- Nameフィールド
表示するライブラリの名前。
- IsFlatフィールド
ライブラリブラウザ起動直後、アイコンの左側にある「+」を表示するなら「0」を、表示しないなら「1」を設定。通常、ライブラリを階層化するならば「0」を設定。
4. 自作ライブラリを置いているフォルダにパスを通す
次のコマンドを実行すると「パスを設定」ダイアログが開かれます。
pathtool
ここで[ フォルダを追加 ]ボタンを押して開かれる[ フォルダの参照 ]ダイアログで、自作ライブラリを置いているフォルダを選択します。[ OK ]ボタンを押してそのフォルダにパスを通すことで、常にMATLABは自作ライブラリを参照します。
従ってBlocksets_and_Toolboxesウィンドウとライブラリブラウザに常時自作ライブラリを表示することができます。
下図では、自作ライブラリが次のディレクトリにある場合の[ フォルダの参照 ]ダイアログを示しています。
C:\Program Files\MATLAB\work\Library_entry
最後に、ライブラリブラウザまたはBlocksets_and_Toolboxesウィンドウを一旦閉じ、再度開いたときにライブラリが登録されたことを確認します。
[ My Library ]の下にある[ Subsystem ]を選択するとRepeating Sequenceブロックが表示され、階層化されていることが確認できます。

Weitere Antworten (0)

Kategorien

Mehr zu 対話型のモデル編集 finden Sie in Help Center und File Exchange

Produkte


Version

R2007b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!