bio_img_japan-community

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

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

Claude Code と MATLAB MCP Server で試す Simulink と Simscape モデリング

※この投稿は 2026 年 2 月 26 日に Guy on Simulink へ 投稿されたものの抄訳です。

今回は AI エージェントが Simulink のワークフローをどのように支援できるかという探究をさらに一歩進めます。
これまでの投稿では、GitHub Copilot を MATLAB MCP Server に接続する基本ステップや、Simulink モデルをシミュレーションする MATLAB コードを生成するための基本的なコーディングルールを作成してきました。

今週は、少し横道にそれつつ前進します。

  • GitHub Copilot の代わりに Claude Code を使用します。
  • 既存のモデルをシミュレーションするのではなく、新しい Simulink モデルを作成します。

その結果がどうなったのか、見ていきましょう。

課題設定

同僚から、次のような依頼を受けました。
現在利用可能なバージョンの MATLAB を使って、AI エージェントを活用して Simulink モデルを構築することは、どの程度現実的でしょうか。例えば、まずはシンプルに、コーヒーのカップがゆっくりと室温まで冷めていく温度変化をモデル化してみましょう。この投稿で説明されているようなものです。」

例えば、こんな感じです。

質問に答えるために Claude Pro のアカウントを取得し、試してみることにしました。

試してみた結果

Claude Code を使った経験はほとんどなかったため、画面録画をオンにして、完全にゼロから始めました。

以下の動画では、この最初の体験の要点を紹介しています。調べもののために席を外した部分や、AI が考えている間の退屈な部分は編集でカットし、早送りしています。それ以外は、実際に私が体験した内容の大部分をそのまま残しています。

詳細

ここからは、私が行った内容を順に説明します。

セットアップ

Claude Code の Quickstart の手順に従い、最新バージョンの MATLAB MCP Server をダウンロードした後、Windows PowerShell を起動し、次の行を実行して MATLAB MCP Server を Claude の設定ファイルに追加しました。

claude mcp add
 –transport stdio matlab
 — “C:\Path_To_MCP_Server\matlab-mcp-core-server-win64.exe”
 –matlab-root=C:\MATLAB\R2025b
 –initialize-matlab-on-startup=true
 –matlab-display-mode=desktop “–initial-working-folder=C:\MyProjectPath”

これが完了した後、空のフォルダーから claude と入力すると、新しい MATLAB セッションが起動しました。

プラン

Claude をプランモードに切り替え、私のハイレベルな目標を説明しました。

そしてモデル案を提案されました。

数回の反復を経て、納得するプランが提案されました。

そのプランの実装を始めてもらう前に、少し時間を取って Best Practices for Claude Code を読みました。中でも重要だと感じた助言は、「指示が具体的であればあるほど、修正は少なくて済む」です。これを受けて、次の 2 つを試すことにしました。

  • スキルスキルを作成する手順に従い、私が通常どのように Simscape ブロックを選択し、接続しているかを、いくつか箇条書きでまとめました。
  • 段階的な開発:Simulink モデルを作成する際、私は決して一度にすべてを描き上げることはありません。段階的に開発し、検証します。

スキル

Simscape モデルを MATLAB コードから書きたいユーザーに私がいつも伝えているいくつかのポイントを、skills.md ファイルに書き出しました。以下はその一例です。

## Adding blocks
– Add blocks using `add_block(‘libraryPath/BlockName’, ‘modelName/BlockName’)`
– Add blocks from Simscape shipping libraries: fl_lib, sdl_lib, SimscapeFluids_lib, nesl_utility
– Don’t set the position of blocks explicitly.
– After adding Simscape blocks use auto-arrange: `Simulink.BlockDiagram.arrangeSystem(‘systemName’)`
## Connecting blocks
– Connect Simscape physical ports using `simscape.addConnection(block1,port1,block2,port2)`
– Obtain ports info using `portsInfo = simscape.connectionPortProperties(block)`. portsInfo fields are Name, Label and ConnectionType
– Only connect together ports with same ConnectionType
## Simscape variables logging
– Get the default variable table: `table1 = simscape.instrumentation.defaultVariableTable(‘modelName/Block’)`
– Enable logging: `table1(“variable”).Logging = true`
– Apply: `simscape.instrumentation.setVariableTable(‘modelName/Block’,table1)`

このスキルを使うことで、Claude は私の課題の一部に対して、このようなシンプルなモデルを素早く構築することができました。

計画どおりに温度が変化していることを検証することもできました。

段階的な開発

Simulink ユーザーに対して、私がいつも伝えているもう一つの助言があります。
  • 段階的に開発する
  • こまめに検証する
  • 進めながら整理する
そこで私は、次の熱伝達経路に進む前に、それぞれの熱伝達経路を実装して検証するよう Claude に依頼しました。また、途中で整理を行い、各熱伝達経路を個別のサブシステムとしてまとめました。今回は試しませんでしたが、それを自動化するのを支援するエージェントを作ることも可能だと思います……それについては、今後の投稿に取っておくことにします。

すべてが完了し、モデル全体の検証が終わった後は、このブログ用のスクリーンショットで私が好む見た目にするために、ブロックの移動やサイズ変更といった見た目上の調整だけを手作業で行いました。こちらが最終的なモデルです。

このプロジェクトには(投稿冒頭のリンクから GitHub でアクセスできます)、AI によって生成されたコードとモデルを含めています。run_coffee_mug.m というライブスクリプトを実行してみてください。

次のステップは?

今回の短い試行錯誤で私が体験したこと、そしてツールスキルエージェントについて少し調べた結果からは、良い感触を得ています。物事は急速に進んでおり、ハイレベルな要求から Simulink モデルを作成し、検証するためのツール、スキル、エージェントを、近いうちに提供できるようになると確信しています。

次はあなたの番です

MATLAB や Simulink で AI エージェントを使い始めていますか?ぜひ、コメント欄であなたの経験を共有してください。

|
  • print

コメント

コメントを残すには、ここ をクリックして MathWorks アカウントにサインインするか新しい MathWorks アカウントを作成します。