[제어공학] Phase Compensator

Eugene CHOI·2021년 4월 20일
0

Control Engineering

목록 보기
7/9
post-thumbnail
post-custom-banner

Compensator

제어기를 설계할 때는 우선적으로 KpK_p값을 선정하여 esse_{ss}를 줄이고, B.W.를 확보합니다.
KpK_p만으로 안된다면 KiK_i도 추가하면 되지만 이때는 과도응답특성이 보장되지 않습니다.
gain을 설계한 후에도 P.M.P.M.이 부족하다면, 이때는 compansator(GcG_c)를 설계하여 P.M.P.M.을 증가시켜야 합니다.


보상기 GcG_c를 추가하게 되면 최종적으로 open-loop transfer function은 KGCGHKG_CGH가 됩니다.
복소수의 특성으로 인하여 총 Phase는 K+Gc+G+H\angle K +\angle G_c +\angle G +\angle H가 되는 특성을 이용하여 쉽게 Phase를 끌어 올리거나 내릴 수 있습니다.

보상기는 다음과 같이 설계됩니다.

Gc(s)=K(s+z)s+p=1+ατs1+τsG_c(s)=\frac{K(s+z)}{s+p}=\frac{1+\alpha\tau s}{1+\tau s}

Phase Lead Compensator (진상보상기)

특정 주파수에서 Phase를 끌어올림으로써 P.M.P.M.을 확보하는 방식입니다.

B.W.가 증가하기 때문에 B.W.를 좀 더 키울 필요가 있다면 Phase lead compensator를 사용하는 것이 좋습니다.

설계

  1. KpK_pKiK_i를 사용하여 esse_{ss}를 줄여 steady state error 조건을 만족시킵니다.
  2. 원하는 댐핑계수를 얻기위한 P.M.P.M.을 계산하여 추가로 확보해야하는 Phase lead ϕm\phi_m을 정합니다. ( if    P.M.<60°,    then    ζ=P.M.100[deg]if\;\;P.M.<60\degree,\;\;then\;\;\zeta=\frac{P.M.}{100}[deg])
  3. sinϕm=α1α+1\sin\phi_m=\frac{\alpha-1}{\alpha+1}을 이용하여 α\alpha를 결정합니다.
  4. 개루프 전달함수 KG(jω)H(jω)KG(j\omega)H(j\omega)로부터 gain이 10logα[dB]-10\log\alpha[dB]가 되는 ωm\omega_m을 정합니다.
  5. ωm=1/(τα)\omega_m=1/(\tau\sqrt\alpha) 식으로부터 τ\tau를 결정합니다.
  6. KGcGHKG_cGHbode plot을 그리고 P.M.P.M.을 확인하고 부족하다면 3번부터 다시 시작합니다.

보상기의 최종결과는 다음과 같습니다.

Gc(s)=1+ατs1+τsG_c(s)=\frac{1+\alpha\tau s}{1+\tau s}

Example


전체 closed loop system에 대하여 Ts4,ζ0.45T_s\leq4, \zeta \geq0.45가 되도록 설계하여라.

solve)

  1. K1K_1을 결정합니다.

    가장 먼저 ζ\zeta를 안정하게 최솟값으로 잡고 ωn\omega_n을 알아냅니다.

    Ts=4ζωn  (2%  criterion)44ζωnωn1ζ=10.45=2.22  (minimal  ζ)T_s=\frac{4}{\zeta}{\omega_n}\;(2\%\;criterion)\\ 4\geq\frac{4}{\zeta\omega_n} \omega_n\geq\frac 1\zeta=\frac1{0.45}=2.22\;(\because minimal\; \zeta)
    YR=K1s21+K1s2=K1s2+K1=ωn2s2+2ζωns+ωn2(2시스템의standardform)K1=ωn2.22K14.93\frac YR=\frac{\frac{K_1}{s^2}}{1+\frac{K_1}{s^2}}=\frac{K_1}{s^2+K_1}=\frac{\omega_n^2}{s^2+2\zeta\omega_ns+\omega_n^2}(\because 2차\,시스템의\,standard\,form)\\ \rarr \sqrt{K_1}=\omega_n\geq2.22\\ \rarr K_1\geq4.93

    안전계수를 고려하여 K1K_1을 10으로 특정합니다.

  2. P.M.P.M.을 결정합니다.

    openloop 전달함수는 K1G=K1s2=10(jω)2=10ω2K_1G=\frac{K_1}{s^2}=\frac{10}{(j\omega)^2}=-\frac{10}{\omega^2}입니다.
    Magnitude = 20log1010ω220\log_{10}|-\frac{10}{\omega^2}|이므로 각 주파수에서 gain은 다음과 같습니다.

    ω=120ω=100ω=1020\omega=1 \rarr 20\\ \omega=\sqrt{10} \rarr0\\ \omega=10 \rarr -20

    따라서 gain이 0이 되는 순간의 P.M.P.M.ω=10\omega=\sqrt{10}이 되는 순간입니다.

    phase=K1G=10s2=10(jω)2=(1)=180°phase=\angle K_1G=\angle \frac {10}{s^2}=\angle\frac{10}{(j\omega)^2}=\angle(-1)=-180\degree

    따라서 P.M.=0°P.M.=0\degree입니다.
    P.M.P.M.이 없이 때문에 단진동하는 제어 모델이 될 것이기 때문에 Compensator를 추가하여 P.M.P.M.을 확보하여야 합니다.

  3. ζ=0.45\zeta=0.45가 되기 위한 추가적인 P.M.(ϕm)P.M.(\phi_m)을 선정합니다.

    phase가 60°60\degree 이하일 때 근사할 수 있는 ζ=P.M.100\zeta=\frac{P.M.}{100}식을 이용하면, ϕm=0.45×100=45°\phi_m=0.45\times100=45\degree입니다.

  4. α\alphaτ\tau, ωm\omega_m을 특정합니다.

    sinϕm=α1α+1α=5.82810log10α=7.655dB\sin\phi_m=\frac{\alpha-1}{\alpha+1}\\ \rarr\alpha=5.828\\\,\\ -10\log_{10}\alpha=-7.655dB

    따라서 보상시스템의 크기는 비보상시스템보다 7.655dB7.655dB 큰 값을 가지게 됩니다.
    새로운 주파수 ωm\omega_m은 magnitude를 구하는 식으로부터 알 수 있습니다.

    20log1010s2=7.655  20log1010ωm2=7.655  ωm=4.9120\log_{10}|\frac{10}{s^2}|=-7.655\\\;\\ 20\log_{10}\frac{10}{\omega_m^2}=-7.655\\\;\\ \omega_m=4.91

    여기서 τ\tauωm=1τα\omega_m=\frac{1}{\tau\sqrt\alpha}입니다.

    ωm=1τα  τ=1ωmα=14.915.828=0.0844\omega_m=\frac 1{\tau\sqrt\alpha}\\\;\\ \tau=\frac{1}{\omega_m\sqrt\alpha}=\frac{1}{4.91\sqrt{5.828}}=0.0844
  5. 최종적으로 보상기 GcG_c는 다음과 같이 표현될 수 있습니다.

    Gc(s)=1+ατs1+τs=1+0.49s1+0.0844s1+s/21+s/12G_c(s)=\frac{1+\alpha\tau s}{1+\tau s}=\frac{1+0.49s}{1+0.0844s}\approx\frac{1+s/2}{1+s/12}

Phase leg Compensator (지상보상기)

Magnitude를 낮춤으로써 gain이 0이 되는 지점을 낮추어 P.MP.M을 확보하는 방식입니다.

B.W.가 감소하기 때문에 B.W.가 충분하다면 사용하는 Phase lead compensator를 사용하는것이 좋습니다.

설계

  1. KpK_pKiK_i를 사용하여 esse_{ss}를 줄여 steady state error 조건을 만족시킵니다.
  2. 원하는 댐핑계수를 얻기위한 P.M.P.M.을 계산하여 추가로 확보해야하는 Phase lead ϕm\phi_m을 정합니다. ( if    P.M.<60°,    then    ζ=P.M.100[deg]if\;\;P.M.<60\degree,\;\;then\;\;\zeta=\frac{P.M.}{100}[deg])
  3. ϕm+5\phi_m+5를 어을 수 있는 주파수 ωc\omega'_c를 선정합니다.
  4. ωc\omega'_c에서 G(s)H(s)G(s)H(s)의 게인을 읽고 ωc\omega'_c에서의 gain은 0dB이 되게 하고 PhasePhase는 유지하기 위해 다음과 같은 조작을 합니다.
  5. ωc10\omega'_c\over10의 주파수에 conpensaotr의 zero를 일치시킵니다.
    τ=10/ωc\tau=10/\omega'_c
  6. 20log10G(jωc)H(jωc)=20log10α20\log_{10}|G(j\omega_c)H(j\omega_c)=20\log_{10}\alpha

보상기의 최종 결과는 다음과 같습니다.

Gc(s)=1+τs1+ατsG_c(s)=\frac{1+\tau s}{1+\alpha\tau s}

Example


전체 closed loop system에 대하여 unit ramp 입력시 ess140,ζ0.45e_{ss}\leq\frac1{40}, \zeta \geq0.45가 되도록 설계하여라.

solve)

  1. Gc(s)G_c(s)가 없다고 가정하고 KK를 결정합니다.

    condition:  ess140  E(s)=R(s)Y(s)=11+K1G  esslims0sE(s)=lims0s11+K1s(s+2)R(s)=lims0ss2+2ss2+2s+K11s2=1K1140K140condition:\;e_{ss}\leq \frac1{40}\\\;\\ E(s)=R(s)-Y(s)=\frac{1}{1+K_1G}\\\;\\ \begin{aligned} e_{ss}\leq\displaystyle\lim_{s\rarr0}s\cdot E(s)&=\displaystyle\lim_{s\rarr0}s\cdot\frac{1}{1+\frac{K_1}{s(s+2)}}R(s)\\ &=\displaystyle\lim_{s\rarr0}s\cdot\frac{s^2+2s}{s^2+2s+K_1}\cdot\frac1{s^2}\\ &=\frac{1}{K_1}\leq\frac{1}{40}\end{aligned}\\ K_1\geq40
    안전계수를 고려하여 최소한의 K1K_1, 즉 4040으로 잡습니다.

  2. P.M.P.M.을 결정합니다.

    40jω(jω+2)\frac{40}{j\omega(j\omega+2)}P.M.P.M.은 Bode Plot을 통하여 18°18\degree라는 것을 알 수 있습니다.

    phase60°60\degree 이하일 때 근사할 수 있는 ζ=P.M.100\zeta=\frac{P.M.}{100}식을 이용하면, ϕm=0.45×100=45°\phi_m=0.45\times100=45\degree입니다.

    P.M.=100×0.45=45°P.M.=100\times0.45=45\degree

    필요한 P.M.P.M.45+5=50°45+5=50\degree을 얻을 수 있는 주파수 ωc\omega_c'는 Bode Plot을 통해 약 1.5rad/sec1.5rad/sec라는 것을 알 수 있습니다.

  3. τ\tau를 결정합니다.

    τ=10ωc=6.67\tau=\frac{10}{\omega_c'}=6.67
  4. α\alpha를 결정합니다.

    ωc=1.5\omega_c'=1.5일 때, 40jω(jω+2)\frac{40}{j\omega(j\omega+2)}Gain은 다음 식을 이용하여 구할 수 있습니다.

    α=40jωc(jωc+2)=10.67\alpha=\left\lvert\frac{40}{j\omega_c(j\omega_c+2)}\right\rvert=10.67
  5. 최종적으로 보상기 GcG_c는 다음과 같이 표현될 수 있습니다.

    Gc(s)=1+τs1+ατs=1+6.67s1+71.17sG_c(s)=\frac{1+\tau s}{1+\alpha\tau s}=\frac{1+6.67s}{1+71.17s}
profile
Hi, my name is Eugene CHOI the Automotive MCU FW developer.
post-custom-banner

0개의 댓글