I’m trying to make such a graph, I don’t understand what the problem is, I seem to be doing everything right, but there is a gap in functions. Please tell me, what’s the problem?
I tried to change the parameters, somehow eliminate the gap, but my function does not look at all like what is shown in the picture. I don’t understand electronics myself, but I need to write a program.
import numpy as np
import matplotlib.pyplot as plt
import tkinter as tk
def u_(e0, r0, t1, t2, u1, u2):
num = (u2 / u1 - 1)
den = np.exp((t1 - t2) / (t1 * u1 / (e0 * r0 * (1 - u1)) - t2)) - 1
rx_cx = (t1 - t2) / np.log(num / den)
rx = e0 * r0 * u2 / (t1 * (1 - np.exp((t1 - t2) / rx_cx)))
cx = rx_cx / rx
return rx, cx
win = tk.Tk()
win.title("График преобразования параметров двухполюсных электрических цепей")
win.geometry("1000x500")
e0 = 1 # Начальное напряжение
r0 = 1.0 # Начальное сопротивление
t1 = 1.5 # Время 1
t2 = 0.5 # Время 2
# rx = -0.1
# cx = -13
u1 = 0.6
u2 = 0.8
# u1 = e0*rx/r0*(1-np.exp(-1)) # Напряжение u1
# u2 = e0*rx/r0*(np.exp(-1)) # Напряжение u2
#cx - емкость конденсатора
# rx - сопротивление источника
# Решение системы уравнений относительно rx и cx
rx, cx = u_(e0, r0, t1, t2, u1, u2)
# u1 = e0*rx/r0*(1-np.exp(-1)) # Напряжение u1
# u2 = e0*rx/r0*(np.exp(-1)) # Напряжение u2
print(f"u1 = {u1:.4f}")
print(f"u2 = {u2:.4f}")
t1_ = np.linspace(t2, t1, 1000)
rx, cx = u_(e0, r0, t1, t2, u1, u2)
# print(f"rx = {rx:.4f}")
# print(f"cx = {cx:.4f}")
u_1 = e0 * rx / r0 * (1-np.exp(-t1_ / (rx * cx)))
# rx = -0.1
# u1 = e0*rx/r0*(1-np.exp(-1)) # Напряжение u1
# u2 = e0*rx/r0*(np.exp(-1)) # Напряжение u2
# print(f"rx = {rx:.4f}")
# print(f"cx = {cx:.4f}")
t1, t2 = 3, 1.5
rx, cx = u_(e0, r0, t1, t2, u1, u2)
t2_ = np.linspace(3, 1.5, 1000)
u_2 = e0 * rx / r0 * (np.exp(-t2_ / (rx * cx)))
plt.figure(figsize=(10, 6), dpi=80)
plt.plot(t1_, u_1)
plt.plot(t2_, u_2)
plt.xlabel('Время (с)')
plt.ylabel('Напряжение (В)')
plt.title('График преобразования параметров двухполюсных электрических цепей')
plt.grid(True)
plt.show()
# win.mainloop()