Bode Plot : 위상 변화 계산

Oct 25 2020

이 전달 함수를 플로팅해야합니다.

위상 대 주파수 그래프를 그릴 때 10에서 10 ^ 1.5 사이의 위상 변화를 계산하는 데 문제가 있습니다. 내 이해에 따르면, 주파수 = 10에서 위상은 -90 °이고, 위상 변화가 있고 기울기는 45 ° / dec의 속도로 증가해야하지만 10 ^ 1.5에서 주파수 변화가 있습니다. 곡선이 10 ^ 1.5에 도달 할 때까지 각도를 계산하기 위해 주파수 = 10에서 10 ^ 1.5까지 곡선이 10.80 ° 위로 이동하도록 간단한 삼각법을 적용했습니다. 그러나 그 대답은 정확하지 않으며 실제 Bode 플롯은 주파수 = 10에서 10 ^ 1.5로 곡선이 22.5 ° 위로 이동했음을 보여줍니다. 누군가가 주파수 = 10에서 10 ^ 1.5로 위상 변화를 올바르게 계산하는 방법을 설명해 주시겠습니까?

답변

2 Jan Oct 25 2020 at 17:37

음, 다음과 같은 전달 함수가 있습니다.

$$\mathcal{H}\left(\text{s}\right):=\frac{\text{X}\left(\text{s}\right)}{\text{Y}\left(\text{s}\right)}=\frac{\left(1+10^{-\alpha}\cdot\text{s}\right)\left(1+10^{-\beta}\cdot\text{s}\right)}{\left(1+10^{-\gamma}\cdot\text{s}\right)\left(1+10^{-\epsilon}\cdot\text{s}\right)}\tag1$$

어디 \$\alpha\in\mathbb{R}_{\ge0}\$, \$\beta\in\mathbb{R}_{\ge0}\$, \$\gamma\in\mathbb{R}_{\ge0}\$, 및 \$\epsilon\in\mathbb{R}_{\ge0}\$.

전달 함수의 RHS를 확장 할 수 있습니다.

$$\mathcal{H}\left(\text{s}\right)=\frac{1+10^{-\beta}\cdot\text{s}+10^{-\alpha}\cdot\text{s}+10^{-\alpha}\cdot\text{s}\cdot10^{-\beta}\cdot\text{s}}{1+10^{-\epsilon}\cdot\text{s}+10^{-\gamma}\cdot\text{s}+10^{-\gamma}\cdot\text{s}\cdot10^{-\epsilon}\cdot\text{s}}=$$ $$\frac{1+\left(10^{-\alpha}+10^{-\beta}\right)\cdot\text{s}+10^{-\left(\alpha+\beta\right)}\cdot\text{s}^2}{1+\left(10^{-\gamma}+10^{-\epsilon}\right)\cdot\text{s}+10^{-\left(\gamma+\epsilon\right)}\cdot\text{s}^2}=$$ $$\frac{10^{-\left(\alpha+\beta\right)}\cdot\text{s}^2+\left(10^{-\alpha}+10^{-\beta}\right)\cdot\text{s}+1}{10^{-\left(\gamma+\epsilon\right)}\cdot\text{s}^2+\left(10^{-\gamma}+10^{-\epsilon}\right)\cdot\text{s}+1}\tag2$$

이제 정현파 함수로 작업 할 때 \$\text{s}=\text{j}\omega\$:

$$\underline{\mathcal{H}}\left(\text{j}\omega\right)=\frac{10^{-\left(\alpha+\beta\right)}\cdot\left(\text{j}\omega\right)^2+\left(10^{-\alpha}+10^{-\beta}\right)\cdot\text{j}\omega+1}{10^{-\left(\gamma+\epsilon\right)}\cdot\left(\text{j}\omega\right)^2+\left(10^{-\gamma}+10^{-\epsilon}\right)\cdot\text{j}\omega+1}=$$ $$\frac{1-10^{-\left(\alpha+\beta\right)}\omega^2+\left(10^{-\alpha}+10^{-\beta}\right)\omega\text{j}}{1-10^{-\left(\gamma+\epsilon\right)}\omega^2+\left(10^{-\gamma}+10^{-\epsilon}\right)\omega\text{j}}\tag3$$

이제 우리는 양쪽에서 논쟁을 할 수 있습니다.

$$\displaystyle\arg\left(\underline{\mathcal{H}}\left(\text{j}\omega\right)\right)=\arg\left(1-10^{-\left(\alpha+\beta\right)}\omega^2+\left(10^{-\alpha}+10^{-\beta}\right)\omega\text{j}\right)-\arg\left(1-10^{-\left(\gamma+\epsilon\right)}\omega^2+\left(10^{-\gamma}+10^{-\epsilon}\right)\omega\text{j}\right)\tag4$$

따라서 몇 가지 다른 경우가 있습니다.

  1. 때 \$1-10^{-\left(\alpha+\beta\right)}\omega^2=0\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\alpha+\beta\right)}\omega^2+\left(10^{-\alpha}+10^{-\beta}\right)\omega\text{j}\right)=\frac{\pi}{2}\tag5$$
  2. 때 \$1-10^{-\left(\alpha+\beta\right)}\omega^2>0\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\alpha+\beta\right)}\omega^2+\left(10^{-\alpha}+10^{-\beta}\right)\omega\text{j}\right)=$$ $$\arctan\left(\frac{\left(10^{-\alpha}+10^{-\beta}\right)\omega}{1-10^{-\left(\alpha+\beta\right)}\omega^2}\right)\tag6$$
  3. 때 \$1-10^{-\left(\alpha+\beta\right)}\omega^2<0\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\alpha+\beta\right)}\omega^2+\left(10^{-\alpha}+10^{-\beta}\right)\omega\text{j}\right)=$$ $$\frac{\pi}{2}+\arctan\left(\frac{\left|1-10^{-\left(\alpha+\beta\right)}\omega^2\right|}{\left(10^{-\alpha}+10^{-\beta}\right)\omega}\right)\tag7$$
  4. 때 \$1-10^{-\left(\gamma+\epsilon\right)}\omega^2=0\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\gamma+\epsilon\right)}\omega^2+\left(10^{-\gamma}+10^{-\epsilon}\right)\omega\text{j}\right)=\frac{\pi}{2}\tag8$$
  5. 때 \$1-10^{-\left(\gamma+\epsilon\right)}\omega^2>0\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\gamma+\epsilon\right)}\omega^2+\left(10^{-\gamma}+10^{-\epsilon}\right)\omega\text{j}\right)=\arctan\left(\frac{\left(10^{-\gamma}+10^{-\epsilon}\right)\omega}{1-10^{-\left(\gamma+\epsilon\right)}\omega^2}\right)\tag9$$
  6. 때 \$1-10^{-\left(\gamma+\epsilon\right)}\omega^2<0\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\gamma+\epsilon\right)}\omega^2+\left(10^{-\gamma}+10^{-\epsilon}\right)\omega\text{j}\right)=$$ $$\frac{\pi}{2}+\arctan\left(\frac{\left|1-10^{-\left(\gamma+\epsilon\right)}\omega^2\right|}{\left(10^{-\gamma}+10^{-\epsilon}\right)\omega}\right)\tag{10}$$

이제 이것을 문제에 적용 할 수 있습니다. 우리는 \$\alpha=2\$, \$\beta=\frac{5}{2}\$, \$\gamma=0\$, 및 \$\epsilon=\frac{9}{2}\$. 따라서 다른 경우를 해결할 수 있습니다.

  1. 때 \$\omega=100\sqrt[4]{10}\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\alpha+\beta\right)}\omega^2+\left(10^{-\alpha}+10^{-\beta}\right)\omega\text{j}\right)=\frac{\pi}{2}\tag{11}$$
  2. 때 \$0\le\omega<100\sqrt[4]{10}\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\alpha+\beta\right)}\omega^2+\left(10^{-\alpha}+10^{-\beta}\right)\omega\text{j}\right)=$$ $$\arctan\left(\frac{100\left(10+\sqrt{10}\right)\omega}{100000-\omega^2\sqrt{10}}\right)\tag{12}$$
  3. 때 \$\omega>100\sqrt[4]{10}\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\alpha+\beta\right)}\omega^2+\left(10^{-\alpha}+10^{-\beta}\right)\omega\text{j}\right)=$$ $$\frac{\pi}{2}+\arctan\left(\frac{\left|\omega^2\sqrt{10}-100000\right|}{100\left(10+\sqrt{10}\right)\omega}\right)\tag{13}$$
  4. 때 \$\omega=100\sqrt[4]{10}\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\gamma+\epsilon\right)}\omega^2+\left(10^{-\gamma}+10^{-\epsilon}\right)\omega\text{j}\right)=\frac{\pi}{2}\tag{14}$$
  5. 때 \$0\le\omega<100\sqrt[4]{10}\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\gamma+\epsilon\right)}\omega^2+\left(10^{-\gamma}+10^{-\epsilon}\right)\omega\text{j}\right)=$$ $$\arctan\left(\frac{\left(100000+\sqrt{10}\right)\omega}{100000-\omega^2\sqrt{10}}\right)\tag{15}$$
  6. 때 \$\omega>100\sqrt[4]{10}\$, 우리는 다음을 얻습니다. $$\arg\left(1-10^{-\left(\gamma+\epsilon\right)}\omega^2+\left(10^{-\gamma}+10^{-\epsilon}\right)\omega\text{j}\right)=$$ $$\frac{\pi}{2}+\arctan\left(\frac{\left|\omega^2\sqrt{10}-100000\right|}{\left(100000+\sqrt{10}\right)\omega}\right)\tag{16}$$

Mathematica를 사용하는 경우 사용할 수있는 코드를 작성했습니다.

Plot[Piecewise[{{Pi/2, \[Omega] == 
      100*10^(1/
          4)}, {ArcTan[(100*(10 + 
           Sqrt[10])*\[Omega])/(100000 - \[Omega]^2*Sqrt[10])], 
     0 <= \[Omega] < 100*10^(1/4)}, {(Pi/2) + 
      ArcTan[Abs[\[Omega]^2*Sqrt[10] - 
          100000]/(100*(10 + Sqrt[10])*\[Omega])], \[Omega] > 
      100*10^(1/4)}}] - 
  Piecewise[{{Pi/2, \[Omega] == 
      100*10^(1/
          4)}, {ArcTan[((100000 + 
           Sqrt[10])*\[Omega])/(100000 - \[Omega]^2*Sqrt[10])], 
     0 <= \[Omega] < 100*10^(1/4)}, {(Pi/2) + 
      ArcTan[Abs[\[Omega]^2*Sqrt[10] - 
          100000]/((100000 + Sqrt[10])*\[Omega])], \[Omega] > 
      100*10^(1/4)}}], {\[Omega], 10, 10^(3/2)}, 
 AxesLabel -> {HoldForm[\[Omega][rad/s]], HoldForm[Arg[H[s]]]}, 
 PlotLabel -> HoldForm[Argument], LabelStyle -> {GrayLevel[0]}]

출력은 다음을 제공합니다.

더 큰 범위를 플로팅하면 다음이 제공됩니다.