• 検索結果がありません。

UNIX版MATLABに関する技術の修得II 利用統計を見る

N/A
N/A
Protected

Academic year: 2021

シェア "UNIX版MATLABに関する技術の修得II 利用統計を見る"

Copied!
7
0
0

読み込み中.... (全文を見る)

全文

(1)

UNIX版MATLABに関する技術の修得II

著者

林 庄司

雑誌名

技術報告集

4 (1998年度)

ページ

45-50

発行年

1999-04

URL

http://hdl.handle.net/10098/7617

(2)

UNIX版 MATLAB に関する技術の修得 E

第三技術室システム制御技術班

林庄司

しはじめに

MATLAB は 1 980 年 Moler博士によって開発された.最初は Fortran言語を知らない人で も行列計算が対話的にできるようにという目的で M

A T L

A B

O

l

a

t

r

i

x

Laboratory) という言語 を Fortran言語を用いて開発された.

1

9 8

5 年に MATLAB を C 言語化し,機能と品質を大幅 にアップして製品化され,工学の分野では圧倒的な顧客を得た.現在第 4 世代言語とよばれている コンビュータ言語に分類されている. MATLAB の特徴は以下のようである 1) 1.物理現象および社会現象の記述が簡単にできる. 2. 対話的に使え,モデルの変数やパラメータを即時に変更して数値実験ができる. 3. 簡単に機能群を Toolbox として追加することが可能である. 4. 行列やベクトルの演算をするのにサブルーチンを作って call するのではなく,数学記述のまま

で可能である

(xTy -壬ト x'*y:Ax~A*x)

5. 行列処理については,他に類をみない疎行列処理が実行できる. 6. 高度な計算と図形処理を自身の機能として持ち,数式処理ソフト (Maple V など〉により数式 処理を行うことができる.またイメージ画像を取り込み,画像処理を行い,動画として画面上に映 すことができる.

今回の研修では MATLAB の機能が多くある中で. MATLAB 拡張ソフトである Toolbox 内

の Signal

P

r

o

c

e

s

s

i

n

g

.

C

o

n

t

r

o

l

System を用いて,その基本的な使い方とそれらを用いた簡単な信 号処理,制御問題を解く技術を修得できたので報告する.

2. 信号処理と Signal

P

r

o

c

e

s

s

i

n

g

2

.

1

信号処理構成

MATLAB としては MATLAB5. 1 を用い.

S

un

W

o

r

k

S

t

a

t

i

o

n

(AS4085) に X 端末 (sony XP117) を接 続して行った.ちなみに本 MATLAB は 4 ユーザ同時に使用可能で. WS に接続されている X 端末は 6 台である. WS に MATLAB ソフトとしてインストールされているものについては,また MATLAB を使用する ための基本的なコマンド,計算などに用いるための演算子,特殊文字については前回の報告 rUNIX の MATLAB に関する技術の修得」福井大学技術報告集

3

.

5

9

-

6

4

(1997) に記載されているのでここ では省略する.

-

45 ー

(3)

つぎに信号処理構成のためのブロック図は,

F

i

g

.

2. 1 に示す通りである.データ取得法,信号処

理の基礎,波形生成, 特徴の抽出の 4 つに大別される. テキストデータ load ìl 交関係 フーロエ変富島 フィ Jレタ wkl 形式ファイル wklread ナイキX ト周波数 lsim polyfit wav 形式ファイル wavread パタワースフイノレタ butter 画像データ imread 際歯止フー P エ変換 fft 1Il---一一 llι 一一一一一­ 一ル一一D一一一 一イ一一 ν 一一回 一ア一一接一一 ω 一 一フ一一直一一一 一回一 761 一「 Il 一 一 MmTIlt---ILl-』 ill--L 「 l 一

F

i

g

.

2

.

1 信号処理のブロック図 これらの詳細については以下に述べる. データ取得法はテキストフォーマットのデータを行列データとして読み込むことができ,そのほか wkl 形式,画像関連,音声信号関連のデータなども読み込むことができる.また A/D コンパータや GP IB などリンクするための Mex

(

M

a

t

l

a

b

E

X

t

e

r

n

a

l

interface) が用意され.直接データ読み込める. 信号処理の基礎については波形データに離散フーリエ変換を施し,基本周波数に分解して取り出す ものである.このほか直交関係(主に sin ,

c

o

s

)

,ナイキスト周波数などによる基本周波数の取り 出しを行うことができる. ここでの波形整形法は高周波ノイズカット,直流ドリフト除去,サンプリング周期を変更するなど の処理のことで,フィルタとスムーザの 2 つに分けられる.フィルタにはローパス・ハイパスフィ ルタ,パタワースフィルタ,チェビシェフフィルタの 3 種類がある.スムーザには fft 関数によるも のと spline 関数による内挿補間とがある. 特徴抽出の手法には,空間領域によるものと周波数領域によるものに分けられ,前者は最小二乗法 によりデータから特徴を抽出し,グラフに描くものである.後者は fft 関数により処理し,周波数 の最大値などを検出するものである.

(4)

-46-2. 2 S

i

g

n

a

l

Processing の構成要素と機能

Signal Processing

Toolboxを用いた信号処理は,特殊化された関数を MATLAB の計算,グラフィ ックの環境下で使用できるようにしたののである.そのコマンドおよび関数について,その主なも のを Table

2.

2 に示す 4)

Table 2

.

2

コマンドおよび関数 コマンド 説 明 汎用コマンド

l

o

a

d

File の読込み

s

a

v

e

File の保存

wavread

音声信号を読み込む 波形生成関数 三角関数

sin

,

cos

,

t

a

n

s

q

u

a

r

e

矩形波

s

a

w

t

o

o

t

h

ノコギリ波と=角波関数

d

i

r

i

c

周期性をもっ sinc

S

l

n

c

sin(πX )!7r X フイノレタ

f

i

l

t

e

r

フィルタ操作

f

i

l

t

i

フィルタの初期条件の設定

f

i

l

t

e

r

2

2 次元フィルタ操作

f

f

t

品速フーリエ変換

f

f

t

2

2 次元フーリエ変換 変換及び

t

f

2

s

s

伝達関数を状態空間型に変換 特殊演算

r

a

n

d

一様乱数:

Y=rand(m

,

n

)

a

b

s

大きさ

angle

位相角

d

e

m

o

n

d

復調

modulate

変調 統計的

psd

パワースペクトル計算 信号処理

x

c

o

v

共分散関数 グフフィック

p

l

o

t

線形プロット

specgram

スペクトル図を描く

s

p

l

i

n

e

スプライン補間

yi=spline(x

,

y

,

x

i

)

g

r

i

d

グリッドラインを画く

semilog

片対数プロット

:

s

e

m

i

l

o

g

(

x

)

t

i

t

l

e

グラフの表題

l

a

b

e

l

ラベルプロット

x

l

a

b

e

l

:

x 軸うヘー)~

2. 3

.

1 模擬データの信号処理 信号処理は自動計測,制御工学などの工学の分野では大変重要である. しかし C 言語や Fortran 言語などでフィルタ設計,スペクトル解析などの信号処理をするのは,熟練を要しないと甚だ難し く,またその計算に長時間を要するなどの問題がある. しかし Matlab の信号処理機能を用いると, 信号処理システムの研究,設計,エンジニアリングに対して数値的な計算に必要なものを M ファイ ルとして作成でき, M ファイルの変更も簡単に実行することができる. ここでは模擬信号データ処 理について述べる.

F

i

g

.

2. 3

.

1 に模擬信号データ 3 Hz と 30Hz の正弦波を示す.これら 2 つの信 号データの合成データに白色ノイズを付加した信号波形は Fig.

2. 3

.

2 のように得られる.これを fft 関数でフーリエ変換を行うと Fig.

2. 3.

3 のスペクトルデータが得られる.またこれら一連の 処理プログラムを Matlab

program 2

.

3. 1 に示す.

可 t s q

(5)

2. 3

.

1

%simultion 10f sin signal process n=l 024;dt=O.Ol; t=(O:n-1)*dt; 百 y1 omega1=2*pi*3; y1 =sin(omega 1 *t); subplot(4

,

l

,

l );plot(t

,

y1 :r'); xlabel('Time[s]'); ylabel('Magnitude y1'); axis([O (n-1 )*dt -1.5 1.5])

%

y2 omega2=2*pi*30; y2=sin(omega2本t);

subplot(4

,

l

,

2);plot(t

,

y2Y);

xlabel('Time[s]'); ylabel('Magnitude y2'); axis([O (n-800)*dt -1.5 1.5])

%

L

y=y1 +y2+0.1 *rand(size(t));

subplot(4

,

l

,

3);plot(t

,

y:r');

xlabel('Time[s]'); ylabel('Magnitude

L

'

)

;

axis([O (n-500)*dt-2 幻) 百 FFT 侃y=俄(y)/(n!2); fヒ(O:n-1)/dν(n-1);

subplot(4,l

.4

);plot(f(1 :n/2),abs(ffty(1 :n/2)));

axis([O1/(2地)0 max(abs(ffty))]); xlabel('Frequency[Hz]'); ylabel('Power spectrum');

M

a

t

l

a

b

p

r

o

g

r

a

m

ちL

i

,.

Tim 叫s] 2止 雪 言 データ 4.5 タ d ア

3 波

mm

一矧

3.5 な 1 :;.

i

J

寸」 11 11 」 l14l 」叩

F

i

g

.

2. 3

.

2

TA 柑 タ 司ア Y 「 l1111 11 LORP 一一同ク

十才叫ペ

一一同ス

YA 叫 TA 担 T A R M -T A n u ュ t

ij;山

F

i

g

.

2

.

3

.

3

C

o

n

t

r

o

l

Systemを用いた制御系の応答

3

.

モデル化 結果をグラフ 解析, 根軌跡の計算に用いられ,

C

o

n

t

r

o

l

Systemの基本的なコマンドとその機能を Table 制御設計,

C

o

n

t

r

o

l

S

y

s

t

e

m

Toolbox は制御工学で、使われる関数を与えるもので, 特に時間応答,周波数応答, の方法を与えるものである. 化できる利点がある.

3

.

1 に示す. 2. 3. 5) コマンドおよび関数 コマンド 説 明 時間応答

s

t

e

p

単位ステップ応答をプロット

i

m

p

u

l

s

e

インパルス応答

i

n

i

t

i

a

l

初期条件に対する応答

l

s

i

m

任意の入力に対するシミュレーション

c

o

v

a

r

白色ノイズに対する共分散応答

f

i

l

t

e

r

フィルタリングの実行 周波数応答 三角関数

sin

,

cos

,

t

a

n

s

q

u

a

r

e

矩形波

s

a

w

t

o

o

t

h

ノコギリ波と三角波関数

b

o

d

e

ボード線図のプロット

n

y

q

u

i

s

t

ナイキスト線図のプロット モデル設計と

a

p

p

e

n

d

システムダイナミックスの付加 関数

p

a

r

a

l

l

e

l

システムの parallel 結合

senes

システムの series結合

f

e

e

d

b

a

c

k

feedback システムの結合

r

l

o

c

u

s

根軌跡をプロット

1

9

r

線型レギュレータの設計

1

g

e

線型エスティメータの設計

-

48 ー

3

.

1

T

a

b

l

e

(6)

3

.

2 制御モデルとその応答 ここでは Fig.

3. 2. 1

~こ示す Duffing振動系

モデルを制御対象とする制御システムについ Ix

てモデルを作成し,シミュレーションを行 う. この制御対象に PID コントローラを付加 したシステムのブロック図は Fig.

3. 2.

2 の ように示すされる. ところで, Fig.

3. 2. 1

の運動方程式は(

1

)式のように与えられる.

F

i

g

.

3. 2. 1

mx+cx+M=q(t)

(

1

)

ここで M は変位 x の関数で,

M=kx+ぱ外

力 q(t) は調和外力として q(め=

Qcos

(ω,t)

与えると(

1

)式は. mx+cx+kx+似3= QCOSωt)

(

2

)

となる. 1!! しシステムのノマラメータは Table 3.2.2 に示す通りである.今, s をラプラス

F

i

g

.

3. 2. 2

ブロック線図 演算子とすると PID は (kp+kdS+k 】/

s

)で表される. このシステムのプログラムは Matlab

program 3

.

2.

1 に示す.また step応答特性は Fig.

3

.

2.

3 に,ボード線図は Fig.

3

.

2.

4 に示され

x: 物体の変位 m:物体の質量 c: 減衰係数 q: 周期外力 Nk: 非線形復元力 Duffing振動系モデル 外現 る.

iJ-1

4 70 10

F

i

g

.

3

.

2. 3

Step応答特 e性 80 「 Illl 寸寸 Il--ー」 90 100 @ I

~-20I

1 0 ・ ・ ・・ -60' 10" 10,3 10・ 2 10" 100 Fr叫Jency(rad帥c) 。 l トーーーーー-ーーーー戸曙苧伊-. ...""... ...1 吾叶 ~

.

_

~

.

'

.

.

.

~...

.

.

'

.

:

.

.

.

.

'

.

.

',.. . . .'.. .三下 二: 1-100 トー・ 町 e司 句 喝 司 ・..V 17 F; 1 ・:: : :¥:. ・ ー ソ':~

:

l

~ -150~ i ・:::::::.... ::.::::,:\_.:一- 4 -2ooL ・3 1n,2 10" 100 1口、 10" 10.3 10,2 10" Fr叫居間y(ra柏町)

F

i

g

.

3. 2.

4 ボード線図

Table 3. 2

.

2

システムパラメータ

m

:

5

k

g

I

k

p (比例 r イン)

:

2

c

:

1

.

O

N

-

s

/

m

l

k

d (微分 r イン)

:

0

k :

2

.

O

N

/

m

I

k

i (積分 r イン)

:

0

.

0

1

α:

0

I 外乱

:

0

-49-M .

atlab program 3. 2. 1

10'

%simultion of step-response and bode diagrams

%model of system num1=[0 0 0.2]; den1=[1 0.20.4]; %series connect num2=[0 2 0.01]; den2=[0 1 0];

[num3

,

den3]=series(num 1

,

den 1

,

num2

,

den2);

喝feedbackconnect

[numc

,

denc]=feedback(num3

,

den3

,

1

,

1 );

hold

%step-response

t=0:0.05:100;

[y1

,x1 ,

t]=step(numc,denc,t);

subplot(3

,

1

,

1 );plot(t,y1)

grid

xlabel('T匇e( sec ) ')

ylabel('Displacement')

%bode diagrams w=logspace(ー 1 , 1 ,101);

[mag

,

phase

,

w]=bode(numc

,

denc);

subplot(312),semilogx(w,20*log10(mag)) grid xlabel('Frequency(rad/sec),) ylabel('Ga匤 (db)') subplot(313),semílogx(w,phase) grid xlabel('Frequency(rad/ sec) ') ylabel('Phase(deg)') holdof干

(7)

4. まとめ

MATLAB は物理現象および社会現象のモデル化や記述が簡単にできる利点がある.データ処 理や数式処理が対話的に行え,それらの結果をグラフ,動画として取り出すことができる.制御工 学の分野だけではなく,広く工学の分野で C 言語や Fortran言語を使用しているユーザに第 4 世代 言語として良く用いられている.

今回の研修では MATLAB の機能が多くある中で, MATLAB 拡張ソフトである Toolbox 内

の Signal

Processing

,

Control

System の 2 つのソフトについて,その基本的な使い方の修得を行

った.

Signal

Processing を用いては, 3Hz と 30Hz の正弦波に白色ノイズを付加した合成信号波 形の作成と,その信号から基本周波数の抽出を行うこれら一連の処理プログラムの作成を行った.

また制御問題を解く方法については,システムのブロック図を作成し,そのシステムの step応答, 周波数応答について Control System を用いて求め,その技術の一部の修得ができた.

5. 今後の課題

MATLAB 拡張ソフトで, Toolbox 内にあり,今回修得できなかった Neural

Network

,

Robust C

ontrol

,

Wavelet

,

System

Identification解析などのソフトについても引き続き理解を深める必要

カt ある. 特に制御問題を解く場合,その系が極めて複雑あるいは数学的に未知な場合についても系の解析が 必要とされている.その場合 MATLAB は解析の有効な手段となりうるし,大学における研究と 学生の技術指導上有用なものである.今後さらに広範囲に MATLAB 全般にわたり理解を深め, 一層の技術修得を計る必要がある. 参考文献

1

)小国 力 MATLAB と利用の実際

1

995

サイエンス社

2) The MathWorks

,

I

n

c

.

MATLAB Use's Guide

サイパネットシステム社

3

)

The MathWorks

,

I

n

c

.

SIMULINK U

s

e

'

s

Guide

サイパネットシステム社

4

)

Signal Processing Toolbox 1 9 9

4

サイパネットシステム社

5

)

Control System Toolbox 1 9 9

3 サイパネットシステム社

n U

F h u

参照

関連したドキュメント

﹁ある種のものごとは︑別の形をとる﹂とはどういうことか︑﹁し

修正 Taylor-Wiles 系を適用する際, Galois 表現を局所体の Galois 群に 制限すると絶対既約でないことも起こり, その時には普遍変形環は存在しないので普遍枠

Wach 加群のモジュライを考えることでクリスタリン表現の局所普遍変形環を構 成し, 最後に一章の計算結果を用いて, 中間重みクリスタリン表現の局所普遍変形

これはつまり十進法ではなく、一進法を用いて自然数を表記するということである。とは いえ数が大きくなると見にくくなるので、.. 0, 1,

最愛の隣人・中国と、相互理解を深める友愛のこころ

手動のレバーを押して津波がどのようにして起きるかを観察 することができます。シミュレーターの前には、 「地図で見る日本

備考 1.「処方」欄には、薬名、分量、用法及び用量を記載すること。

つまり、p 型の語が p 型の語を修飾するという関係になっている。しかし、p 型の語同士の Merge