Python過渡モデリング





なぜ一時的な考慮事項なのか



一般的なケースでは、回路内に磁場または電界からのエネルギーを蓄積または伝達できる誘導性および容量性要素がある場合、電気回路で過渡現象が発生する可能性があります。 切り替え時に、移行プロセスが開始されると、回路の誘導性、容量性要素と外部エネルギー源(それらが回路に接続されている場合)の間でエネルギーが再分配されます。 この場合、大きな過電圧、過電流、電磁振動が発生する可能性があり、故障まで自動化システムやその他のデバイスの動作を混乱させる可能性があります。



一方、過渡現象は、たとえば、さまざまな種類の電子発電機、電子機器、自動化回路などで実用的な用途があります。



ネットワーク[1、2、3]には、この主題に関する多くの出版物がありますが、それらのほとんどには、対応する方程式の解析的解法に基づく過渡現象の説明が含まれています。 数値法はあまり頻繁に使用されず、これらの出版物のほとんどは微分方程式の数値解法の説明に当てられています。



SciPyライブラリで十分に開発された数値的手法を考慮して、このライブラリのツールを使用して、電気回路のスイッチング中の過渡現象の数学的モデリングの例を示します。



電気回路を切り替えるときに過渡グラフを作成する方法



一般化された回路図。









電流源-E、インダクタ-L、2つの抵抗-R1、R2、コンデンサ-C、およびスイッチを含む回路を考えます。



切り替え後の状態の電気回路のパラメーターを指定します。



オープン状態では、図に示されている回路は条件に対応しています。







開いたときに回路内の過渡のグラフを作成するためのプログラムのリスト。
#!/usr/bin/python # -*- coding: utf-8 -*- import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt R1=10;R2=20;L=0.02;C=0.00005;E=100;tm=0.02; #   def f(y, t):#    . y1,y2 = y return [y2,-(R1/L)*y2-(1/(L*C))*y1+E/(L*C)] t = np.linspace(0,tm,1000) y0 = [E*R2/(R1+R2),0]#  z = odeint(f, y0, t)#   y1=z[:,0] #    y2=100*C*z[:,1] #    plt.title('       ', size=12) plt.plot(t*1000,y1,linewidth=2, label=' U(t)') plt.plot(t*1000,y2,linewidth=2, label=' i3(t)=100*C*dUc(t)/dt') plt.ylabel("Uc(t), i3(t)") plt.xlabel("t*1000") plt.legend(loc='best') plt.grid(True) plt.show()
      
      





プログラムの結果







開回路では、i2 = 0、i3 = i1であるため、グラフには電流と電圧のみが表示されます。 過渡プロセスの性質は減衰振動です。



閉じた状態では、図に示されている回路は条件に対応しています。







閉回路を持つ回路で過渡現象のグラフを構築するためのプログラムのリスト。
 #!/usr/bin/python # -*- coding: utf-8 -*- import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt R1=10;R2=20;L=0.02;C=0.00005;E=100;tm=0.02; #    def f(y, t):#    . y1,y2 = y return [y2,-((L+R1*R2*C)/(R2*L*C))*y2-((R1+R2)/(R2*L*C))*y1+E/(L*C)] t = np.linspace(0,tm,1000) y0 = [E,0]#  z = odeint(f, y0, t)#   y1=z[:,0] #    y2=100*(C*z[:,1]+y1/R2) y3=100*C*z[:,1] y4=100*y1/R2 plt.title('       ', size=12) plt.plot(t*1000,y1,linewidth=2, label=' Uc(t)') plt.plot(t*1000,y2,linewidth=2, label=' i1(t)*100') plt.plot(t*1000,y3,linewidth=2, label='i3(t)*100') plt.plot(t*1000,y4,linewidth=2, label=' i2*100') plt.ylabel("Uc(t),i1(t),i2(t),i3(t)") plt.xlabel("t*1000") plt.legend(loc='best') plt.grid(True) plt.show()
      
      





プログラムの結果







電流の閉回路では、i1 = i2 + i3の関係が成り立ちます。 非周期的な過渡現象。 定常状態では、i3 = 0、i1 = i2です。これはグラフからわかります。



おわりに



Pythonによる微分方程式の数値解法により、電気回路の過渡現象の分析が簡素化され、視覚的になり、方程式を解く方法を分析せずに結果に集中できます。



参照資料



  1. torus.pp.ua/manuals/lessons/matusko/perechodn.html
  2. electricschool.info/spravochnik/electroteh/747-perekhodnye-processy-v-jelektricheskojj.html
  3. en.wikipedia.org/wiki/Electrical_Circuit_Transitions



All Articles