Advanced Automation

2009.9.10 CACSD introduction

  • introduction of Matlab and Simulink
  • review of clasical control theory
    1. transfer function
    2. state-space representation
    3. Bode diagram
    4. characteristics of 2nd-order system
    5. Nyquist stability criterion
    6. gain margin and phase margin
    7. characteristic polynomial
    8. poles and impulse response

2009.9.17 Intro. to Robust Control

  • robust stability
  • performance improvement
  • H infinity norm

2009.10.15 norm, vector space, normed linear space

2009.10.22 eigenvalue, eigenvector, singular value decomposition

2009.11.5 state space representation of connected system, state space representation of generalized plant for various control problem, mixed sensitivity problem


... generalized plant is described by hand

... function sysic() is used to obtain generalized plant

simulink model

simulink model for noise problem

execution example for Matlab

M = zeros(3,2)
plot(t, y)
plot(t, y, 'r', t, r, 'b')
bodemag(S, 'r', gopt/WS, 'r--', T, 'b', gopt/WT, 'b--');
bodemag(S, 'r', gopt/WS, 'r--', T, 'b', gopt/WT, 'b--');
grid on
plot(t, y, 'r', t, r, 'b')
grid on
bodemag(P0, 'r', K, 'b')
grid on
grid on
plot(t, y, 'r', t, r, 'b')
grid on
plot(t, y, 'r', t, r, 'b')
plot(t, y, 'r', t, n, 'b')
plot(t, y*10, 'r', t, n, 'b')
plot(t, y, 'r', t, n, 'b')
bodemag(P0, 'r', K, 'b')
grid on
bode(P0, 'r', K, 'b')
grid on
bode(P0, 'r', K, 'b', P0*K, 'm')
grid on
bode(P0, 'r', K, 'b', -P0*K, 'm')
grid on


2009.12.10 Speed control of two inertia system with servo motor (1/3)

  • Problem setup
  • Modelling (frequency response experiment)

2009.12.17 Speed control of two inertia system with servo motor (2/3)

  • Controller design
  • report
  1. design your controller so that the system performance is improved compared with the given example
  2. Draw the following figures and explain the difference between two control systems:
    1. bode diagram of controllers
    2. gain characteristic of closed-loop systems
    3. time response of control experiment
  3. Why is the performance of your system improved(or unfortunately decreased)?
    • due date: 28th(Mon) Dec 17:00 --> 8th(Fri) Jan 2010
    • submit your report by e-mail to or doc files is OK)
    • You can use Japanese
    • maximum controller order is 20
    • submit your cont.dat and cont_order.dat to until 24th Dec --> 8th(Fri) Jan 2010

2009.12.22 announcement to design controller

Please use LMI based H infinity control method instead of Riccati based method (default). Specifically, please use hinfsyn function in cont.m as follows:

[K, clp, gopt] = hinfsyn(G, 1, 1, 'DISPLAY', 'on', 'METHOD', 'lmi')

There were some numerical problems in the execution of cont.m last week: the gain characteristics of sensitivity(and complementary sensitivity) function was not bounded by the weighting function in the resultant figure as following:


You can also check if the design result is OK or not as following:

>> cont
Test bounds:      0.0000 <  gamma  <=      0.9051 

  gamma    hamx_eig  xinf_eig  hamy_eig   yinf_eig   nrho_xy   p/f
    0.905   4.1e-03 -2.2e-08   1.5e-03   -1.9e-20    0.0674    p 
    0.453   4.1e-03# ********   1.5e-03   -3.8e-05# ********    f 
    0.679   4.1e-03# ********   1.5e-03   -1.5e-04# ********    f 
    0.792   4.1e-03 -2.2e-08   1.5e-03  -3.9e-04#   0.0031    f 
    0.849   4.1e-03 -2.2e-08   1.5e-03  -9.0e-04#   0.0064    f 
    0.877   4.1e-03 -2.2e-08   1.5e-03  -2.1e-03#   0.0138    f 
    0.891   4.1e-03 -2.2e-08   1.5e-03  -5.3e-03#   0.0343    f 
    0.898   4.1e-03 -2.2e-08   1.5e-03  -2.2e-02#   0.1384    f   

Gamma value achieved:     0.9051
>> norm(clp, 'inf')

ans = 


In the above result, the closed-loop H infinity norm were 0.9051 and 1.2593 by hinfsyn() and norm() functions, respectively. This inconsistency implies that the design result might be incorrect since these two values of gamma should be the same.

2009.12.24 Speed control of two inertia system with servo motor (3/3)

  • Control experiment

participant list


  • program sources for frequency response experiment
  • program sources for control experiment
  • format of result.dat file
    • 1st column: time [sec]
    • 2nd column: motor speed [rad/sec] (measured output)
    • 3rd column: load speed [rad/sec]
    • 4th column: motor torque [Nm] (control input)
    • 5th column: reference speed [rad/sec]
  • configuration of control experiment
    • reference signal is generated as described in hinf_module.c:
      if((t > 5)&&(t < 15)){
        r = 15.0;
        r = 5;
    • 30% of rated torque is loaded from 10 to 12 sec as specifying in hinf_module.c:
      if((t > 10.)&&(t < 12.)){
        daconv(0, bit16_conv(torq_volt_conv(RATED_TORQ*-0.3)));
        daconv(0, bit16_conv(torq_volt_conv(0)));


  • Difficulties of our plant: As motor speed is approximately calculated by using difference for one sampling period in hinf_module.c like
    thetaM_rad = (double)read_theta(1) / (double)Pn212 * 2 * M_PI;
    speedM_rad = (thetaM_rad - thetaM_rad_before) / msg->sampling_period;
    thetaM_rad_before = thetaM_rad
    sampling period should not become too small. On the other hand, sampling period should be chosen as small as possible so that desiged continuous-time controller could be closely implemented by its descretized version. Therefore, we have a dilemma to control our plant. The sampling period 0.25 msec was chosen by traial and error so that noise in measured speed is not too large. The gain in high frequency range of continuous-time controller should be small enough for discretization.

There are some ways to tackle the problem:

  • Use loose weight WT(s) (over estimate of modeling error in high frequency range as explained in Dec. 24.)
  • Loop shaping design procedure
  • sampled-data H infinity control design
  • Evaluate of control input u with a high pass filter
  • ...

The final option will be explained below:

related links

添付ファイル: fileHPF_u.png 342件 [詳細] filehinf_module.c 695件 [詳細] filehinf_app.c 721件 [詳細] filehinf.h 662件 [詳細] filefreqresp_module.c 801件 [詳細] filefreqresp_app.c 748件 [詳細] filefreqresp.h 729件 [詳細] filecont_lmi.m 821件 [詳細] filecont_fixed.m 820件 [詳細] fileload_cont_data.m 735件 [詳細] filecompare.m 815件 [詳細] filecont.png 726件 [詳細] filecont.m 879件 [詳細] fileweight.m 785件 [詳細] fileresult.dat 1083件 [詳細] filecont_order.dat 718件 [詳細] filecont.dat 716件 [詳細] filenominal_fixed.m 843件 [詳細] filefreqresp_fixed.m 784件 [詳細] filefrdata_amp4_offset10_fixed.dat 695件 [詳細] filefrdata_amp3_offset10_fixed.dat 689件 [詳細] filefrdata_amp3_offset5_fixed.dat 710件 [詳細] filefrdata_amp3_offset0_fixed.dat 701件 [詳細] filefrdata_amp2_offset10_fixed.dat 721件 [詳細] filefrdata_amp10_offset20_fixed.dat 694件 [詳細] filefreqresp.m 822件 [詳細] filenominal.m 834件 [詳細] filefrdata_amp4_offset10.dat 689件 [詳細] filefrdata_amp3_offset10.dat 696件 [詳細] filefrdata_amp3_offset5.dat 759件 [詳細] filefrdata_amp3_offset0.dat 670件 [詳細] filefrdata_amp2_offset10.dat 728件 [詳細] filesetup.pdf 1098件 [詳細] filerub4.m 743件 [詳細] filerub3.m 733件 [詳細] filesimurub_noise.mdl 818件 [詳細] filesimurub.mdl 877件 [詳細] filerub.m 798件 [詳細] filerub2.m 790件 [詳細] fileex61.m 814件 [詳細] filemod2.mdl 919件 [詳細] fileex24.m 848件 [詳細] fileex23.m 844件 [詳細] fileex22.m 822件 [詳細] fileex21.m 897件 [詳細] filemod1.mdl 927件 [詳細] fileex.m 946件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2010-09-07 (火) 12:24:18 (4066d)