summaryrefslogtreecommitdiff
path: root/graph.py
diff options
context:
space:
mode:
authorHolden Rohrer <hr@hrhr.dev>2020-04-17 20:58:41 -0400
committerHolden Rohrer <hr@hrhr.dev>2020-04-17 20:58:41 -0400
commit1189da26ec62633529c509f0be9ea5d660561cff (patch)
treef225ddda2de7418b304ecec7cfbe066fd8c47582 /graph.py
parentf1de1283dcc7a7a1c5ca80136cc77e5221e23160 (diff)
gets proper nums in graph.py
Diffstat (limited to 'graph.py')
-rw-r--r--graph.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/graph.py b/graph.py
index 0b4cc38..ada7092 100644
--- a/graph.py
+++ b/graph.py
@@ -10,7 +10,6 @@ a = 1
b = c1*r1*rload + r1*c2*rload + (rload**2)*c2
c = rload
-print(b**2-4*a*c)
det = (b**2-4*a*c)**(1/2)
r1 = (-b-det)/(2*a)
r2 = (-b+det)/(2*a)
@@ -20,7 +19,16 @@ B = b*c1*c2*rload**2*w**3/(b**2*w**2 + rload**2 - 2*rload*w**2 + w**4)
C = - c1*c2*rload**2*w*(rload-w**2)/(b**2*w**2 + rload**2 - 2*rload*w**2 + w**4)
D = - b*c1*c2*rload**3*w/(b**2*w**2 + rload**2 - 2*rload*w**2 + w**4) # from https://www.wolframalpha.com/input/?i=solve+for+x1%2Cx2%2Cx3%2Cx4+in+%7B%7B1%2C0%2C1%2C0%7D%2C+%7Bb%2C1%2C0%2C1%7D%2C+%7BR%2C+b%2C+w%5E2%2C+0%7D%2C+%7B0%2C+R%2C+0%2C+w%5E2%7D%7D*%7Bx1%2Cx2%2Cx3%2Cx4%7D+%3D+%7B0%2C0%2Cw*c_1*c_2*R%5E2%2C0%7D and an insane partial fraction decomposition
E = (D-C*r1)/(r2-r1)
-F = C - E
+F = C - E # Another PFD of Cs-D/(as^2+bs+c)
G = B/w
-print(G,B,E,F)
+# Final solution should be
+# Gsin(theta) + Bcos(theta) + Ee^(r1 t) + Fe^(r2 t)
+# But E, F, r1, and r2 are complex. Luckily, conjugates make it that
+# = 2e^(Re(r1) t) ( Re(E)cos(Im(r1)t) - Im(E)sin(Im(r1)t) )
+rer1 = r2.real
+reE = F.real
+imr1 = r2.imag
+imE = F.imag # switched because positive ones were needed
+
+print("%.2E * sin(theta) + %.2E * cos(theta) + 2e^(%.2f t) (%.2E cos(%.2f t) - %.2E sin(%.2f t))" % (G, B, rer1, reE, imr1, imE, imr1))