from pylab import * def mot(w): R = 1.5 L = 5/1000 print('tau_e = ',L/R) print('1/tau_e = ',R/L) return 1/(R+1j*w*L) def conv(w): Tc = 100e-6 tau_c = 3/2*Tc print('tau_c = ',tau_c) print('1/tau_c = ',1/tau_c) return 1/(1+1j*w*tau_c) def PI(w): kp = 12.78 tau = 5/1000/1.5 return (kp*(1+1j*w*tau)/(1j*w*tau)) def GH(w): return PI(w)*conv(w)*mot(w) def W(w): return GH(w)/(1+GH(w)) def Wapp(w): return (1/(1+1j*w/2426))*conv(w) w = logspace(-2,5) plot(w,20*log10( abs(mot(w)) )) plot(w,20*log10( abs(conv(w)) )) plot(w,20*log10( abs(PI(w)) )) plot(w,20*log10( abs(W(w) ))) plot(w,20*log10( abs(Wapp(w) ))) xscale('log') from scipy import optimize def fun(x): return 20*3.14/180-arctan(x*412e-6)-arctan(x*150e-6) sol = optimize.root_scalar(fun,x0=620, method='bisect',bracket=[0, 1e5]) print(sol) fun(883)