MATLAB(マトラボ)は行列計算を軸にした数値計算の言語と開発環境、Simulink(シミュリンク)はMATLABの上でブロック線図を組み、時間とともに変化するシステムをシミュレーションする環境です。どちらも米MathWorksの製品で、現行版は2026年9月に出たR2026bです。この記事では、両者の違いと何ができるかを整理したうえで、Simulinkで簡単な制御系を作って動かす手順、無料で使える範囲、AIエージェントとの連携までを順に説明します。
まとめ:MATLABとSimulinkの違いと用途
- MATLABはコードで書く数値計算環境です。データ解析、グラフ化、アルゴリズムの試作、機械学習、C/C++への変換を担います。
- Simulinkはブロックを線でつないでモデルを作る環境です。制御系や物理システムの挙動を実機の前に確かめ、モデルからC/C++やVHDL/Verilogのコードを生成できます。モデルベース開発(MBD)の中核です。
- 違いは「式を書くか、図で組むか」です。SimulinkはMATLABが前提で、現場では両方を行き来します。
- 無料で使う方法は、MATLAB Online Basic(月20時間・MATLABとSimulinkを含む主要製品)と30日間の評価版です。継続利用は用途区分(Standard/Home/Student等)でライセンスを選びます。
- R2026bではSimulink CopilotがSimulink Profilerの結果を解説するようになりました。Claude CodeなどのAIエージェントからSimulinkモデルを読み書きするSimulink Agentic Toolkitも公開されています。
- 向かない場面は、Web開発や汎用ソフト開発と、無料枠では足りないのに有償ライセンスを用意できない学習です。この場合はPython(NumPy/SciPy)やGNU Octaveを先に検討します。
MATLABとSimulinkの役割と読み方
読み方は「マトラボ」「シミュリンク」です。検索では「シムリンク」「シュミリンク」とも書かれますが、同じ製品を指します。
MATLAB(マトラボ)は行列計算の言語と開発環境
名前は「MATrix LABoratory」に由来し、行列とベクトルを基本のデータ型として扱います。スクリプトの拡張子は.mで、コマンドウィンドウに書いた式はその場で実行されます。信号処理・制御・最適化・統計・深層学習などの分野別ツールボックスを足して機能を広げる構成で、行列演算を言語の基本機能として記述できるのが特徴です。PythonでもNumPyを使えば、明示的なループを省いた配列演算ができます。
Simulink(シミュリンク)はブロック線図のシミュレーション環境
Simulinkは、信号源・伝達関数・積分器・スコープといった「ブロック」を配置して線でつなぎ、動的システムの振る舞いを図として組み立てます。微分方程式を自分で解くコードを書かなくても、ソルバーが時間を進めて応答を計算します。MathWorksのSimulink製品ページは、電気・機械・熱・油圧・ソフトウェアを1つのモデルに統合できる点と、デスクトップ・SIL・PIL・HILの各段階で設計を検証できる点を挙げています。
MATLABとSimulinkの違いと使い分け
最大の違いは、テキスト(コード)で書くか、図(ブロック)で組むかです。SimulinkはMATLABの上で動く製品で、Simulinkの製品要件にもMATLABが必須と書かれています。
| 観点 | MATLAB | Simulink |
|---|---|---|
| 操作 | コード(.mスクリプト) | ブロック線図(GUI) |
| 保存形式 | .m/.mlx | .slx |
| 得意な対象 | データ解析・可視化 | 時間変化するシステム |
| 典型的な成果物 | 解析結果・アルゴリズム | 制御モデル・生成コード |
| 前提 | 単体で動く | MATLABが必要 |
手元のデータを読み込んで統計処理やグラフ化をするならMATLABだけで足ります。制御器と制御対象をつないで閉ループの挙動を確かめたい、またはマイコンに載せるコードまで作りたいならSimulinkを使います。Simulinkのパラメーター(ゲインなど)はMATLABのワークスペース変数で渡せるため、設計値の計算はMATLAB、挙動の確認はSimulinkという分担が一般的です。
MATLAB/Simulinkでできること:主要機能と開発用途
MATLABでできること:解析・可視化・アルゴリズム開発
MATLABの守備範囲は「データを処理して答えを出す」作業です。代表的な用途は次のとおりです。
- 行列・信号・時系列データの数値計算と統計解析
- 2D/3Dグラフによる可視化
- 制御・最適化・信号処理のアルゴリズム開発
- 機械学習・深層学習のモデル構築(対応ツールボックスが必要)
- App DesignerでのGUIアプリ化、MATLAB CoderによるC/C++への変換
行列演算とグラフ描画が言語に組み込まれているため、正弦波を計算して描くだけなら次の数行で済みます。
% 0〜2πの両端を含む100点を等間隔に取り、サイン波を計算して描画する
x = linspace(0, 2*pi, 100);
y = sin(x);
plot(x, y);
xlabel('x');
ylabel('sin(x)');
title('サイン波');
Simulinkでできること:制御設計とモデルベース開発
Simulinkの中心的な用途は、実行できるモデルを設計の起点に置くモデルベース開発(MBD)です。制御器のモデルを制御対象のモデルとつないでシミュレーションし(MILS)、生成コードで同じ試験を回し(SILS)、最後に実機に近い装置と接続して確かめる(HILS)、という順で不具合を前の工程で見つけます。工程ごとの効果やIPAの工数実測はモデルベース開発(MBD)とは?メリット・デメリットとIPA実測の工数効果で扱っています。
モデルからのコード生成:Simulink Coder・Embedded Coder・HDL Coder
検証済みのモデルから実装コードを生成する製品は、出力先ごとに分かれています。
| 製品 | 生成するもの | 主な用途 |
|---|---|---|
| Simulink Coder | C/C++ | シミュレーション・試作 |
| Embedded Coder | 組込み向けに最適化したC/C++ | 量産ECU・マイコン |
| HDL Coder | VHDL/Verilog | FPGA・ASIC |
Simulink CoderはSimulinkとStateflowのモデルからC/C++を生成し、Embedded Coderはそれを組込みシステム向けに最適化します。HDL CoderはFPGA・ASIC設計用のVHDL/Verilogを出力します。自動車の車載ソフトでは、生成コードをAUTOSARの部品として組み込む流れが多く、その受け渡しはAUTOSAR開発の工程とは?ARXMLの受け渡しとツールチェーンを実装目線で解説で説明しています。
物理モデリング:Simscape
モーターや油圧回路を伝達関数に落とさず、部品をつないだ回路図のまま扱いたいときはSimscapeを追加します。Simulinkの中で物理システムのモデルを作る製品で、抵抗・ばね・ポンプなどのブロックを物理的な接続でつなぎます。運動方程式や伝達関数で書ける制御対象ならSimulink本体で表現でき、部品をつなぐ方式でモデル化したい場合にSimscapeを検討します。
Simulinkで簡単な制御システムを作り、シミュレーションして可視化する手順
ここでは、1次遅れの制御対象 1/(s+1) を比例制御(P制御)で動かす最小のフィードバック系を作ります。GUIで組む手順と、同じモデルをMATLABのスクリプトで組む方法を並べ、最後に結果の読み方を示します。
GUIによるブロック線図の作成と実行手順
- MATLABのコマンドウィンドウで
simulinkと入力し、空のモデルを作成する。 - ライブラリブラウザーから Step(Sources)、Sum(Math Operations)、Gain(Math Operations)、Transfer Fcn(Continuous)、Scope(Sinks)をキャンバスへ置く。
- Sumの符号リストを
|+-にし、Gainを4、Transfer Fcnの分子を1・分母を[1 1]にする。 - Step→Sumの+端子→Gain→Transfer Fcn→Scopeの順につなぎ、Transfer Fcnの出力から分岐した線をSumの-端子へ戻す。
- 停止時間を5秒にして実行し、Scopeを開いて応答を確認する。
Stepブロックは既定で1秒の時点に0から1へ切り替わります。R2026aでStepブロックのプログラム上のパラメーター名がBefore/AfterからInitialValue/FinalValueに変わったため、古い資料のスクリプトを読むときは名前の違いに注意します(Stepブロックのリファレンスによると旧名も引き続き動作します)。
MATLABスクリプトによる制御モデルの作成と実行
同じモデルはadd_blockとadd_lineでコードからも組めます。モデルを手で直すたびに配線がずれる、パラメーターを変えて何十回も回す、といった場面ではスクリプトで管理したほうが再現性を保てます。名前=値の引数の書き方はR2021a以降の構文です。
mdl = "p_control_demo";
new_system(mdl);
open_system(mdl);
% ブロックを配置する(ライブラリのパス, モデル内の名前, パラメーター)
add_block("simulink/Sources/Step", mdl + "/Step");
add_block("simulink/Math Operations/Sum", mdl + "/Sum", Inputs="|+-");
add_block("simulink/Math Operations/Gain", mdl + "/Kp", Gain="4");
add_block("simulink/Continuous/Transfer Fcn", mdl + "/Plant", ...
Numerator="1", Denominator="[1 1]");
add_block("simulink/Sinks/Scope", mdl + "/Scope");
add_block("simulink/Sinks/To Workspace", mdl + "/ToWs", VariableName="y");
% 信号線をつなぐ("ブロック名/ポート番号")
add_line(mdl, "Step/1", "Sum/1");
add_line(mdl, "Sum/1", "Kp/1");
add_line(mdl, "Kp/1", "Plant/1");
add_line(mdl, "Plant/1", "Scope/1");
add_line(mdl, "Plant/1", "ToWs/1");
add_line(mdl, "Plant/1", "Sum/2"); % 出力を-端子へ戻すフィードバック
Simulink.BlockDiagram.arrangeSystem(mdl);
% 5秒間シミュレーションして、To Workspaceの記録を描画する
out = sim(mdl, StopTime="5");
plot(out.y.Time, out.y.Data);
grid on;
xlabel('時間 [s]');
ylabel('出力 y');
新規モデルは「単一のシミュレーション出力」が既定で有効なので、simの戻り値outにTo Workspaceの変数が入ります。To Workspaceの保存形式は既定でTimeseriesのため、時間はout.y.Time、値はout.y.Dataで取り出せます(To Workspaceブロックのリファレンス)。
結果の読み方:P制御で残る偏差とPI制御での解消
このモデルの閉ループ伝達関数は 4/(s+5) です。目標値1に対して出力は0.8で止まり、0.2の定常偏差が残ります。時定数は0.2秒で、ステップから0.2秒後(t=1.2秒)に最終値の約63%の0.506に達します。これらは伝達関数から求めた理論値をPythonのSciPyで数値計算して確かめたもので、掲載スクリプトをMATLAB上で実行した結果ではありません。
| 制御器 | 最終値 | 定常偏差 | 応答の目安 |
|---|---|---|---|
| P制御 Kp=4 | 0.800 | 0.200 | 時定数0.2秒 |
| P制御 Kp=9 | 0.900 | 0.100 | 時定数0.1秒 |
| PI制御 Kp=4・Ki=5 | 1.000 | 0 | 行き過ぎ約1.8% |
ゲインを上げても偏差は小さくなるだけで消えません。偏差をなくすにはGainブロックを PID Controller(Continuous)に置き換え、ControllerをPI、Pを4、Iを5にします(パラメーター名はPID Controllerブロックのリファレンスのとおり)。閉ループは (4s+5)/(s²+5s+5) になり、出力は約1.8%行き過ぎてから1に収束します。センサー値のノイズを推定で抑える構成は、カルマンフィルタとは?仕組みを1次元の例でわかりやすく解説【Python実装とQ・Rの決め方】の1次元の例で手順を追えます。
MATLAB/Simulinkの料金と無料で使う方法
MATLAB/Simulinkは有償の商用ソフトです。価格・ライセンスのページでは用途区分と契約期間を選ぶと価格が表示され、表示額は税抜(Pricing excludes TAX/VAT)です。円建ての見積もりは同ページから依頼します。
| 区分 | 対象 | 注意点 |
|---|---|---|
| Standard | 企業・官公庁・団体 | 年間/永久を選択 |
| Home | 個人の私的利用 | 商用・教育機関・団体は不可 |
| Student | 学位課程の学生 | 授業での利用が前提 |
| Startups | 承認された創業期企業 | 90以上のアドオンを含む |
| キャンパスライセンス | 大学の学生・教職員 | 大学が一括契約 |
| 評価版 | 評価目的 | 30日間・80以上の製品 |
| MATLAB Online Basic | アカウント保有者 | 無料・月20時間 |
Homeは「For personal use only」で、商用・営利・教育機関・官公庁などでの利用は認められていません。副業の案件や社内業務に使うならStandardが必要です。学生は、まず在籍校がキャンパスライセンスを契約していないか確かめると、個人で買わずに済むことがあります。30日間の評価版では、デスクトップとオンラインでMATLAB、Simulinkを含む80以上の製品を試せます。
MATLAB Online Basicで使える範囲
インストールせずに試すならブラウザーで動くMATLAB Online Basicが入口です。MATLAB Onlineのバージョン比較によると、制限は次のとおりです。
| 項目 | Basic(無料) | ライセンス版 |
|---|---|---|
| 月あたりの利用時間 | 20時間 | 制限なし |
| 連続計算時間 | 15分 | 90分 |
| 無操作で切断 | 15分 | 60分 |
| 使える製品 | よく使われる製品群 | 保有ライセンスのうちOnline対応製品 |
| MATLAB Drive | 5GB | 20GB |
公式の比較表は「よく使用される 10 製品」、FAQは「MATLAB、Simulink、および 9 種類のツールボックス」と総数の書き方が揃っていませんが、MATLABとSimulinkが含まれる点は共通です。前章のモデル程度ならBasicで組んで動かせます。1回の連続計算が15分で止まるため、パラメーターを総当たりする長いシミュレーションには向きません。
インストール要件と学習の始め方
デスクトップ版はMathWorksアカウントでライセンスを紐づけ、インストーラーで必要な製品だけを選んで入れます。R2026bのシステム要件は次のとおりです(MATLABのシステム要件)。
| OS | MATLAB単体 | 通常構成 | 全製品 |
|---|---|---|---|
| Windows | 4.6GB | 5〜8GB | 25GB |
| macOS | 3.7GB | 4〜6GB | 17GB |
| Linux | 4.5GB | 5〜7GB | 26GB |
メモリはいずれも最小8GB・推奨16GBです。R2026bのMac版はApple silicon搭載機が対象で、Intel搭載Macには対応しません。対応OSはWindows 11(24H2/25H2)とWindows 10(22H2)、macOS 27/26/15、Ubuntu 24.04/22.04 LTSなどです。Simulinkで大きなモデルを開くと8GBでは足りなくなりやすいので、業務で使うPCは16GB以上を選びます。
学習は無料の自己学習コースから始めるのが近道です。MATLAB Onramp(MATLAB入門)は約2時間の対話型コースで、Simulink Onramp(Simulink入門)ではブロックと信号の扱い、離散・連続システムのモデル化、サーモスタットのモデル化などの演習を日本語で進められます。リリースは毎年3月と9月の年2回で、リリースモデルのとおり3月がa、9月がbの版になります。
R2026bの新機能とAIエージェントとの連携
MathWorksは2026年9月24日にR2026bを発表しました。新製品はSimulink Variant Manager、Visual Inspection Toolbox、Polyspace Test Server、Point Cloud Toolboxの4つです。Simulink関連では、Simulink Copilotが生成するプロファイリングの知見が加わり、Simulink Profilerの結果からシミュレーションのボトルネックを読み取りやすくなりました。
もう1つの動きが、外部のAIコーディングエージェントからSimulinkを操作するSimulink Agentic Toolkitです。MATLAB MCP Serverを介してエージェントとSimulinkをつなぎ、モデルの構造の読み取り(model_read)、ブロックの追加や配線(model_edit)、未接続ポートの検出(model_check)、Gherkin形式の要件テスト(model_test、Simulink Testが必要)などのツールを渡します。前提はR2023a以降のMATLABとSimulinkで、Claude Code、GitHub Copilot、OpenAI Codex、Gemini CLI、Sourcegraph Ampの構成が同梱されています。公式READMEからagenticToolkitInstaller.mltbxを取得してアドオンとしてインストールした後、MATLABでsetupAgenticToolkit("install")を実行するとMCPサーバーの導入とエージェントの設定がまとめて行われます。
導入前に確認しておきたいのはライセンス条件です。READMEは、MCPサーバーをMathWorksのソフトウェア使用許諾に沿って使うこと、複数ユーザーで共有しないことを求めています。チームで1台のサーバーを共用する構成は、MathWorksへの相談が前提です。また、エージェントのツール呼び出しは実行前に人が確認するよう注意書きがあります。モデルの自動編集は、版管理されたモデルで試すのが安全です。
MATLAB/Simulinkの業種別の用途と導入事例
- 自動車:エンジン・パワートレイン制御、ADAS、EVのバッテリー管理システム(BMS)の設計と検証
- 航空宇宙・防衛:飛行制御や姿勢制御のモデリングと検証
- 通信・半導体:無線信号処理、FPGA向けアルゴリズムの設計
- 電力・エネルギー:パワーエレクトロニクスや電力系統のシミュレーション
- 医療・金融:生体信号の解析、リスク計算などの数値シミュレーション
Simulinkの製品ページには、Dyson、Stellantis、Boeing、Siemens Energy、NASAのArtemis計画、Renaultの導入事例が並んでいます。共通しているのは「実機で試す前にモデル上で挙動を確かめ、試作と手戻りを減らす」という使い方で、制御対象が高価・危険・まだ存在しない分野ほど効果が大きくなります。
MATLABの欠点と無料の代替ソフト
MATLAB/Simulinkが向かない場面
最大の弱点は費用の構造です。本体に加えて分野別のツールボックスを1つずつ買い足す形なので、コード生成や検証まで揃えると費用が積み上がります。次の条件に当てはまるなら、MATLAB/Simulinkを選ばないほうが合理的です。
- 成果物がWebアプリやデータ基盤で、制御や信号処理が主目的でない
- MATLABスクリプトやSimulinkモデルをそのまま配布して編集・実行してもらう必要があり、受け手が必要な実行環境を用意できない
- 使うのが行列計算とグラフ化だけで、Simulinkもコード生成も使わない
もう1つの注意点は、MATLABの関数すべてがコード生成に対応しているわけではないことです。対応状況は各関数のリファレンスの「拡張機能」欄に書かれているため、組込み実装を前提にするなら、設計で使う関数を早い段階で確かめます。
無料の代替ソフトの選び方
| ソフト | 置き換える範囲 | 特徴 |
|---|---|---|
| GNU Octave | MATLABの言語 | 文法の大部分が互換 |
| Scilab/Xcos | MATLAB+Simulink | Xcosがブロック線図担当 |
| OpenModelica | Simulink+Simscape | Modelica言語で物理モデル |
| Python(NumPy/SciPy) | MATLABの解析用途 | 無料で用途が広い |
| Julia | MATLABの数値計算 | 型推論とJITコンパイル |
GNU Octaveは公式に「mostly compatible with Matlab」とうたう言語で、既存の.mスクリプトを流用しやすい一方、ツールボックス相当の機能は限られます。ブロック線図が必要なら、Scilabに同梱されるXcosが無料のグラフィカルエディターです。物理モデルを中心に組むならOpenModelicaが候補になります。解析やグラフ化が主目的なら、SciPyとは?読み方・使い方・NumPyとの違いをPythonで解説のSciPyとMatplotlibとは?使い方・インストール・日本語化を3.11対応で解説のMatplotlibでMATLABの大半の作業を置き換えられます。数値計算の速度を重視するならJulia言語とは|メリット・デメリットとPython比較・始め方を実務目線で解説のJuliaも選択肢です。一方で、量産品質のコード生成と、DO-178やISO 26262への適合確認までを1つの製品群で揃えられる点は、Simulinkの製品ページが挙げる強みです。車載や航空の量産開発でMATLAB/Simulinkが選ばれ続ける理由はここにあります。
よくある質問
MATLABとSimulinkの違いは何ですか?
MATLABはコードで計算する数値計算の言語と環境、SimulinkはMATLABの上で動くブロック線図のシミュレーション環境です。データ解析やアルゴリズムの試作はMATLAB、制御系など時間変化するシステムの検証とコード生成はSimulinkが担い、Simulinkを使うにはMATLABも必要です。
Simulinkは何と読みますか?
「シミュリンク」と読みます。MATLABは「マトラボ」です。「シムリンク」「シュミリンク」と表記されることもありますが、同じMathWorksの製品を指します。
MATLAB/Simulinkは無料で使えますか?
MathWorksアカウントがあれば、ブラウザー版のMATLAB Online Basicを月20時間まで無料で使え、MATLABとSimulinkも対象に含まれます。この枠は評価版と違い、毎月継続して使えます。デスクトップ版を試すなら30日間の評価版があり、評価期間後もデスクトップ版を使う場合やBasicの対象外の製品を使う場合は有償ライセンスが必要です。
MATLABの代わりになるフリーソフトはありますか?
MATLABの言語を置き換えるならGNU Octave、Simulinkのようなブロック線図が必要ならScilabのXcos、物理モデルならOpenModelicaが無料の候補です。解析とグラフ化が目的ならPythonのNumPy/SciPyとMatplotlibで多くの作業を置き換えられます。
初心者は何から始めればよいですか?
MATLAB Online Basicにサインインし、無料のMATLAB Onramp(約2時間)で行列計算とグラフ描画の基本を学ぶところから始めます。続けてSimulink Onrampでブロックと信号の扱いを学び、Step・Sum・Gain・Transfer Fcn・Scopeで出力をSumの-入力へ戻すフィードバック系を1つ組んで動かすと、Simulinkでできることの全体像がつかめます。