bio_img_japan-community

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

MATLAB & Simulink ユーザーコミュニティー向け日本語ブログ

AI x Simulink 協調設計:40 時間でコンバータの回路・制御を設計してみた ~これからのシステム設計におけるAIとの付き合い方とは?~

今回はアプリケーションエンジニアリング部の鎌谷がお送りします。


こんにちは。アプリケーションエンジニア 鎌谷です。
皆さん AI を使って色々お試しされていますでしょうか?
私も最初は AI 使って Simulink モデルを作って「やった~できたぁ」等と楽しんでいましたが、
だんだん「これ・・・自分でモデリングしたほうが速くないか」という気持ちを感じていました。
そして自分の中で「AI と Simulink ってどうやって連携させると一番いい感じなのかしら?」という疑問がわいてきました。
そんな疑問をスッキリするために、皆さんはどうしますか?
私は
そうだ!自作のコンバータを AI と Simulink で作ってみてどうなるか試してみよう!と思い立ちました。
で、やってみましたので報告します。

1.なにをやったのか

制御:STM32 を使ったマイコンにコンバータの出力電圧一定制御を Simulink からコード生成して実装
回路:Simulink の回路モデリング機能、Simscape で設計した回路パラメータを使って回路 CAD で基板設計
を行い、これらを統合して実機で動作検証するまでに累積 40 時間の工数で完走しました。
基本的な設計は Rev.B で完了し、なんと累積設計時間は 40 時間ほどでコンバータの制御・回路の動作検証を実機基板で実施できました。
これらの基板は個人でも発注可能な基板製造メーカにおまかせしましたが一部回路 CAD による回路設計にも AI との対話をしながら作りました。
本来、Rev.B で設計を終わらせる予定でしたが、あまりに回路設計が楽しかったので Rev.C では
思いつきの仕様をを追加しました。鎌谷の自己満足を満たすためのオマケ仕様と思ってください。
じつはこのプロジェクトをやろうと思ったときに、私は回路 CAD を使ったことはありませんでした。
未だに AI がどうやって今回使った回路 CAD(KiCAD)を操作していたかわからないところがあります。
でも、Simulink、KiCAD 含めたツールの作業部分をAIにまかせたことで非常に短い時間で設計を完遂できました。
ではどういうふうに AI や Simulink を使ったのかをご紹介します。

2.AI との協調設計の流れの紹介

AI 活用のポイントとしては「AI になんでもかんでもやらせない」「むしろ Simulink を設計の中心とすること」を意識しました。
一部、AI により Simulink モデルや回路 CAD ツールの回路図・パターンデータを自動生成してもらったこともありますが、それにこだわらず人間がそれらを協働で編集しました。
むしろ明確にしたのは役割の方です。
AI にシステム設計情報の定義や、シミュレーション動作の検証結果までまるっと任せてしまうと、大量の情報を人間に提示してくることがあります。
また、AI の途中処理経過を追いかけることが困難で意図しない動作をしてしまうことがあります。
そこで、上記スライドのように
  • 人間:設計プロセス定義と設計方針の意思決定の実施
  • AI:作業の自動化、設計情報の整合、設計経過記録の作成
  • Simulink:システム設計情報の定義・シミュレーション結果提示によるシステムの現状の状態を示す
という役割をぶらさず最後まで維持するように意識して使いました。
これにより、人間は AI との対話のみで現状の設計情報を把握するのでなく、Simulink によるシミュレーションにより現状を把握できるようになります。
・・・じつはこれは、これまでも Simulink が提供してきた「MBD:モデルベースデザイン」の考え方を維持した考え方だと私は思っています。
MBD はよく V 字プロセスでその説明がされることがあります。それもそれで正しいです。
が、AI との連携を考慮すると MBD の本質は「意思決定プロセス」に「モデル」を活用することではないかと考えています。
今までは、V 字プロセスで示される上流から下流までの設計プロセスに対して、たとえ設計フェーズで担当者(人間)が変わっても一貫した認識を保ち、必要な設計のための意思決定をするためにモデルを活用してきました。
ここでその考え方を元にAIとの連携を考えると「AI と人間が共通の資産で一貫した認識を保つ」ために使えるのではと考えて、
このセクションの一番最初の 3 つの役割を考えたのです。
では、2-1~2-4で実際の設計でどういうふうにアクションをしていったのかご紹介します。

2-1.システム全体の動作を Simulink で定義

まず、AI と対話しながら Simulink モデルを作って一体自分がどんなコンバータを作りたいのか具体化していきました。
ここで AI に全部モデルを生成してもらおうとはしませんでした。
どちらかといえば叩き台を AI に作ってもらって、あとで見た目や構成の整理を人間がしていったというスタイルで進めました。
設計のゴールとしてはできれば、パワエレ初学者の方に手軽に扱える教材のような形にしたかったので、
USB-PD で手軽に電圧を取得できる 9V~15V の入力電圧を、マイコンや USB でも扱う 5V に降圧する 5W 級のコンバータを作ることにしました。
それを目指して Simscape Electrical で回路の主要部品パラメータを決定し、それと適合した制御モデルも設計していきました。
じつはこのフェーズで概ね構築したいコンバータが設計可能であろうことの見積もりは立てられていました。
回路の主要部品は決まりましたし、そのパラメータで上記の通り電圧の制御品質(変動があっても 150m V以上電圧が振れない)が保てていることを確認できていたからです。

2-2.Simulink 定義を回路 CAD へ AI を介してパラメータ同期

AI の役割である「設計情報の整合」をこのフェーズで活用しました。
Simulink で動作が正しく動くという確信を得た回路パラメータが定義されているので、それを KiCAD の回路図パラメータに反映してもらう作業をAIにまかせました。
このようなつまらない単純作業で絶対に間違いがあってはいけない写経のような作業にAIは抜群に向いています。
人間だと何時間もかかって、しかもたまにミスが有るような作業を AI はわずか 15 分ほどで間違いなく完遂します。
また、部品を具体的に選定することも大変楽でした。AI は発注先の JLCPCB の在庫を確認して、在庫が有る部品の中で選択できるパラメータを提案してくれました。
一部、部品在庫の都合でパラメータ変更が必要なことがわかりましたが、直ちに 2-1. に戻って設計をやり直して Simulink 設計を Update しました。
これにより常に Simulink を設計のゴールとして扱いつつ設計変更にも柔軟で素早い判断ができるようになりました。
最近回路パターンの設計を AI が自動化することが Twitter、現 X で話題ですが私はそこまでトークン代を払えなかったので基本的な部品配置のみで回路パターンは私が定義した部分が多かったです。
当時 Codex の GPT5.6 を使っていましたが、現在の GPT6.1 だともっと出来ることが増えているかもしれません。

2-3.コード生成と基板実装

コード生成と回路実装は上記の通り実施しました。
コード生成は Simulink おなじみの機能ですが、R2026a より登場した STM32 Microcontroller Blockset によりペリフェラル含めた一括コード生成がサポートされました。
従来のハードウェアサポートパッケージではサポートしていない型番もサポートできるようになったため一括ビルドですぐにマイコンに実装できました。
回路設計は KiCAD で作成した製造データを JLCPCB に発注して 1 週間半ほどにこにこしながら待ってたら届いてました。
ちなみに、製造データであるガーバーデータや BOM、部品配置データを生成してほしいと AI に頼んだだけで、いまだにどのようにこのファイルを設計データから生成するかやり方を知りません。

2-4.実機動作検証

早速統合したコンバータを動かしたのが上記の図右側のグラフです。5W 級の小型電源なのでこれぐらいなら皆さんの”逸汎の誤家庭”にある一般のオシロスコープでも十分計測が可能です。
設計パラメータを全部 Simulink から引用してるので当たり前ですが、動作がバッチリ一致しています。
正直とても気持ちがいいです。ここで Rev.B の設計は完了したと判断しました。
余談ですが、実機にはスイッチングのリンギングによって GND 電位が揺れることで発生するサージが観測できました。
ここが少し気持ちが良くないので Rev.C では劇的改善をさせました。
なんと回路パターンのレビューは GPT-6 Astla が担当しかなり適切なコメントをしてくれました。

3.やってみてわかったこと

3-1.やってみて困った所

やはり困ったのは、生成 AI にモデル生成を頼んでみても一発でいい感じのモデルが出てこないということです。ただ、それはそのはずかと思いました。
なぜなら、私は既にどこかで作った製品をコピーしたり改変しようとしてるのではないので、まだ自分が何を作りたいのか明確でないから具体的な指示ができないからです。
なので、冒頭の通り「AI の役割を変えよう」と考えて、AI といっしょに考える伴走型スタイルで進めました。
ここで「AIになんでもモデルを作らせよう」という考え方を一旦変えてみようというところで時間がかかったように思いますが、これはどちらかというとこのプロジェクトを開始する前に試行錯誤しているときに悩んでいたところです。

3-2.うまくいったこと・楽しかったこと

2.でお示ししたAIとの協調設計という考え方を採用してから、自分のアイディアがどんどん具体化されていき、その作業が AI によって加速され、出力されたSimulinkモデルの見てさらに自分が判断をして・・・・というサイクルが高速に回っていくことを体感できました。
ここで大事なのはやはり人間は明確な役割を維持し、全体を管理するためのワークフローを設計することに徹したことだとおもいます。
また、AI は必ずしも Simulink だけと連携できるわけではないので、今回の KiCAD のように他のツールと連携することで Simulink を設計の中心と置く意味合いと重要性も更に広がったと思います。
これは MBD の価値と同義ですが、Simulink で設計しようとしてるシステムの動作が明確になっているので、様々な設計における意思決定が速いことも大変に心地よかったです。
とくに電気回路設計では「本当にこれで動くのか・・・?」と決めかねて色々考えている時間というのが意外に馬鹿にならないこともありますが「Simulink で動いてるしな」とおもって躊躇無く発注ボタンをポチれたのも高速化の要因でありました。
なにより、個人で思いついた企画アイディアを、コンバータの設計として具体化、
そして全体を管理し、それが手元に届く体験は凄まじいものでした。

まとめ

今回の事例はあくまで私の試してみた事例ですが、つぎはみなさんがいろんなことを試されていただけると幸いです。AI と Simulink を連携させる機能は Simulink Agentic Toolkit といいましてこちらで詳細を確認できます。
Simulink をお持ちの方はぜひトライしてみてください。

|
  • print

评论

要发表评论,请点击 此处 登录到您的 MathWorks 帐户或创建一个新帐户。