研究室新入生のためのMATLAB/Simulinkセットアップガイド

これから多くの実験や研究でMATLABとSimulinkを使うことになるでしょう。本記事では、MATLABのインストール方法から基本的な操作、Simulinkの起動までを、初心者向けに解説します。

## 目次
1. [MATLABとは](#matlabとは)
2. [MATLABのインストール](#matlabのインストール)
3. [MATLABの基本操作](#matlabの基本操作)
4. [Simulinkとは](#simulinkとは)
5. [Simulinkの起動と基本操作](#simulinkの起動と基本操作)
6. [簡単なモデルの作成](#簡単なモデルの作成)
7. [よくあるトラブルと解決法](#よくあるトラブルと解決法)

## MATLABとは

MATLABは「Matrix Laboratory」の略で、数値計算に特化したプログラミング言語および開発環境です。特に行列計算、データの可視化、アルゴリズムの実装が得意で、制御工学、信号処理、画像処理など幅広い工学分野で利用されています。

**MATLABの主な特徴：**
- 行列を基本データ構造とした計算が可能
- 豊富なライブラリと関数群
- グラフ描画などの可視化機能
- さまざまな拡張ツールボックス（Control System Toolbox, Signal Processing Toolbox など）

## MATLABのインストール

### 1. 大学のライセンスを確認する

多くの大学ではキャンパスライセンスを取得しており、学生は無料でMATLABを使用できます。まずは以下を確認しましょう：

- 大学のIT部門や研究室の先輩に、大学のMATLABライセンスについて確認する
- 大学のポータルサイトでソフトウェアライセンス情報を確認する

### 2. MathWorksアカウントの作成

1. [MathWorks公式サイト](https://www.mathworks.com/)にアクセス
2. 右上の「Sign In」→「Create Account」をクリック
3. 大学のメールアドレス（`.ac.jp`など）を使用してログイン(できない場合は登録から)
4. アカウント情報を入力し、ログイン
4. 
### 3. ライセンスの関連付け
これは大学ですでに行われている場合が多いので基本無視で大丈夫です。
一応書いておきます。
1. MathWorksアカウントにログイン
2. 「License Center」または「My Account」→「Associate License」をクリック
3. 大学から提供されたライセンス番号を入力、または大学のポータルを通じてライセンスを関連付け

### 4. MATLABのダウンロードとインストール

1. MathWorksアカウントの「My Account」→「Downloads」をクリック
画像の矢印マークです。
1. ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3461603/0a014895-1ba1-4854-9fb8-65210e5cf847.png)

2. 最新バージョンのMATLABを選択（または研究室で使用しているバージョンを確認。2023-aとか2023-bとかあるがどちらでもよいので気にせず基本的に最新版をダウンロード）


3. インストーラをダウンロード
4. インストーラを実行し、画面の指示に従ってインストール
   - ログイン情報を入力
   - ライセンスを選択
   - インストールするコンポーネントを選択（「MATLAB」「Simulink」は必須。そのほかは基本的に後から随時ダウンロードできるのでチェックを外します。）
   - インストール先を指定し、インストールを実行

### 5. 初回起動と動作確認

1. デスクトップのMATLABアイコンをクリック
2. MATLABが起動したら、コマンドウィンドウに以下を入力して動作確認：
```matlab
disp('Hello, MATLAB!')
```

## MATLABの基本操作

### 1. MATLABのインターフェース

MATLABを起動すると、以下の要素からなるインターフェースが表示されます：

- **コマンドウィンドウ**: コマンドを入力する領域
- **ワークスペース**: 変数の一覧と値を表示
- **カレントフォルダ**: 現在のフォルダのファイルを表示
- **コマンド履歴**: 過去に実行したコマンドの履歴
- **エディタ**: スクリプトファイルを作成・編集する領域

### 2. 基本的な計算

コマンドウィンドウで簡単な計算ができます：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3461603/6c831c14-0456-49c8-a152-947ea3221a42.png)

これらを一行ずつ打ってみて自分で確かめてみよう。

```matlab
% 基本的な演算
2 + 3       % 足し算
5 * 6       % 掛け算
10 / 2      % 割り算
2^3         % べき乗

% 変数への代入
a = 5;      % 変数aに5を代入
b = 10;     % 変数bに10を代入
c = a + b;  % 変数cにa+bの結果を代入
c           % 変数cの値を表示

% セミコロンをつけると結果を表示しない
x = 100;    % 結果を表示しない
y = 200     % 結果を表示する
```
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3461603/3b1a6115-6828-4e66-a451-bb6a4156c0ef.png)
変数の宣言。画像ではa=5,b=3と定めた。
ここで決めた値はワークスペースに保存されている↓
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3461603/5e7f2ff8-049b-4d4a-8b37-ffa31278383d.png)

### 3. 行列の操作

MATLABの強みは行列計算です：

```matlab
% 行列の作成
A = [1, 2, 3; 4, 5, 6; 7, 8, 9]  % 3x3の行列 Aを定義した。

% 行列の要素へのアクセス
A(1, 2)     % 1行2列の要素
A(2, :)     % 2行目のすべての要素
A(:, 3)     % 3列目のすべての要素

% 行列の演算
B = A * 2   % 各要素に2をかける
C = A * A   % 行列積
D = A .* A  % 要素ごとの積
```

### 4. グラフの描画
ここは後ほどやるので読むだけでok
データの可視化も簡単にできます：

```matlab
% 単純なグラフ
x = 0:0.1:10;        % 0から10まで0.1刻みのベクトル
y = sin(x);          % sinカーブ
plot(x, y);          % プロット
grid on;             % グリッド表示
xlabel('X軸');       % X軸ラベル
ylabel('Y軸');       % Y軸ラベル
title('sin関数');    % タイトル

% 複数のグラフ
figure;              % 新しいウィンドウ
y2 = cos(x);
plot(x, y, 'r-', x, y2, 'b--');  % 赤い実線と青い破線でプロット
legend('sin', 'cos');            % 凡例
```

### 5. スクリプトファイル

複数のコマンドをファイルにまとめて実行できます：

1. 「Home」タブの「New Script」をクリック
1. ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3461603/c18db641-18c1-4b46-808a-32b1cf6060fe.png)

2. エディタが開くので、以下のようなコードを入力：
(さっきの#4グラフの描写のコードです)
```matlab
% my_first_script.m
% 簡単なスクリプト例

% データの生成
x = linspace(0, 2*pi, 100);
y1 = sin(x);
y2 = sin(x).^2;

% グラフ描画
figure;
plot(x, y1, 'b-', 'LineWidth', 2);
hold on;
plot(x, y2, 'r--', 'LineWidth', 2);
grid on;
xlabel('x');
ylabel('y');
title('My First MATLAB Plot');
legend('sin(x)', 'sin(x)^2');

% 結果の表示
disp('スクリプトの実行が完了しました！');
```
3. 「Save」ボタンでファイルを保存（例: `my_first_script.m`）
4. 「Run」ボタンをクリックするか、F5キーでスクリプトを実行
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3461603/77c06167-3fea-4ca4-b85e-00bbea76a669.png)

少し待ってグラフが描写されていればok

## Simulinkとは

Simulinkは、MATLABに統合されたグラフィカルなプログラミング環境で、動的システムのモデリング、シミュレーション、解析に特化しています。ブロック線図を用いて視覚的にシステムを設計できるため、制御工学の学習や研究に非常に適しています。

**Simulinkの主な特徴：**
- ブロック線図によるビジュアルプログラミング
- 連続時間・離散時間システムの両方をモデル化可能
- 豊富なブロックライブラリ
- MATLABとのシームレスな連携
- リアルタイムシミュレーション機能

## Simulinkの起動と基本操作

### 1. Simulinkの起動

MATLABから以下のいずれかの方法でSimulinkを起動します：

- MATLABのホームタブから「Simulink」ボタンをクリック
- コマンドウィンドウに `simulink` と入力して実行
- ツールバーの「Simulink」アイコンをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3461603/881dd46a-e263-4799-97c3-d034a130df6e.png)

### 2. Simulinkライブラリブラウザ
 simulinkを起動して[空のモデル]を選択すると、「Simulink Library Browser」が表示されます。ここには様々なカテゴリのブロックがあります：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3461603/55721a93-1448-40e4-90f0-2ff98e12c1a6.png)

- **Commonly Used Blocks**: よく使われるブロック
- **Continuous**: 連続時間のブロック
- **Discontinuities**: 不連続要素
- **Discrete**: 離散時間のブロック
- **Math Operations**: 数学演算ブロック
- **Sinks**: 出力表示ブロック（スコープ、グラフなど）
- **Sources**: 入力ソースブロック（ステップ入力、正弦波など）

### 3. ブロックの配置と接続

1. ライブラリブラウザからブロックをドラッグ＆ドロップ
2. ブロックの出力端子から入力端子へ線を引いて接続
   - 出力端子をクリックし、そのまま入力端子までドラッグ
3. ブロックをダブルクリックしてパラメータを設定

### 4. モデルの保存

「File」→「Save」または「Save As」を選択し、モデルに名前を付けて保存します（拡張子は.slx）。

## 簡単なモデルの作成

ここでは、非常に簡単なモデル例として、正弦波の生成と表示を行います。

### 1. 必要なブロックの配置

以下のブロックをモデルウィンドウにドラッグ＆ドロップします：

- **Sine Wave**（Sources カテゴリ）: 正弦波の生成
- **Scope**（Sinks カテゴリ）: 波形の表示

### 2. ブロックの接続

**Sine Wave**の出力端子から**Scope**の入力端子へドラッグして接続します。

### 3. パラメータの設定（オプション）

**Sine Wave**ブロックをダブルクリックして以下のようなパラメータを設定できます：
- Amplitude: 1（振幅）
- Frequency: 1（周波数）
- Phase: 0（位相）

### 4. シミュレーションの実行

1. モデルウィンドウのツールバーで「Simulation」→「Model Configuration Parameters」を選択
2. 「Solver」タブで以下を設定：
   - Stop time: 10（シミュレーション終了時間）
   - Solver: ode45（可変ステップソルバ）
3. 「OK」をクリックして設定を保存
4. モデルウィンドウのツールバーにある「Run」ボタン（▶）をクリック

### 5. 結果の確認

**Scope**ブロックをダブルクリックして正弦波の出力を確認します。ツールバーの拡大・縮小ボタンを使用して波形を調整できます。

## よくあるトラブルと解決法

### 1. インストール関連

- **ライセンスエラー**
  - 大学のIT部門に連絡し、ライセンスの状態を確認
  - インターネット接続を確認（ライセンス認証に必要）

- **インストールが途中で止まる**
  - 一時的なファイルをクリアして再試行
  - 管理者権限で実行

### 2. MATLAB関連

- **起動しない**
  - コンピュータを再起動
  - 再インストールを検討

- **メモリ不足エラー**
  - 不要なアプリケーションを閉じる
  - 大きな行列を扱う場合は分割して処理

- **パスの問題**
  - 「Set Path」でファイルのパスを追加
  - カレントディレクトリを確認

### 3. Simulink関連

- **モデルが保存できない**
  - 書き込み権限のあるフォルダに保存
  - 名前に特殊文字を使わない

- **実行時エラー**
  - エラーメッセージを確認
  - ブロック間の接続を確認
  - パラメータの設定を確認

- **シミュレーション結果が表示されない**
  - Scopeブロックの設定を確認
  - シミュレーション時間が適切か確認

## まとめ

本記事では、MATLABとSimulinkの基本的なセットアップと使い方を紹介しました。これらのツールは制御工学の研究には欠かせないもので、まずは基本的な操作に慣れることが重要です。

次のステップとしては：
1. MATLABの基本関数をより詳しく学ぶ
2. 簡単なプログラムを自分で作成してみる
3. Simulinkでさまざまなブロックを試してモデルの理解を深める

これらのツールに慣れるには時間がかかりますが、使いこなせるようになれば研究の効率が大幅に向上するでしょう。

## 参考リンク

- [MathWorks公式サイト](https://www.mathworks.com/)
- [MATLAB/Simulink チュートリアル（MathWorks）](https://www.mathworks.com/support/learn-with-matlab-tutorials.html)
- [MATLABプログラミング入門（MathWorks）](https://www.mathworks.com/help/matlab/getting-started-with-matlab.html)