H∞補償器の設計

ここでの目的は,定数スケールドH∞制御問題(テキスト中の問題3)を解き,望ましい補償器を求めることです.
できるだけ高い制御性能を得るために, スケーリング d を変化させて,変数 k の最大値を見つけます.
そのとき得られた補償器が,最もよい性能の補償器です.

以下の作業は Matlab上で行います.

  1. スケーリング d を探索する範囲を指定する.

    hinf.m の中の d を変化させている for文 をエディタで編集して,d が変化する範囲を指定します.
    最初は,編集せずに先に進んでください.
    ....
    % 定数スケーリングの探索
    dk_hist = [];
    k_opt_global = 0;
    for d = 5:2:15 % ここを編集
    
      % 二分法による k の最大化
      k_opt_local = 0;
      k_low = 0.1;
      k_high = 10.;
    .....
    	
    上の例では,d は 5 から始まって,2 きざみで 15 まで増加します.

  2. hinf.m を動かして,補償器を設計する.

    以下のように hinf と入力すると, 一般化プラントのデータが読み込まれ,補償器が設計されます:
    >> hinf
    
    d = 5.000000, k = 5.050000 ... infeasible
    d = 5.000000, k = 2.575000 ... infeasible
    d = 5.000000, k = 1.337500 ... feasible
    d = 5.000000, k = 1.956250 ... infeasible
    d = 5.000000, k = 1.646875 ... feasible
    d = 5.000000, k = 1.801562 ... feasible
    d = 5.000000, k = 1.878906 ... feasible
    d = 5.000000, k = 1.917578 ... infeasible
    d = 5.000000, k = 1.898242 ... infeasible
    d = 5.000000, k = 1.888574 ... feasible
    d = 7.000000, k = 5.050000 ... infeasible
    d = 7.000000, k = 2.575000 ... infeasible
    (中略)
    d = 15.000000, k = 1.724219 ... feasible
    d = 15.000000, k = 1.762891 ... infeasible
    d = 15.000000, k = 1.743555 ... infeasible
    d = 15.000000, k = 1.733887 ... feasible
    points completed....
    1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.
    18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.
    36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.
    54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.
    72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.
    90.91.92.93.94.95.96.97.98.99.100.101.102.103.104.105.106.107.
    108.109.110.111.112.113.114.115.116.117.118.119.120.121.122.123.124.125.
    126.127.128.129.130.131.132.133.134.135.136.137.138.139.140.141.142.143.
    144.145.146.147.148.149.150.151.152.153.154.155.156.157.158.159.160.161.
    162.163.164.165.166.167.168.169.170.171.172.173.174.175.176.177.178.179.
    180.181.182.183.184.185.186.187.188.189.190.191.192.193.194.195.196.197.
    198.199.200.201.202.203.204.205.206.207.208.209.210.211.212.213.214.215.
    216.217.218.219.220.221.222.223.224.225.226.227.228.229.230.231.232.233.
    234.235.236.237.238.239.240.241.242.243.244.245.246.247.248.249.250.251.
    252.253.254.255.256.257.258.259.260.261.262.263.264.265.266.267.268.269.
    270.271.272.273.274.275.276.277.278.279.280.281.282.283.284.285.286.287.
    288.289.290.291.292.293.294.295.296.297.298.299.300.
    	
    スケーリングを変化する範囲が適切であれば, d と k のグラフは以下のように,おおよそ上に凸の形になります.
    こうならない場合は,d を変化する範囲,ステップを適宜変更し,再度補償器設計を行ってください.



    k が最も大きくなった場合の補償器がファイル controller.dat にセーブされます.
    このデータを用いて,後の消音制御実験を行います.

    hinf.m を動かすと,上のグラフの他に,補償器の Bode 線図と,閉ループ系の最大特異値のグラフが表示されます.


  3. 結果を考察する


Yasuhide Kobayashi
Last modified: Wed Apr 28 13:31:15 JST 2004