95 lines
2.5 KiB
Python
95 lines
2.5 KiB
Python
import sympy
|
|
from sympy import *
|
|
from sympy import symbols
|
|
from sympy.physics.units import e0
|
|
|
|
er, A, dx1, dx2, dL, er1, er2, cs1, cs2 = symbols('er A dx1 dx2 dL er1 er2 cs1 cs2')
|
|
|
|
# Gleichungen 2.26 aufloesen nach er und gleichsetzen
|
|
eqn = Eq(solve(er * (1 + dL / dx1) / (1 + er * dL / dx1) - er1, er)[0],
|
|
solve(er * (1 + dL / dx2) / (1 + er * dL / dx2) - er2, er)[0])
|
|
|
|
# print("Gleichungen 2.26 nach er aufloesen und gleichsetzen :")
|
|
# print(eqn)
|
|
# print()
|
|
|
|
# Term aufloesen nach dL
|
|
solution = solve(eqn, dL)[0]
|
|
# Term vereinfachen
|
|
# solution = simplify(solution)
|
|
# Term mit dL gleichsetzen um eine Gleichung zu erhalten
|
|
eqn_2_27 = Eq(dL, simplify(solution))
|
|
|
|
# print("Gleichung 2.27")
|
|
print("Gleichung 2.27", eqn_2_27)
|
|
# print(solution)
|
|
|
|
# Gleichung 2.26
|
|
eqn = Eq(er * (1 + dL / dx1) / (1 + er * dL / dx1), er1)
|
|
# Loesung fuer dL in Gleichung einsetzen und vereinfachen
|
|
eqn = simplify(eqn.subs(dL, solution))
|
|
# print("Gleichung 2.27 in 2.26 einsetzen")
|
|
# print(eqn)
|
|
|
|
# Gleichung nach er aufloesen und Term vereinfachen
|
|
expr = simplify(solve(eqn, er)[0])
|
|
|
|
# print("Gleichung nach er aufloesen und vereinfachen")
|
|
# print(expr)
|
|
|
|
# Gleichung 2.28
|
|
eqn_2_28 = Eq(er, expr)
|
|
|
|
# print("Gleichung 2.28")
|
|
print("Gleichung 2.28", eqn_2_28)
|
|
|
|
|
|
def get_param(dx1_value, dx2_value, cs1_value, cs2_value):
|
|
# Geometrische Parameter und Werte
|
|
d = 100e-3 # Durchmesser
|
|
|
|
# Fläche
|
|
A_value = sympy.pi * (d / 2) ** 2
|
|
|
|
# Vakuumpermittivität
|
|
e0_value = 8.854187817e-12
|
|
|
|
# Berechnung von er1 und er2
|
|
er1_expr = cs1 * dx1 / (A * e0_value)
|
|
er2_expr = cs2 * dx2 / (A * e0_value)
|
|
|
|
print("er1", er1_expr.subs({
|
|
cs1: cs1_value, dx1: dx1_value, A: A_value, e0: e0_value
|
|
}).evalf())
|
|
|
|
print("er2", er2_expr.subs({
|
|
cs2: cs2_value, dx2: dx2_value, A: A_value, e0: e0_value
|
|
}).evalf())
|
|
|
|
# Beispielparameter im Dictionary
|
|
param = {
|
|
A: A_value,
|
|
cs1: cs1_value,
|
|
cs2: cs2_value,
|
|
dx1: dx1_value,
|
|
dx2: dx2_value,
|
|
er1: er1_expr.subs({
|
|
cs1: cs1_value, dx1: dx1_value, A: A_value, e0: e0_value
|
|
}),
|
|
er2: er2_expr.subs({
|
|
cs2: cs2_value, dx2: dx2_value, A: A_value, e0: e0_value
|
|
})
|
|
}
|
|
|
|
return param
|
|
|
|
|
|
param = get_param(dx1_value=5e-3, dx2_value=10e-3, cs1_value=49.87e-12, cs2_value=26.84e-12)
|
|
print(eqn_2_27.subs(param).evalf())
|
|
print(eqn_2_28.subs(param).evalf())
|
|
print()
|
|
|
|
param = get_param(dx1_value=1e-3, dx2_value=3.5e-3, cs1_value=121.28e-12, cs2_value=43.47e-12)
|
|
print(eqn_2_27.subs(param).evalf())
|
|
print(eqn_2_28.subs(param).evalf())
|