Simsacpeで作ったモデルをAWS上で動くアプリにしたい

# これは何？
"俺のDual Active Bridge Converterモデル、みてーーー！"
ってだけの記事。

## うるせぇ　Dual Active Bridgeってなんだよ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/cb3b5fc4-b57a-c4fb-ee50-c358bbd8ca27.png)

Dual Active Bridgeはその名の通り2つのブリッジ回路から構成されるコンバータの回路方式の一つです。双方向に電圧を搬送させることができ、設計を工夫すればそれなりの電圧差がある状況でも動作します。そして漏れインダクタンスによってスイッチングデバイスの電化が抜けてその後デバイスが切り替わるので、うまく動作範囲を守ればZVS（ゼロボルトスイッチング）が達成されてスイッチング損も低くて嬉しいトポロジです。

Dual Active Bridgeだと長いので、DAB,（ダブ）とかと言われてますよね。
DABはみんな知ってますよね。だって僕の周りのお友達みんなDABしっていますもんこれくらいは一般常識ですよね（目をギラギラ輝かせながら)


## 動くのかよDAB！？

うごきます。
モデル欲しい人はこちらから→
https://github.com/mathworks/auto-pid-tuning-for-dual-active-bridge


![2024-12-12_15-18-57.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/584571d5-468b-94b9-22e7-3e80d6270099.gif)

## DABをもっと手軽に体験してもらうには・・・

Simulinkのオプション製品であるSimulink Compilerを使うと
モデルをアプリ化するという機能がついてるらしいです。

https://jp.mathworks.com/products/simulink-compiler.html

アプリタブ→アプリの設計→モデル用アプリの生成で
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/b35f601a-9b36-1ae0-2977-2f57a117f97c.png)

用意されたテンプレートを使ってアプリを作ってしまうと
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/a669d570-9f56-f7de-0c49-774613903e7e.png)


なんと、自動で気の利いたGUIまで作ってくれるのです。
※今回はR24aで試したけっけかでバージョンによっては若干GUIちがってるみたいです。

![2024-12-12_15-28-34.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/ac3d6fbe-e11a-0129-8a77-11184bcbb565.png)


最初起動したときは表示できる信号はありませんなどとのたまっていますが
シミュレーションを開始するとSimulinkモデルの中で信号線でログの取得が有効になっている信号が選択でき、グラフ描画できるようになります。

![2024-12-12_15-30-07.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/935b1d39-e9a3-ddb1-c805-cf58b89ee43f.gif)

これでみんなにDABをとっつきやすく体験してもら得るようになったかも！



# おわり？

いえ、僕は欲深い人間なので、このDABの魅力を皆さんにもっとしてほしいんです。
でもどうしたらいいかわからないんですよ。
サーバとか持ってないし・・・オシロスコープは家にあるんですけどね。



# そこでクラウド
AWS（Amazon Web Services）とは、Amazonが提供するクラウドコンピューティングサービスの総称です。サーバーやストレージ、データベースなどを提供・共有する「パブリッククラウド」の一種で、業務を円滑化する多種多様なサービスを展開しているそうです。

パブリッククラウドにしちゃうと大変そうなので、とりあえずAWSになんかこのモデル動かせる環境さえ作ってしまえばぼくの野望は達成できそうです。

## MATLAB Web App Server

MATLABのライセンスとして購入可能な製品としてMATLAB Web App Serverってのがあるらしいです。（担当外なのでまじでよく知らん）
こいつをサーバにぶち込むとなんかさっきのアプリをブラウザ上で動かせるみたいです。

でも私はパワエレエンジニア、クラウド？AWS？EC3？そんなもんわかんねぇです。

## そこでリファレンスアーキテクチャ
ざっくりいうとこちらの手順にしたがって設定したらWeb App ServerがAWS上に定義できます。
AWSだけでなくAsureもGCP用もあるみたいです。

https://github.com/mathworks-ref-arch/matlab-web-app-server-on-aws?tab=readme-ov-file

まじで手順かいてあるのでいちいち説明しませんが、そのとおりに（英語読めないなら翻訳してしまえばいい）やれば環境が作れました。

## アプリをWeb App Serverで動作できるファイル形式に変換

先ほどSimulinkモデルからアプリの生成をやりましたが、
それで生成されるのはアプリだけじゃないんです。
じつはWeb App Serverで動作できるファイル形式に変換するための関数である
deployEwbApp.mも生成されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/5e2f7ae4-de85-ea69-16b9-cfa9a4a43677.png)
こいつを実行すると。。。。
deployWebAppってフォルダにWeb App Serverにアップロードするためのファイル形式である
.ctfファイルが保存されます。
至れり尽くせりですね。

![2024-12-12_15-36-34.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/2be80851-f4bb-f517-b627-da12a0798c0b.png)

一つ注意が必要なのはアプリ化に伴ってSimulinkおよびSimscapeのモデルは
ラピッドアクセラレターモードとして動作するようです。
ラピッドアクセラレターモードではSimscapeブロックの内部変数のロギングはサポートしていないようなので、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/051b3b96-04b2-eb05-fd2f-81fefb2766d7.png)
こちらのコンフィグレーションでSimscapeのデータログ記録は記録しないように設定しておくことをお忘れなく。

また、アプリで閲覧可能な信号は、Simulink信号のうちログが有効になっている信号です。
同じくコンフィグレーション内で、ログをどのような形式で保存するかをせっていするぶぶんがあるのですが、
形式を”データセット”にしておくと良いようです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/99991d43-de52-7e76-1300-1d8679cf7e80.png)

信号のログのしかたはこちら。
https://jp.mathworks.com/help/simulink/ug/view-the-signal-logging-configuration.html

このあたりもR24aでの話なのでバージョンがちがったらちょっと変わるかもしれません。ゴメンちゃい。


## Serverで動かす
あとは.ctfファイルをサーバにアップロードしたら（AWSを使うときはS3に仮想ストレージが定義されるのでそこにぶち込んだらOKです）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/b097cfdb-df18-a6e1-fa3f-8d29fe272fd0.png)

なんかできてる！

あれ、ブラウザでうごくってことはもしかして。

![2024-12-12_15-51-22.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/d1581ea2-fd1e-0c10-3cdb-3a69961a4a7c.gif)

iPadから動いた！！！やるじゃねぇかクソだらぁ！！！！！

# まとめ
みなさんDual Active Bridgeについて詳しくなったと思うのでぜひお手持ちのSimscapeでなくてもいいので回路シミュレータでDual Active Bridgeを組んで遊んでみてください。台形波形がきれいに表示される様子だけで酒が飲めること間違いなしです。

ところでAWSってアカウントノリでつくったけど無料なんだっけ。
あれ、なんだこれは。

![2024-12-12_16-02-25.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/e3546688-d07f-f499-8904-bb159123ed55.png)

![image (5).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/331637/0c0835e2-03bf-5056-c823-e1ca49aca2a9.jpeg)

以上よろしくお願いいたします。