ハードディスクベンチマーク問題
Ver.2 & Seekdemo

HDDベンチマークWG
宇都宮大学工学部
平田光男

1Ver.1.xとVer.2.xの違い

制御対象のメカモデルを変更
 外乱のサンプリング時間を外乱毎に設定可能とした
 外乱毎の外乱生成コマンドを分けた

2

ノミナル制御対象
Nominal model

Gain (dB)

100500-50 11010

210Frequency (Hz)3104105102

10Frequency (Hz)3104105

Phase (degree)

180
900-90-180 1
103

フルオーダーモデル
Full-order model

Gain (dB)

100500-50 11010210Frequency (Hz)310410510210Frequency (Hz)3104105

Phase (degree)

180
900-90-180 1104変動モデル
50Gain (dB)

403020100-10 3104105410510Frequency (Hz)Phase (degree)

180900-90-180 3
1010Frequency (Hz)5

外乱のサンプリング周期■ サンプリング周期の定義
PlantData = SetPlantModel;
PlantData.Ts - PESのサンプリング周期
PlantData.Tc - 制御器から出力される制御入力のサンプリング周期
PlantData.Ty - 制御対象の出力のサンプリング周期
PlantData.Tu - 制御入力のサンプリング周期■ サンプリング周期のデフォルト設定
Ts = Tc = Ty = Tu
■ 各外乱のサンプリング周期• フラッタ外乱
Ty
• 力外乱
Tu
• RROTs• センサーノイズ
Ts6

外乱パラメータの定義
function [DistParam] = SetDistParam(PlantData);% The length of simulationDistParam.num_sim_revolution = num_sim_revolution;% Frequency vector
DistParam.Nums= Nums;DistParam.Numu= Numu;DistParam.Numy= Numy;DistParam.dFs= dFs;DistParam.dFu= dFu;DistParam.dFy= dFy;DistParam.Freqs= Freqs;
DistParam.Frequ= Frequ;DistParam.Freqy= Freqy;% Sensor noise
DistParam.AmpSensorNoise= AmpSensorNoise;% Force disturbance
DistParam.AmpForceDist= AmpForceDist;% Flutter disturbance
DistParam.AmpFlutterDist= AmpFlutterDist;DistParam.FlutterFreq= FlutterFreq;% DistParam.FlutterFreqSigma = FlutterFreqSigma; % used ???
DistParam.FlutterFreqZeta= FlutterFreqZeta;% RRO disturbance
DistParam.FreqRRO= FreqRRO;DistParam.AmpRRO= AmpRRO;DistParam.RROSequence= RROSequence;% Seeds for random signal
DistParam.Seed_ForceDist= 1;
DistParam.Seed_SensorNoise = 2;
DistParam.Seed_FlutterDist = 3;
DistParam.Seed_RRODist= 4;

7

フラッタ外乱[Flutter] = SetFlutterDist(PlantData,DistParam);% Output parameters in time domain
Flutter.Dist= Dist;
Flutter.DistT= DistT;
Flutter.DistTs= Ty;
Flutter.DistAtPes = DistAtPes;
Flutter.DistAtPesT = DistAtPesT;
Flutter.DistAtPesTs = DistAtPesTs;% Output parameters in frequency domain
Flutter.Freq= Freq;
Flutter.Spec= Spec;
8

力外乱[Force] = SetForceDist(PlantData,DistParam);% Output parameters in time domain
Force.Dist= Dist;
Force.DistT= DistT;
Force.DistTs= Tu;
Force.DistAtPes = DistAtPes;
Force.DistAtPesT = DistAtPesT;
Force.DistAtPesTs = Ts;% Output parameters in frequency domain
Force.Freq = Freq;
Force.Spec = Spec;
Force.SpecAtPes = SpecAtPes;
9センサーノイズ[Sensor] = SetSensorNoise(PlantData,DistParam);% Output parameters in time domain
Sensor.Noise= Noise;
Sensor.NoiseT= NoiseT;
Sensor.NoiseTs= Ts;% Output parameters in frequency domain
Sensor.Freq= Freq;Sensor.Spec= Spec;10Repeatable RunOut (RRO) 外乱[RRO] = SetRRO(PlantData,DistParam);% Output parameters in time domain
RRO.Dist= RRODist;
RRO.DistT= RRODistT;
RRO.DistTs = Ts;% Output parameters in frequency domain
RRO.Freq= Freq;RRO.Spec= Spec;11

外乱のスペクトラム
0Dist data in frequency domain
Force Dist at PES
Flutter DistSensor NoiseRRO Dist
ALL-20Magnitude [dB]-40-60-80-100-120 1
10102

103104Frequency [Hz]12シーク制御デモtsClockTime[tr' U]

x' = Ax+Bu
y = Cx+DuFrom
Workspace

Hard disk system1

ys
Head position1usControl Input

13

Minimum jerk input
0.02

10.5
10.4

0.015

10.3
0.01
0.005

10.1
PositionControl input

10.2

010
9.9-0.005

9.8-0.01

Umax = 0.019492 N
Seek time = 1.106061 ms

9.7-0.015
-0.02

9.6
00.5

11.5
Time [s]22.5-3x 109.500.5

11.5Time [s]22.5-3x 1014

Frequency shaped FSC 1
0.03

10.5
10.4
10.3
10.2

0.01

PositionControl input

0.02

0-0.01

10.1
109.9
9.8
Umax = 0.028040 N
Seek time = 0.738636 ms

9.7-0.02

9.6-0.03

00.5

11.5

Time [s]22.5-3x 10

9.5

00.5

11.5

Time [s]22.5-3x 1015

Frequency shaped FSC 2
0.03

10.5
10.4
10.3
10.2

0.01

PositionControl input

0.02

0-0.01

10.1
109.9
9.8
Umax = 0.026949 N
Seek time = 0.750000 ms

9.7-0.02

9.6-0.03

00.5

11.5

Time [s]22.5-3x 10

9.5

00.5

11.5

Time [s]22.5-3x 10

16

ベンチマーク問題～シーク制御編～

シーク時間は目標トラックの±0.1track以内に収まった時間とする
 ロバスト性については，すべての変動モデル＆ループゲイン変動±5%のすべての組み合わせで評価する
 制御入力にLimitは設けない シーク距離は1track及び10trackとする17