令和4年度「専修学校による地域産業中核的人材養成事業」■航空機設計・製造分野におけるDX人材養成事業■

令和4年度プロト教材資料

本プロト教材資料は、文部科学省の教育政策推進事業委託費による委託事業として、日本航空大学校が実施した令和4年度「専修学校による地域産業中核的人材養成事業」の成果物です。

制御プログラミング学習領域
MATLABによる制御プログラミング

制御プログラミング教材
目次
MATLAB１． 基礎

SIMULINK１． 制御システム概要

MATLAB２． 単純計算機能

SIMULINK２． ラプラス変換と伝達関数

MATLAB３． 変数を用いた計算

SIMULINK３． ブロック線図

MATLAB４． 複素数計算

SIMULINK４． Simulinkの起動

MATLAB５． 行列計算

SIMULINK５． 波形の表示

MATLAB６． 関数

SIMULINK６． 抵抗の無い車の挙動

MATLAB７． 微分計算

SIMULINK７． 抵抗の有る車の挙動

MATLAB８． 積分計算

SIMULINK８． 比例制御

MATLAB９． Excelとの連携

SIMULINK９． 比例積分制御

MATLAB１０．Mファイル

SIMULINK１０．過渡特性

MATLAB１１．グラフィックス

SIMULINK１１．比例積分微分制御

MATLAB １．基礎
（１） MATLABの概要
MATLABは、MATrix LABoratoryを略したものであり、行列計算、ベクトル
演算、グラフ化や3次元表示などの豊富なライブラリを持った、インタプリタ形
式の高性能なテクニカルコンピューティング言語、環境としての機能を持つ。
標準で数多くのライブラリを有しているが、それ以上のデータ解析や統計、
アプリケーション展開などが必要な場合にはToolboxと呼ばれる拡張パッ
ケージをインストールすることで、MATLABの機能拡張を図ることができる。
MATLABとToolboxは総合してMATLABプロダクトファミリと呼ばれる。
このファミリの１つに制御システム開発のためのSIMULINKがある。

（２） MATLABの起動
Windows又はMACで以下のアイコンをクリックしてMATLABを起動

（３） MATLAB画面

コマンドウィンドウ
ここに数式等を入力する

ファイルウィンドウ
ファイル及びフォルダを管理

ワークスペース
演算内容の表示（４） 単純計算
電卓と同様な使い方で計算ができる。
ここでは３＋４の計算を実行

3+4 ↩︎ を入力

演算結果の 7 を表示

（５） ヘルプ機能・学習機能

ヘルプ機能
自習

（６） 課題
１．123+456
２．(3+4)×(5+6)
３．3/4
４．987-1024
５．3.14159×2.3×2.3

MATLAB ２．単純計算（１） 単純計算
MATLABは、電卓と同様な計算機能を有する。計算の手順は電卓と同様に数値及び演算子を入力し、最後に↩︎（Return／Enter）キーを押すことにより実行される。

（２）3+5 の計算

３＋５ ↩︎ を入力

演算結果 8 が表示される

（３）sin(0.1) の計算

sin(0.1) ↩︎ を入力

演算結果の表示される

（４） √を含む計算

𝟐𝟐 + 𝟑𝟑の計算
𝟒√ ：sqrtべき乗：＾（５） その他の数値入力

pi ↩︎ を入力：円周率を入力さ1.23e30 ↩︎ を入力：𝟏. 𝟐𝟑 × 𝟏𝟎𝟑𝟎 を入力

（８） コマンドウィンドウの消去

clc ↩︎ を入力

（９） 代表的な演算子・関数
１．四足演算他+, -, *, /２．三角関数sin, cos, tan, asin, acos, atan, atan2, sinh, cosh, tanh, asinh, acosh, atanh
factorial

３．対数関数exp, log, log10, ^[𝑦 𝑥 ], sqrt[ 𝑥]４．複素数abs, angle, imag, real
５．行列
zeros, eye, ones, inv, det

（１０） 課題
１．2100２．100! （階乗）
３．sin(π）
４．cos(1)
５．3×105 ×1.602×1019
６．π× 32
3

７． 27

MATLAB ３．変数を用いた計算（１）変数を用いた計算概要
MATLABは、変数を用いて計算することができる。変数は代入される側（＝の左側 例：a = 3）に置かれる場合は、C言語のような変数の宣言は必要無い。
又一度使用された変数は、代入する側（＝の右側）で使用することができる。
１度も使用されていない変数を代入する側（＝の右側）で使用するとエラーとなることに注意。

（２）変数を用いた計算例

a=３ ↩︎ を入力

b=a+4 ↩︎ を入力

（３）間違った変数の使用例

１度も使用されたことがない変数Bが=の右側にあるためエラーとなる（４）課題
１．Xに3×4の結果を代入し、さらにX2を計算する。

２．Xに３を代入し、Yに５を代入してX×Yを計算する。

MATLAB ４．複素数計算（１）概要
MATLABは、複素数も通常の数値と同様に計算することができる。
基本的な四則演算以外に、三角関数等の関数及び複素数の絶対値・角度の計算もすることができる。

（２）複素数の足し算・掛け算

a=3+4i ↩︎ を入力

b=5+6i ↩︎ を入力

c=a×b ↩︎ を入力

（３）複素数の絶対値と角度

複素数 a=3+4i ↩︎ を入力

複素数 a の絶対値の計
算𝒃=𝟑𝟐 + 𝟒𝟐複素数 a の角度の計算

𝒄 = 𝐭𝐚𝐧−𝟏

𝟒
[𝒓𝒂𝒅]
𝟑

（４）複素数の演算機能
abs
angle
complexconj
cplxpairi
imagisrealj
real
sign
unwrap

絶対値と複素数の大きさ
位相角
複素数配列の作成
複素共役
複素数を複素共役のペアに並べ替え
虚数単位
複素数の虚数部
配列で複素数ストレージを使用するかどうかを判別
虚数単位
複素数の実数部
符号関数 (関数 signum)
位相角のシフト（５）課題
１．５＋６iの絶対値を求めよ

２．５＋６iの位相角を求めよ
３．５＋６iから実数部分を取り出せ
４．５＋６iから虚数部分を取り出せ
５．５＋６iの複素共役を求めよ

MATLAB ５．行列計算（１） 概要MATLABは、行列の計算を行うことができる。変数を使用すれば行列同士の＋ー×／と言った四則演算から、三角関数等の関数、又複素数を含む値も通常の変数と同様に計算することができる。
その他、逆行列や行列の値の計算等行列固有の計算も可能。

（２） 行列の入力行列の値は[ ] で囲み、行の要素は , 又はスペースで分離する。さらに行の終わりに ; を入れる。

a=[1,2,3;4,5,6;7,8,9] ↩︎ を入力

b=[1 2 3;4 5 6;7 8 9] ↩︎ を入力

（３） 行列の足算

行列 a の入力

行列 b の入力

行列 a と b の足算

演算結果

（４） 行列と数値の掛け算

行列 a 全ての要素を３倍（５） 行列と行列の掛け算−１

行列 a × 行列 b19=1×5+2×7
22=1×6+2×8
43=3×5+4×7
50=3×6+4×8

（６） 行列と行列の掛け算−２
この場合、
行列 a × 行列 bは計算できない×××

行列 a .× 行列 bなら以下のように計算
4=1×4
10=2×5
18=3×6

（７） 行列の値の計算

行列 a の入力

det()：行列の値の計算
b = 1 × 4−2×3 = −2

（８） 逆行列の計算

inv()：逆行列の計算
行列 a の逆行列の計
算

逆行列の計算結果

行列 a × b の計算

計算結果：単位行列になっている

（９） 行列の変数エディター

ワークスペースの変数をダブルクリック

行列の変数エディターが開かれるので数値を編集。
編集終了後、右上の×をクリックしてエディターを終了

（１０） 行列の演算機能概略

＋-×／
Det
Inv
.*
.^
‘

四則演算
行列の値を計算sin

各要素のsin

逆行列の計算要素単位の乗算
要素単位のべき乗
行列の転置

（１１） 課題

1 2 3
11 22 33
１．行列 𝑎 = 4 5 6 ， 𝑏 = 44 55 66 を設定せよ
7 8 9
77 88 99
２．𝑐 = 𝑎 × 𝑏 を求めよ
３． 𝑎と𝑏 の要素単位の積を求めよ
４．行列 𝑐 の値を求めよ
５．行列 𝑐 の逆行列を求めよ

MATLAB ６．関数（１） 概要MATLABでは変数を宣言することと同様に関数を宣言することができる。
変数と同様に＝の左側に新しい関数を記述し、右側に組み込み関数又は既に宣言されている関数等を記述する。
関数で使用される変数は、使用される前に syms によって宣言されている必要がある。
組込関数を含む関数を作成した場合、数値計算する場合 double を用いて結果を数値化する必要がある。

（２） 関数の作成と実行関数を作成する前に、引数（下例では x ）を syms で宣言する。
引数 x を syms で宣言

関数 f(x) をxの二乗で作成

関数 f(x) を引数 3 で実行

（３） 組込関数を含む関数の作成と実行
関数 f(x) をsin(x)で作成

関数 f(x) の実行結果を
double により数値化

関数 f(x) の実行結果はdouble が無いので式で表示

（４） 課題
１． 𝑥 2 + 𝑦 2 を関数にして 𝑥 = 3、 𝑦 = 4 を計算せよ。
２． sin(𝑥)2 + cos(𝑦)2 を関数にして 𝑥 = 1、 𝑦 = 2 を計算せよ。

MATLAB ７．微分計算（１） 概要MATLABでは、微分計算を diff により数式で行うことができる。
微分計算を行う前に、微分する関数の引数を syms によって宣言しておく必要がある。

（２） sin の微分関数を微分する前に、引数（下例では x ）を syms で宣言する。

引数 x を syms で宣言
関数 sin を diff で微分関数 sin(x) の微分結果

（３） sin の微分と数値計算

微分結果を f(x) に代入し、数値計算を double で実行。

関数 sin を diff で微分して関数 f(x) 代入

double で関数 f(x)の数値計算実行

MATLAB ８．積分計算（１） 概要MATLABでは、積分計算を int により数式で行うことができる。
微分計算を行う前に、微分する関数の引数を syms によって宣言しておく必要がある。
積分は数式で解を求める不定積分と、数値を求める定積分がある。

（２） 不定積分

関数を積分する前に、引数（下例では x ）を syms で宣言する。
int により関数を数式で積分することができる。
引数 x を syms で宣言

関数 sin を int で積分関数 sin(x) の積分結果

（３） 定積分

int により関数を範囲を決めて数値的に積分することができる。

引数 x を syms で宣言

関数 sin を int で0〜πの範囲で数値積分

関数 sin(x) の積分結果

MATLAB ９．Excelとの連携（１） 概要MATLABでは、Excelのデータファイルをそのまま読み込み数値処理及びグラフ化することができる。
これを実施するためには、前もってExcelデータファイルをMATLABの作業
フォルダーに用意しておく必要がある。
ここではsin波形のデータ sin_wave.xlsx を読み込んで処理を実施する。

（２） Excel データのインポート １

以下の手順でExcelデータをインポートできる。

①sin_wave.xlsx
を選択③Excel データがインポートされる②データのインポート...
を選択（３） Excel データのインポート ２

以下の手順でもExcelデータをインポートできる。
①データのインポー
トをクリック③Excel データがインポートされる②
sin_wave.xlsx
を選択

（４） インポートデータのワークスペースへの取り込み③ワークスペースに選択したデータが表示される①プロットデータを選択②選択のインポートをクリック

（５） ワークスペースのデータのグラフ化③stackedplotをクリック④データのグラフが表示される①プロットをクリック②ワークスペースのデータをクリック

MATLAB １０．M-ファイル（１） 概要MATLABの数値処理はコマンドラインで実行できるが、コマンドラインとしてスクリプトを一旦入力すると、後で一部修正することができない、同じ処理を繰り返ことができない等不便なことがある。
この問題を解決するために、MATLABにはスクリプトをM-ファイルとして保存する機能がある。
尚、M-ファイルには、M-ファイルと関数M-ファイルの２種類がある。

（２） M-ファイルの新規作成と保存①新規スクリプトをクリック④M-ファイル名を入力③保存をクリック②スクリプトの入力⑤保存をクリック（３） M-ファイルの実行①M-ファイル
をクリック

②実行
をクリック

%.... コメント分③実行結果がコマンドウィンドウ
に表示される（４） 関数M-ファイルスクリプトで呼び出しができる関数を作成し、関数M-ファイルとして保存することができる。

func : 関数名 ファイル名と同じにする
関数の定義開始関数の定義終了

関数 func の実行

（５） M-ファイルの制御構造 比較演算 if

他のプログラム言語のようにM-ファイルのスクリプトで if, else if, else を使うことができる。比較演算の最後は end で終了する
比較演算子には ==, <, >, <=, >=, ~= がある。

（６） M-ファイルの制御構造 繰り返し for

他のプログラム言語のようにM-ファイルのスクリプトで for, while を使うことができる。繰り返しの最後は end で終了する。

変数 i を1から4まで1づつ増やして４回実行
変数 j を0から6まで2づつ増やして４回実行

MATLAB １１．グラフィックス（１） 概要MATLABは、演算結果をグラフに描いて可視化する機能がある。
又演算結果をアニメーションにして動きのある状態で観察することも可能となっている。
MATLABはVisualizationを謳い文句にしていた時期があったくらい可視化の機能が充実していて、多くのコマンド、関数群が用意されている。

グラフ例

（２） グラフの作成⑤plotをクリック①0〜2までの0.1ステップの配列xを宣言（実数２１個）③配列 x, yを選択
選択の順番でX・Y座標が決められるので注意>>x=0:0.1:2>>y=x.*x④プロットをクリック②配列xに対してx*xを計算.*であることに注意（５．行列計算参照）⑥グラフが作成される（７） 課題

１． 0〜πの範囲でステップ0.01でsin関数のグラフを作成せよ。
２．0〜10の範囲でステップ0.1で y=3*x*x*x+2*x*x+x+1のグラフを作成せよ。
３．0〜2πの範囲でステップ0.01でsin*sinのグラフを作成せよ。

SIMLINK １．制御システムとは（１） 自動車のオートクルーズコントローラで考える制御システム

自動車のオートクルーズコントローラは、ドライバーが車の速度を設定すると、車は自動で加減速して設定速度で走行するシステムである。
ここで、ドライバーによって設定された速度を目標値、車の実際の速度を制御量、車を制御対象、エンジン等の駆動装置を制御装置、速度を計測す
る物を検出装置と言う。
又、車が一定速度で走る場合、平坦地であれば問題ないが上り坂・下り坂
又風等によって加減速が発生するが、これを外乱と言う。
上記内容の制御ブロック線図を次頁に示す。

（２） 自動車のオートクルーズコントローラの制御ブロック線図
外乱
坂・風

自動車
人

目標値
設定速度

+
−

偏差
計測値

制御装置
車の駆動装
置

操作量
エンジン出力

制御対象
自動車本体

制御量
車の実速度

計測装置
速度計

ブロック図中、操作量はエンジンの出力であり、計測値は実際の車の速度、偏差は目標値と計測値の差分であり、以下の式で表される。
偏差＝目標値ー計測値
制御システムでは、この偏差が０となるよう制御される。

（３） 自動車の制御例 １
例１：抵抗の無い自動車

推進力 𝒇

質量 𝒎

𝑣

右図のように抵抗の無い車の速度を制御する場合、速度０から発進して設定値100[km/h]を目標に加速した場合を考える。
推進力は偏差に比例するもとのすると、始めは偏差が大きいため大きな推進力で加速するが、速度が上がるに従い偏差が減少（推進力が減少）し、速度が100[km/h]に達した時に力が０となり後は惰性で速度100[km/h]を維持することになる。

（４） 自動車の制御例 ２
推進力 𝒇

例２：空気抵抗の有る自動車

質量 𝒎

𝑣

空気抵抗力
𝒇𝒅

右図のように空気抵抗が有る車の速度を制御する場合、速度０から発進して設定値100[km/h]を目標に加速するのは前頁と同じである。
この場合では速度が上がるに従って空気抵抗力が速度の二乗に比例して増大するため、偏差が０（速度が100[km/h] ）になる前にある速度で推進力と空気抵抗力が釣り合ってしまい、いつまで待っても目標値
100[km/h]に達しないことになる。
制御システムはこのような問題を解決するために発達してきた。

（５） 車の伝達関数
制御対象を数学的に記述したものが制御対象の微分方程式となり、これをラプラス変換すると伝達関数が得られる。
SIMULINKでは、制御対象の代わりに伝達関数を用いて記述する。
操作量
エンジン出力

制御量
車の実速度

制御対象
自動車本体

数学的に記述

𝑥(𝑡)
入力

制御対象の
微分方程式

𝑦(𝑡)
出力

ラプラス変換

𝑋(𝑠)
入力

伝達関数

𝑌(𝑠)
出力

（６） SIMULINKにおけるブロック線図例
SIMULINKと伝達関数を用いれば、複雑な制御システムでも下図のように視覚的に設計し、シミュレーションを実施できる。
制御装置（PID制御）

制御対象（伝達関数）

SIMLINK ２．ラプラス変換と伝達関数（１） 概要SIMULINKでは、制御対象をラプラス変換した伝達関数でモデルを作成し、数値計算
でシミュレーションを実施する機能を持つ。
ラプラス変換とは変数変換の一種であり、線形微分方程式を解析するために用いられる。
一般に線形微分方程式を解析的に解くのは非常に難しいが、ラプラス変換すれば単純な四則演算で計算することができる。又、ラプラス変換はラプラス変換表を見れば比較的に容易に行うことができる。
尚、上記計算結果を逆ラプラス変換したものが微分方程式の解となる。この逆変換は非常に難しいが、SIMULINKを用いて数値計算を行えば逆ラプラス変換は不要となる。
SIMULINKで計算するために、伝達関数を求める必要がある。

（２） 微分方程式の解法
解析的解法
１．微分方程式を解析的に求める大変難しい

ラプラス変換
１．微分方程式をラプラス変換
２．上記の結果から伝達関数を求める
３．上記の結果を逆ラプラス変換

簡単
簡単
難しい

SIMULINK
１．微分方程式をラプラス変換
２．上記の結果から伝達関数を求める
３．SIMULINKで数値シミュレーション

簡単
簡単
簡単

（３） 運動の微分と積分①速度100[km/h]で2時間走ると、走行距離は200[km]となり、計算式は下式となる。図中の青い面積が走行距離となる
100 × 2 = 200[𝑘𝑚]
100[𝑘𝑚
走行距離𝑥とは速度𝑣×時間𝑡で計算される。
/ℎ]

この面積が
𝟐𝟎𝟎[𝒌𝒎]2[ℎ]②速度50[km/h]で1時間、速度100[km/h]で1時間走ると、走行距離は150[km]となり、計算式は下式となる。
50 × 1 + 100 × 1 = 150[𝑘𝑚]
100[𝑘𝑚/ℎ]𝟏𝟎𝟎[𝒌𝒎]

𝟓𝟎[𝒌𝒎]
2[ℎ]③速度が時間的に変化する場合、2時間のなかで速度が細かく変化するため、走行距離 𝑥 は速度 𝑣 毎に𝑣 × Δ𝑡 を求めその合計で計算する必要があり、計算式は下式となる。尚Δ𝑡は微小時間（短い時間）を示す。
走行距離 𝑥 = 𝑣1 × Δ𝑡 + 𝑣2 × Δ𝑡 + ⋯ + 𝑣𝑛 × Δ𝑡

100[𝑘𝑚
/ℎ]

この面積が
距離を示す

𝑣𝑛
Δ𝑡

2[ℎ]

④上記式を積分で表現すると下式となり、これは速度を時間で積分すると距離になることを示している。
𝑛
走行距離 𝒙 = 𝑣1 × Δ𝑡 + 𝑣2 × Δ𝑡 + ⋯ + 𝑣𝑛 × Δ𝑡 = ෍ 𝑣𝑖 × Δ𝑡 = න 𝒗 𝒅𝒕
𝑖=1

⑤積分と逆の計算をするのが微分であり、下式となる
𝑥 = න 𝑣𝑑𝑡

⇔

𝑑𝑥
=𝑣
𝑑𝑡

上式は速度𝑣を積分すると距離𝑥 となり、又距離𝑥 を微分すると速度𝑣になることを示している。
⑥ここまでは距離と速度を考えていたが、速度𝑣と加速度𝑎も同じ関係にあり、同様に計算できる
𝑣 = න 𝑎𝑑𝑡

⇔

𝑑𝑣
=𝑎
𝑑𝑡

上式は加速度𝑎を積分すると速度𝑣となり、又速度𝑣を微分すると加速度𝑎になることを示している。

（４） 微分方程式
物理現象を微分方程式を使って数式で表すことができる。
例：質量ｍの車を力𝑓で押す場合
質量 𝒎

力𝒇

物体に働く力の合計 𝑭 = 𝒎𝒂 = 𝑓 − 𝑓𝐷

空気抵抗力𝒇𝑫

12

𝑚𝑎 = 𝑓 − 𝑓𝐷 ここで空気抵抗力 𝑓𝐷 = 𝐾𝑣 2 : 𝐾 = 𝜌𝐶𝑑 𝑆 とすると
𝒅𝒗
𝑚𝑎 = 𝒎= 𝒇 − 𝑲𝒗𝟐
𝒅𝒕

∶ 速度の微分方程式

𝒅𝟐 𝒙𝒅𝒙𝑚𝑎 = 𝒎 𝟐 = 𝒇(𝒕) − 𝑲
𝒅𝒕
𝒅𝒕𝑎 ∶ 加速度𝑣 ∶ 速度𝑥 ∶ 位置𝑎, 𝑣, 𝑥𝟐

∶ 位置の微分方程式

（５） ラプラス変換
右表を用いて微分方程式を
ラプラス変換することができる。
ラプラス変換する場合には時間的に変化する量、例えば
力𝒇や位置𝒙等の変数を、係数等の固定値と区別するために
𝒇(𝒕), 𝒙(𝒕)と記述する。

変換前

変換後

𝒇(𝒕)

𝑭(𝒔)

𝟏

𝟏𝒔

න 𝒇(𝒕)

𝑭(𝒔)
𝒔

𝒅𝒇(𝒕)
𝒅𝒕
𝒅𝟐 𝒇(𝒕)𝒅𝒕𝟐
𝒇(𝒕) × 𝒈(𝒕)𝒕変換例

ラプラス変換𝒅𝒙(𝒕) 𝒅𝟐 𝒙(𝒕)𝒙(𝒕) + 𝟑 + න 𝒙(𝒕) 𝒅𝒙 +
+
𝒅𝒕
𝒅𝒕𝟐

𝑿(𝒔) + 𝟑𝒔 +𝒔𝑭 𝒔 − 𝒇(𝟎)𝒔𝟐 𝑭 𝒔 − 𝒔𝒇 𝟎 − 𝒇(𝟎)𝟏
න 𝑭 𝒔 − 𝝈 𝑮 𝝈 𝒅𝝈𝟐𝝅𝒋 𝑩𝒓𝟏
𝒔𝟐

𝑿 𝒔+ 𝒔𝑿(𝒔) − 𝒇 𝟎 + 𝒔𝟐 𝑿(𝒔) − 𝒔𝒇 𝟎 − 𝒇 𝟎𝒔（６） 伝達関数
制御システムの解析とは、下図のようにある制御対象へ入力𝑥(𝑡)を加えた時、どのよ
うな出力𝑦(𝑡)となるかを調べることである。例えば水槽に熱量を加えた時水温が何度上昇するか、ある物体を押した時どのような動きをするか等。

𝑥(𝑡)
入力

制御対象の
微分方程式

𝑦(𝑡)
出力

上記制御システムをラプラス変換すると、下図のように変換される。

𝑋(𝑠)
入力

伝達関数
𝑮(𝒔)

𝑌(𝑠)
出力

伝達関数は次式で求めることができる。 𝑮 𝒔 = 𝒀(𝒔)/𝑿(𝒔)（７） 伝達関数の演算
伝達関数をブロック図として表記すると、下記のように四則演算で計算できる。

𝑿×𝑮=𝒀
𝑿

𝒀

𝑮

𝑿=𝒁=𝒀

𝑿±𝒁=𝒀

𝑿

𝑿

𝒀

+
±

𝒀

𝒁

𝒁

次頁参照
𝑿 × 𝑮𝟏 ± 𝑿 × 𝑮𝟐 = 𝒀

𝑿 × 𝑮𝟏 × 𝑮𝟐 = 𝒀
𝑿

𝑮𝟏

𝑮𝟐

𝒀

𝑿

𝑮𝟏
𝑮𝟐

+
±

𝑮𝟏
𝑿×
=𝒀
𝟏 ± 𝑮𝟏 × 𝑮𝟐
𝑿

𝒀

+
∓

𝑮𝟏
𝑮𝟐
フィードバック𝒀（８） フィードバックの伝達関数の計算
𝑮𝟏 (𝑿 − 𝑮𝟐 𝒀) = 𝒀

フィードバックの伝達関数はブロック線図から下記のように四則演算で計算できる。

𝑮 𝟏 𝑿 − 𝑮𝟏 𝑮𝟐 𝒀 = 𝒀𝑿+𝑿 − 𝑮𝟐 𝒀
−

𝑮𝟐 𝒀

𝑮𝟏
𝑮𝟐

𝑮𝟏 (𝑿 − 𝑮𝟐 𝒀) = 𝒀𝒀𝒀𝑮𝟏 𝑿 = 𝒀(𝟏 + 𝑮𝟏 𝑮𝟐 )𝑮𝟏
𝑿=𝒀
𝟏 + 𝑮𝟏 𝑮𝟐
𝑮𝟏𝒀𝑮==
𝟏 + 𝑮𝟏 𝑮𝟐 𝑿

（９） 逆ラプラス変換
伝達関数は下表を用いて微分方程式の解を求めることができるが、かなり難しい。
尚、SIMULINKを用いれば数値シミュレーションを実行できるため、本変換は必要ない。

変換前
𝟏
𝒔+𝒂
𝝎
𝒔𝟐 + 𝝎𝟐𝒔
𝒔𝟐 + 𝝎𝟐
𝒏!
𝒔𝒏+𝟏
𝝎(𝒔 + 𝒂)𝟐 +𝝎𝟐
𝒔+𝒂(𝒔 + 𝒂)𝟐 +𝝎𝟐

変換後
𝒆−𝒂𝒕
𝒔𝒊𝒏(𝝎𝒕)𝒄𝒐𝒔(𝝎𝒕)𝒕𝒏𝒆−𝒂𝒕 𝒔𝒊𝒏(𝝎𝒕)𝒆−𝒂𝒕 𝒄𝒐𝒔(𝝎𝒕)（１０） 空気抵抗の無い車を力𝑓で加速した時の加速度変化の伝達関数
物体に働く力の合計[N] = 𝑭 = 𝒎𝒂

力𝒇

質量 m

𝑎

𝑓 𝑡 = 𝑚𝑎(𝑡)ラプラス変換𝐹 𝑠 = 𝑚𝐴(𝑠)出力伝達関数：𝑮(𝒔) =𝑨(𝒔) 𝟏=
𝑭(𝒔) 𝒎
入力

車に対して力𝑓という入力を加えた時の速度𝑣という出力を求める

（１１） 空気抵抗の無い車を力𝑓で加速した時の速度変化の伝達関数
物体に働く力の合計[N] = 𝑭 = 𝒎𝒂

𝑚𝑎(𝑡) = 𝑓(𝑡)

𝑚

力𝒇

𝑑𝑣(𝑡)
= 𝑓 (𝑡)𝑑𝑡

ラプラス変換𝑚𝑠𝑉(𝑠) = 𝐹(𝑠)出力伝達関数：𝑮(𝒔) =𝑽(𝒔) 𝟏 𝟏= ×
𝑭(𝒔) 𝒎 𝒔
入力

質量 m

𝑣

車に対して力𝑓という入力を加えた時の速度𝑣という出力を求める

（１２） 空気抵抗の無い車を力𝑓で加速した時の位置変化の伝達関数
物体に働く力の合計[N] = 𝑭 = 𝒎𝒂

𝑚𝑎(𝑡) = 𝑓(𝑡)力𝒇

𝑑 2 𝑥(𝑡)𝑚= 𝑓 (𝑡)𝑑𝑡 2

ラプラス変換𝑚𝑠 2 𝑋(𝑠) = 𝐹(𝑠)出力伝達関数：𝑮(𝒔) =𝑿(𝒔) 𝟏
𝟏= × 𝟐
𝑭(𝒔) 𝒎 𝒔
入力

質量 m

𝑥

車に対して力𝑓という入力を加えた時の速度𝑣という出力を求める

（１３） 空気抵抗の有る車を力𝑓で加速した時の速度変化の伝達関数
物体に働く力の合計[N] = 𝑭 = 𝒎𝒂 = 力−空気抵抗力

力𝒇

質量 m

𝑣, 𝑎
空気抵抗力𝒇𝑫

𝑚𝑎(𝑡) = 𝑓(𝑡) − 𝑓𝐷 (𝑡) = 𝑓(𝑡) − 𝐾(𝑣(𝑡))2 𝐾 =

1
𝜌𝐶 𝑆
2 𝑑

ここで計算を簡単にするため空気抵抗を𝐾𝑣(𝑡)と置いて、速度を求める式は次式となる。
𝑚𝑑𝑣(𝑡)= 𝑓(𝑡) − 𝐾𝑣(𝑡)𝑑𝑡

ラプラス変換𝑚𝑠𝑉(𝑠) = 𝐹(𝑠) − 𝐾𝑉(𝑠)𝑚𝑠𝑉(𝑠) + 𝐾𝑉(𝑠) = 𝐹(𝑠)伝達関数：𝑮(𝒔) =𝑽(𝒔) 𝟏
𝟏= ×
𝑭(𝒔) 𝒎 𝒔 + 𝑲/𝒎

𝐹(𝑠)1
𝑉(𝑠) =×𝑚
𝑠 + 𝐾/𝑚

（１４） 空気抵抗の有る車を力𝑓で加速した時の速度変化の伝達関数ー２
前頁では空気抵抗力を𝐾𝑣(𝑡) としたが、これを 𝐾𝑣 2 とした場合のラプラス変換を行う。
𝑚𝑑𝑣(𝑡)= 𝑓(𝑡) − 𝐾𝑣 2 (𝑡)𝑑𝑡

ラプラス変換𝐾
𝑚𝑠𝑉(𝑠) = 𝐹(𝑠) −න 𝑉 𝑠 − 𝜎 𝑉 𝜎 𝑑𝜎2𝜋𝑗 𝐵𝑟

この場合はラプラス変換で伝達関数を求めることは、非常に困難であることがわかる。

（１５） 回転運動系の伝達関数
慣性モーメント:𝑱 ⇔ 𝒎:質量
角速度:𝝎 ⇔ 𝒗:速度
トルク（モーメント）:𝝉 ⇔ 𝑭:力𝑑𝜔(𝑡)𝐽= 𝜏(𝑡) − 𝑐𝜔(𝑡)𝑑𝑡

参考：𝑚𝑎(𝑡) = 𝑚𝑑𝑣(𝑡)= 𝑓(𝑡) − 𝑘𝑣(𝑡)𝑑𝑡

ラプラス変換𝐽𝑠Ω(𝑠) = Τ(𝑠) − 𝑐Ω(𝑠)Ω(𝑠)(𝐽𝑠 + 𝑐) = Τ(𝑠)伝達関数：𝑮(𝒔) =𝜴(𝒔) 𝟏
𝟏= ×
𝜯(𝒔) 𝑱 𝒔 + 𝒄/𝑱

（１６） ばねダンパ系の伝達関数
𝑚𝑎(𝑡) = 𝑓(𝑡) − 𝑐𝑣(𝑡) − 𝑘𝑥(𝑡)𝑑 2 𝑥(𝑡)
𝑑𝑥(𝑡)
𝑚
=
𝑓(𝑡)
−
𝑐
− 𝑘𝑥(𝑡)𝑑𝑡 2
𝑑𝑡

ラプラス変換2

𝑚𝑠 𝑋(𝑠) = 𝐹(𝑠) − 𝑐𝑠𝑋(𝑠) − 𝑘𝑋(𝑠)𝑋(𝑠)(𝑚𝑠 2 + 𝑐𝑠 + 𝑘) = 𝐹(𝑠)伝達関数：𝑮(𝒔) =

𝑿(𝒔)
𝟏
=
𝑭(𝒔) 𝒎𝒔𝟐 + 𝒄𝒔 + 𝒌𝑘 ∶ ばね定数
𝑐： ダンパの減衰係数
𝑚：車の質量𝑎：車の加速度𝑓(𝑡)：車に働く力
𝑥(𝑡)：車の位置

（１７） 課題 １
空気抵抗の有るばねダンパ系の伝達関数を求めよ。尚、空気抵抗力はK𝑣とする。
空気抵抗力𝒇𝑫

（１８） 課題 ２
質量m[kg]の物体に力𝑓[N]を加えた時の移動量𝑥[m]の伝達関数を求めよ。尚、ばねの定数を𝐾、物体の摩擦係数を𝐷[N s/m]で、下式とする。
ばね力 𝒇𝒔 = 𝑲𝒙

摩擦力 𝒇𝒇 = 𝑫𝒗

移動量 𝒙, 𝒗
力𝒇

ばね力𝒇𝒔

質量m
摩擦力 𝒇𝒇

SIMLINK ３．ブロック線図（１） 概要SIMULINKはMBD(Model Based Design)で制御システムの開発を行う環境を提供している。
具体的には下図のようなブロック線図により制御システムの設計と数値
シミュレーションが可能となっている。尚、各ブロックは微分方程式をラプラス変換した要素で構成される。

ブロック線図例

（２） 空気抵抗の無い車を力𝑓で加速した時の加速度変化のブロック線図

力𝒇𝑓 𝑡 = 𝑚𝑎(𝑡)𝑨(𝒔) 𝟏
伝達関数：𝑮𝒇𝒂 (𝒔) ==𝑭(𝒔) 𝒎

𝑭

𝟏
/𝒎

𝑨

質量 m

加速度 𝑎

（３） 空気抵抗の無い車を力𝑓で加速した時の速度変化のブロック線図
力と加速度の伝達関数

力𝒇𝑨(𝒔) 𝟏
伝達関数：𝑮𝒇𝒂 (𝒔) ==𝑭(𝒔) 𝒎質量 m

力と速度の伝達関数
伝達関数：𝑮𝒇𝒗 𝒔 =
𝑭

𝟏
/𝒎

𝑨

𝑽 𝒔
𝟏
𝟏 𝟏
𝟏
=
= ×
∶ 𝐕 𝐬 = 𝑨(𝒔) ×
𝑭 𝒔
𝒎𝒔 𝒎 𝒔
𝒔
𝟏/𝒔

𝑽

速度 𝑣

（４） 空気抵抗の無い車を力𝑓で加速した時の位置変化のブロック線図

力𝒇

質量 m

力と位置の伝達関数
𝑿(𝒔)
𝟏
𝟏 𝟏 𝟏
伝達関数：𝑮(𝒔) === × ×𝑭(𝒔) 𝒎𝒔𝟐 𝒎 𝒔 𝒔

𝑭

𝟏
/𝒎

𝑨

𝟏/𝒔

𝑽

𝟏/𝒔

𝑿

位置 𝑥

（５） 空気抵抗の有る車を力𝑓で加速した時の速度変化のブロック線図ー１
１．まず自動車に働く力の合計を考える
力合計 𝑓𝑡 = 𝑓 − 𝑓𝐷 = 𝑓 − 𝐾𝑣 2

空気抵抗力を𝐾𝑣 2 とする

ラプラス変換力合計 𝑭𝒕 (𝒔) = 𝑭(𝒔) − 𝑭𝑫 (𝒔) = 𝑭(𝒔) − 𝑲𝑽𝟐 (𝒔)𝑭+

𝑭 − 𝑭𝑫 = 𝑭 − 𝑲𝑽𝟐

−

𝑲𝑽𝟐

力𝒇

質量 m

𝑣
空気抵抗力𝒇𝑫

（５） 空気抵抗の有る車を力𝑓で加速した時の速度変化のブロック線図ー２２．力から加速度を求める

力𝒇

ラプラス変換𝐹𝑡 𝑠 = 𝐹(𝑠) − 𝑘𝑉(𝑠) = 𝑚𝐴(𝑠)𝑭𝒕 (𝒔) 𝑭(𝒔) − 𝑲𝑽(𝒔)𝟏𝟐== (𝑭(𝒔) − 𝑲𝑽 (𝒔)) × = 𝑨(𝒔)𝒎𝒎𝒎𝑭

𝑭 − 𝑲𝑽𝟐 𝟏
/𝒎
−
𝑲𝑽𝟐

𝑣
空気抵抗力𝒇𝑫

𝑓𝑡 = 𝑚𝑎

+

質量 m

𝑨

（５） 空気抵抗の有る車を力𝑓で加速した時の速度変化のブロック線図ー３３．加速度から速度を求める

力𝒇

𝑑𝑣(𝑡)
𝑎 𝑡 =
𝑑𝑡

1
𝐴(𝑠) × = 𝑉(𝑠)𝑠𝑭

𝑭 − 𝑲𝑽𝟐−𝑲𝑽𝟐𝑣
空気抵抗力𝒇𝑫

ラプラス変換

+

質量 m

𝟏
𝒎

𝑨

𝟏
𝒔

𝑽

（５） 空気抵抗の有る車を力𝑓で加速した時の速度変化のブロック線図ー４４．空気抵抗力を力から引き算する。

力𝒇

質量 m

𝑣
空気抵抗力𝒇𝑫𝑭+

𝑭 − 𝑲𝑽𝟐

−

𝑲𝑽𝟐

𝟏
𝒎

𝑨

𝒌

以上でブロック線図が完成

𝟏
𝒔
二
乗

𝑽
𝑽

（６） 空気抵抗の有る車を力𝑓で加速した時の位置変化のブロック線図

𝑚𝑎(𝑡) = 𝑓(𝑡) − 𝑓𝐷 (𝑡) = 𝑓(𝑡) − 𝐾𝑣𝑎(𝑡) =

2

1
𝐾 = 𝜌𝐶𝑑 𝑆
2

力𝒇𝑎, 𝑣, 𝑥

質量 m

空気抵抗力𝒇𝑫

1(𝑓(𝑡) − 𝐾𝑣 2 (𝑡))
𝑚

𝑭 𝒔
𝑭

− 𝑲𝑽𝟐 𝒔
+

𝟏
𝟏
𝑨(𝒔)
×
=𝑽 𝒔
× =𝑨 𝒔𝒔𝒎

𝑭 − 𝒌𝑽𝟐

−

𝒌𝑽𝟐

𝟏
𝒎
𝒌

𝑨

𝟏
𝒔
二乗

𝑽
𝑽

𝟏
𝑽(𝒔) × = 𝑿 𝒔
𝒔
𝟏
𝒔

𝑿

（７） ばねダンパ系を力𝑓で加速した時の位置変化のブロック線図
𝑘 ∶ ばね定数
𝑐： ダンパの減衰係数
𝑚：車の質量𝑎：車の加速度𝑓(𝑡)：車に働く力
𝑥(𝑡)：車の位置

𝑓 𝑡 − 𝑐𝑣 𝑡 − 𝑘𝑥 𝑡 = 𝑚𝑎 𝑡
𝑓 𝑡 − 𝑐𝑣 𝑡 − 𝑘𝑥 𝑡

1
× = 𝑎(𝑡)𝑚

𝑭 𝒔 − 𝒄𝑽 𝒔 − 𝒌𝑿 𝒔

𝟏
× = 𝑨(𝒕)
𝒎

𝒌𝑿

𝑭

+

𝒌

− 𝑭 − 𝒄𝑽 − 𝒌𝑿

−

𝐜𝑽

𝒄

𝟏
𝑽(𝒔) × = 𝑿 𝒔𝒔𝟏
𝑨(𝒔) × = 𝑽 𝒔
𝒔

𝑿
𝟏
𝒎

𝑨
𝑽

𝟏
𝒔

𝑽

𝟏
𝒔

𝑿

SIMLINK ４．Simlinkの起動（１） 概要MATLABは非常に強力な数値演算能力を活かして微分方程式を計算することも得意であり、この能力を応用して制御システムの設計・シミュレーションに広く使用されている。

simlinkでは、PCのGUIを利用してグラフィカルに制御システムの開発が可能で、このような開発環境をMBD(Model Based Design)と言う。
応用分野は車から飛行機、電機等ほぼ全ての産業機器の開発で使用されており、特に自動車産業ではJMAAB(Japan MBD Automotive Advisory Board)
として標準化されて、現在開発・設計・試験等で広く利用されている。

（２） simlinkの立ち上げ①simlinkをクリック②simlinkの画面が表示される③空のモデルをクリック

（３） ファイルの保存とsimlinkの終了①保存をクリック②名前を付けて保存をクリック③●をクリックして終了

SIMLINK ５ ．波形の表示（１） 概要simlinkの信号発生機能(Sources)を使用してsin波形(Sine Wave)を発生し、信号などをモニターする機能(Sinks)を用いて波形を観測(Scope)する。
各要素は、ライブラリブラウザーから選択することができる。

ライブラリ
ブラウザー
をクリック

（２） モデルの作成
sin波形を発生する信号発生器をスコープで直接観測する。
②ライブラリ▼simlink▼SinksScopeをドラグ・アンド・ドロップ①ライブラリ▼simlink▼Source
Sine Waveをドラグ・アンド・ドロップ③２つの要素を線で繋ぐ

（３） 発生信号の設定②正弦波タイプ：は、時間ベースを選択③時間：は、シミュレー
ション時間を選択①Sine Waveをクリック

④振幅：は、１を設定⑤バイアス：は、０を設定⑥周波数：は、１を設定⑦位相：は、０を設定③設定終了後、OKをクリック⑥サンプル時間：は、０を設定

（４） シミュレーションの実行⑤グラフの横軸時間を設定③実行をクリック②Scope画面が表示される①Scopeをクリッ
ク④波形が表示される

（５） 課題

１．実効値100[Vrms]、周波数60[Hz]の波形を表示させよ。
２．初期値0、最終値1、ステップ時間0.1のステップ出力を表示させよ。

SIMLINK ６．抵抗の無い自動車の加速（１） 概要質量M=2[ton]の自動車を、力F=1[kN]で押し続けた時の自動車の位置の変化をシミュレートする。
力𝒇

位置𝑥

質量 m

力と位置の伝達関数
伝達関数：𝑮(𝒔) =

𝑭

𝑿(𝒔)
𝟏
𝟏 𝟏 𝟏
=
= × ×
𝑭(𝒔) 𝒎𝒔 𝒎 𝒔 𝒔
𝟏
/𝒎

𝑨

𝟏/𝒔

𝑽

𝟏/𝒔

𝑿

（２） モデルの作成①ライブラリ▼simlink▼Math Operation
Gainをドラグ・アンド・ドロップ③４つの要素を線で繋ぐ②ライブラリ▼simlink▼Continuous
Integratorをドラグ・アンド・ドロップ

（３） 入力値（力[N])の設定②ステップ時間：0を設定③初期値：0[N]を設定④最終値：１000[N]を設定
①Step
をクリック
⑤設定終了後、OKをクリック

（４） ゲインの設定
𝑭
𝒂 = = 𝑭[𝑵]𝑴
②ゲイン：1/2000を設定

①Gain
をクリック

③設定終了後、OKをクリック（５） 実行①Scope
をクリック

③実行
をクリック

②Scopeが表示される④実行結果が表示される

（６） 課題

車の加速度、速度、位置の変化を同時に３つ表示させよ。

SIMLINK ７．抵抗の有る自動車の加速（１） 概要質量M=2[ton]の自動車を、力F=1[kN]で押し続けた時の自動車の動きをシ
ミュレートする。
尚、空気抵抗力𝒇 = 𝒌𝒗𝟐 [𝑵]、𝒌 = 𝟒𝟎とする。
力𝒇
質量 m𝑎, 𝑣, 𝑥
ブロック線図を以下に示す。
𝑭

+

𝟏
𝟏
𝑨
𝒔
𝒎
𝑽𝟐 二
𝒌
乗

𝑭 − 𝒌𝑽𝟐

−

𝒌𝑽𝟐

𝑽
𝑽

𝟏
𝒔

𝑿

（２） モデルの作成①ライブラリ▼simlink▼Math Operation
Math Function
をドラグ・アンド・ドロップ

簡単に二乗②ダブルクリック③squareを選択（３） 実行①終了時間を設定②実行

（４） 実行結果の考察
速度の変化を見ると、始めは大きく加速するが徐々に減少し、最終的には
5[m/s]で一定となっている。
車の推進力が1[kN]であり、速度が5[m/s]の時の空気抵抗力は
𝒇 = 𝒌𝒗𝟐 = 𝟒𝟎 × 𝟓𝟐 = 𝟏𝟎𝟎𝟎[𝑵]となり、これ以上加速できないことを示している。

SIMLINK ８．比例制御（P制御）（１） 概要空気抵抗のある車の速度を、比例制御を使ったフィードバックで制御する。
ここで設定値を30[m/s]とし、制御対象は「SIMLINK ８．抵抗のある自動車の加速２」の伝達関数を使用する。
外乱
坂・風

自動車
人

目標値
設定速度

+
−

偏差
計測値

制御装置
車の駆動装
置

操作量
エンジン出力
計測装置
速度計

制御対象
自動車本体

制御量
車の実速度

（２） モデルの作成

制御装
置

制御対象
（自動車の伝達関数）

（３） 実行結果と考察ー１
設定速度が30[m/s]である
ものの、最終的には約17.6[m/s]となっている。
この時の空気抵抗力は
𝒇𝒅 = 𝒌𝒗𝟐 = 𝟒𝟎 × 𝟏𝟕. 𝟔𝟐= 𝟏𝟐, 𝟑𝟗𝟎[𝑵]となる。
比例制御では推力は偏差に比例するため、この速度での推力は
𝒇 = 𝟑𝟎 − 𝟏𝟕. 𝟔 × 𝟏𝟎𝟎𝟎
= 𝟏𝟐, 𝟒𝟎𝟎 𝑵 ≅ 𝟏𝟐, 𝟑𝟗𝟎であり、推力と抵抗力がつりあっていてこれ以上の速度が上昇しない
ことを示している。

（３） 実行結果と考察ー２制御装置の係数を1000から2000に変更すると、最終速度は
21.1[m/s]まで上昇するが、設定速度である30[m/s]までは到達しない点は同様となる。

SIMLINK ９．比例積分制御（PI制御）（１） 概要「SIMLINK ９．比例制御（P制御）」の制御システムでは、設定速度30[km/s]に自動車の速度は到達しない。この問題を解決するために比例要素に平行に積分要素が追加される。
偏差がある状態で偏差を時間的に積分すると、その値は時間とともに増大するため、やがて操作量が多きくなり設定速度に到達できる。

（２） モデルの作成

制御装置
追
加

制御対象

（３） 実行結果と考察ー１
制御要素に積分要素を追加して、比例・積分各要素に
P=1.0
I=1.0
を設定した場合、自動車の速度が設定値と同じ
30[m/s]に達していることがわかる。

（４） 実行結果と考察ー２
前頁と同じ制御システムで、 比
例・積分各要素にP=1.0, I=10.0 を設定すると、速度の立ち上がりが早く、最終的には30[m/s]になるものの、始めに40[m/s]まで一時的に上がり、その後下がりすぎている。
この上がり過ぎ量をオーバー
シュート、上がり下がりの振れをハンチングと言う。
積分要素を大きくするとこのような問題があるので注意が必要。

ハンチング

オーバーシュー
トSIMLINK １０．過渡特性（１） 概要PI制御で積分要素を大きくすると
右図のようにオーバーシュートやハ
ンチングが発生することになる。
又比例要素や積分要素が小さいと、設定値に到達するまでの時間が長くなる特性がある。
ここでは、制御システムの良し悪しを評価する基準につい説明する。

（２） 遅れ時間（td）
応答が定常状態の50%の所に達するまでの時間を示す。
1.4
1.3
1.2
1.1
1
0.9
0.8
0.7
0.6

td

0.5
0.4
0.3
0.2
0.1
0
0

2

4

6

8

10

12

14

16

18

20

（３） 立ち上がり時間（tr）
応答が最終値の10%から90%までに達する時間を示す。減衰振動的な応答のシステムでは、普通、0%～100%や5%～95%が使われることもある。
1.4
1.3

tr

1.2
1.1
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2

0.1
0
0

2

4

6

8

10

12

14

16

18

20

（４） ピーク時間(tp)
行き過ぎの第1ピークまでの時間を指す。
1.4
1.3
1.2

tp

1.1
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0

2

4

6

8

10

12

14

16

18

20

（５） 最大行き過ぎ量（オーバーシュート）（Mp）
応答の定常状態に対する最大ピークの値を指す。パーセント（%）で現されることもある。 最大行き過ぎ量はシステムの相対安定性と直接比例しいる。
1.4

ハンチン
グ

オーバーシュート

1.3

Mp

1.2
1.1
1
0.9
0.8
0.7

ハンチン
グ

0.6
0.5
0.4
0.3
0.2
0.1
0
0

2

4

6

8

10

12

14

16

18

20

（６） 整定時間（ts）
応答が定常状態の2%または5%の所に達するまでの時間を指す。
1.4
1.3
1.2
1.1
1
0.9
0.8

ts

0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
0

2

4

6

8

10

12

14

16

18

20

SIMLINK １１．比例積分微分制御（PID制御）（１） 概要「SIMLINK １１．比例積分制御（PI制御）」の制御システムでは積分要素を大きくすると立ち上がりが早くなるが、オーバーシュートとハンチングが発生している。
この対策として、制御に微分要素を追加することによりオーバーシュートとハンチングを低減でき、制御特性を向上することができる。
PID制御は下のブロックを使用する。

（２） モデルの作成

制御装置

Simulink
Continuous
PID Controller

制御対象（３） 実行結果と考察ー１
空気抵抗の無い車の速度制御
を考える
P=1.0
I=0.0
D=0.0
空気抵抗係数 Kd = 0
速度は１２秒程度で設定速度
30[m/s]に到達している。

（４） 実行結果と考察ー２
空気抵抗を加えた状態を考え
る。
P=1.0
I=0.0
D=0.0
空気抵抗係数 Kd = 40
空気抵抗が有るため、最高速
度が約17.5[m/s]となっており、
設定値30[m/s]に到達しない。

（５） 実行結果と考察ー３
比例要素を大きくしてみる。
P=10.0I=0.0
D=0.0
空気抵抗係数 Kd = 40
最高速度が約27[m/s]となり、前頁より大きくなったが、空気抵抗のため、依然設定値
30[m/s]に到達しない。

（６） 実行結果と考察ー４
積分要素を加えてみる。
P=1.0
I=1.0
D=0.0
空気抵抗係数 Kd = 40
積分要素の効果のため、設定値30[m/s]まで速度が上昇している。

（７） 実行結果と考察ー５
さらに積分要素を大きくして
みる。
P=1.0
I=10.0D=0.0
空気抵抗係数 Kd = 40
積分要素が大きすぎるとオー
バーシュートとハンチングが発生する。

（８） 実行結果と考察ー６
微分要素を設定する。
P=1.0
I=10.0D=10.0空気抵抗係数 Kd = 40
微分要素を設定することによりオーバーシュートを低減することができる。

（９） まとめ空気抵抗が有る環境での速度制御は、積分要素が必須となる。
又積分要素が多き過ぎる場合はハンチングが発生する場合があり、微分要素を加えることによりハンチングを低減することができる。