SimulinkにオリジナルのToolboxを追加してみた

#これはなに？
わりと基本的な操作のはずなんだけど最近まで知らなかったので記事にしました！
こんなことを知らなかったのなんてちょっと恥ずかしいですが勇気をだして記事にします。



## Simulinkには数々のToolboxあるよね

あるね。増えると嬉しいよね。
![7A93E97D-18C6-4766-8816-42BB9903A294.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/15be7884-92f9-fa69-9710-8d7377e71acd.gif)



## 自分だけのToolbox作れたら嬉しいと思いませんか？

いやいや・・・流石にそうはならんやろ。


![BA3E3C7A-81D0-4516-88CB-E925759B70F4.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/3e899c83-3b7e-ade4-2295-58cf54085283.gif)


**なっとるやろがい！**



##貴様何をした
ここに書かれていることをやっただけです。
正確に言うとtoolboxではなく自分用のカスタムライブラリーを作ってライブラリーブラウザに追加しました。



https://jp.mathworks.com/help/simulink/ug/adding-libraries-to-the-library-browser.html



#解説


ほとんど元記事とおんなじなんですがカスタムライブラリ作成方法をもう少し噛み砕いて書いてみます

###1．ライブラリを保存するディレクトリを作成

###2.ライブラリ保存ディレクトリをMATLABPathに登録
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/20d2f692-f756-1352-4a43-3b5c7e599043.png)
　　*パスの設定→フォルダの追加→ダイアログでライブラリを保存するディレクトリを指定→保存

ここでちゃんとライブラリファイルを保存するディレクトリのパスを通しておかないとだめなんで必ずやってくださいね。

###3．Simulinkスタートページから　「空のライブラリ」　テンプレートを選んで新規作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/4d5629e2-b8db-a2ba-97f4-c9ed5c357823.png)

###4.ライブラリをサブシステムとして記述する
こんな感じでサブシステムまんま書いてもいいですし、
マスク機能を使って内部を隠してもOK
![07382132-18B6-4947-AA9F-7E0D54522EE0.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/5c75f7b7-2810-2f84-da12-c55825c1941d.gif)

マスクブロックの作り方についてはこちらを参考に。

https://jp.mathworks.com/help/simulink/block-masks.html

###5.ライブラリファイルを開いてActive（キャンパスの何れかを左クリックしてモデルウィンドウを選択している状態）にしてset_param(gcs,'EnableLBRepository','on');をMATLABコマンドウィンドウで実行する。

gcsってのが現在のシステムパス名を取得するコマンドなんです。
なんでこのコマンドは「現在のシステムパスのEnableLBRepositoryというプロパティにONをセットする」って意味なんです。

なんで、gcsのところ、ここにシステムパスを直接打ち込んでもいいですよ。

https://jp.mathworks.com/help/simulink/slref/gcs.html


###6.同ディレクトリにslblocks.mというスクリプトを新規作成
###7.slblocks.m内に下記をコピー・アンド・ペーストで貼り付ける

このスクリプトがどうやらライブリブラウザ登録のために必要なものらしいです。

```MATLAB
function blkStruct = slblocks
% This function specifies that the library 'mylib'
% should appear in the Library Browser with the 
% name 'My Library'

    Browser.Library = 'mylib';
    % 'mylib' is the name of the library

    Browser.Name = 'My Library';
    % 'My Library' is the library name that appears
    % in the Library Browser

    blkStruct.Browser = Browser;
```

###8.Broser.Library = 'mylib' のmylibを今作成しようとしているライブラリファイル名と同一にする
なるほど、じゃあ私はライブラリファイルをMyCustomLib.slxという名前にしたので
テンプレートの'mylib' →'MyCustomLib'　に書き換えればいいんですね

###9.Browser.Name = 'My Library';の My Libraryをライブラリブラウザに表示したいライブラリ名に書き換える
:::note info
ここで自分の好きな名前のToolbox（正確にはライブラリ名）を付けれます
:::

来ましたよ！本記事の山場です。
じゃあ私はThis is My Custom Libなんて名前にしますか。


###10.新規Simulink作成し、ライブラリブラウザを開く。カスタムライブラリが登録されていることを確認する。

もし表示がされなければ
ライブラリブラウザを右クリックしてライブラリブラウザを更新するを選択
![BA3E3C7A-81D0-4516-88CB-E925759B70F4.GIF](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/3e899c83-3b7e-ade4-2295-58cf54085283.gif)
**おおお！ちゃんとなっとるやろがい！**

#まとめ
標準のライブラリだけでなく、自分が作ったライブラリをチームで使いまわしたり、未来の自分のためにとっておくのはとっても便利ですよね。

例えばチームで共通で使ってるサーバにこのカスタムライブラリーフォルダを作っておけば、各メンバーはそのディレクトリにパスを通せばみんなでカスタムライブラリを使いまわせます。

また、カスタムライブラリをgithubのリポジトリにアップすれば、各自ローカルのカスタムライブラリディレクトリにクローンする事で共通ライブラリの使い回しも可能です。

まぁ、ヘルプドキュメントまんまなんで、それみたら出来ることかと思いますが、
オリジナルのツールボックスを作ったみたいじゃん！と軽くうれしかったので勢いで記事化しました（30分高速執筆）

みなさんも独自のスーパーツールボックスを作ってしまいましょう！

#え？もう作ったって？
じゃあMathworksのFile Exchangeで公開だ！
ここではユーザーさん（一部MathWorksスタッフ含む）が作ったいろんなスクリプトやモデルが公開されてます。是非トライしてみてください。

https://jp.mathworks.com/matlabcentral/fileexchange/?requestedDomain=