31 lines
861 B
Python
31 lines
861 B
Python
#!/usr/bin/python3
|
|
import math
|
|
|
|
f_osc = 3.549e+6
|
|
v_ref = 2.43
|
|
|
|
r_i = 1e-3
|
|
|
|
x_c = 1 / (2 * math.pi * 50 * 100e-9) # excess
|
|
r1 = 5*470e+3
|
|
r2 = 1/(1/1e+3 + 1/x_c)
|
|
v_2 = r2 / (r1 + r2) * 230
|
|
|
|
f_cf_max = v_2 * (16*r_i) * 48 / (v_ref**2) * f_osc / 128
|
|
f_cfi_max = (16*r_i) * 24 / v_ref * f_osc / 512
|
|
f_cfv_max = v_2 * 2 / v_ref * f_osc / 512
|
|
|
|
joul_to_period = 128 * (v_ref**2) * (r1+r2)/r2 / r_i / (48 * f_osc)
|
|
joul_to_input_change = joul_to_period/2
|
|
wh_per_input_change = joul_to_input_change / (60 * 60)
|
|
w_per_changes_per_second = joul_to_input_change
|
|
samples_per_second = 4000
|
|
w_per_changes_per_sample = joul_to_input_change * 4000
|
|
print("power_factor: {:0.15f}".format(w_per_changes_per_sample))
|
|
print("energy_factor: {:0.15f}".format(wh_per_input_change))
|
|
|
|
f_max = max([f_cf_max, f_cfi_max, f_cfv_max])
|
|
|
|
f_sample_min = f_max * 2 * 1.2
|
|
t_sample = 1/f_sample_min
|