def komponenttilistaus(): """ Komponenttien tekstiesikatselu Wizardissa. """ ikn.kirjoita_tekstilaatikkoon(KLIITTYMÄ["komplistaus"], "", True) for i in range(len(KLIITTYMÄ["komponentit"])): ikn.kirjoita_tekstilaatikkoon(KLIITTYMÄ["komplistaus"], "Haara {}:".format(i)) for u in KLIITTYMÄ["komponentit"][i]: tulostus = sim.Si_ksi(u[1]) ikn.kirjoita_tekstilaatikkoon( KLIITTYMÄ["komplistaus"], "Komponentti: {}, Arvo: {}{}".format(u[0], tulostus[0], tulostus[1]))
def jannitelaskuri(haara, kompZ, kokZ): """ Komponenttien jännitteiden ja virran laskeminen. """ ikn.kirjoita_tekstilaatikkoon( KLIITTYMÄ["laskentatulokset"], "\nhaaran {} komponenttien jännitteet:".format(haara)) for i, Z in enumerate(kompZ): jannite = Z * (KLIITTYMÄ["jannite"] / kokZ) tulostus = sim.Si_ksi(jannite) ikn.kirjoita_tekstilaatikkoon( KLIITTYMÄ["laskentatulokset"], "Komponentti: {}, Jännite: {:.3f}{}V".format( KLIITTYMÄ["komponentit"][haara][i][0], tulostus[0], tulostus[1]))
def asetaTaajuus(): """ Lukee syötekenttää ja koettaa asettaa taajuuden. """ taajuusTulokas = ikn.lue_kentan_sisalto(KLIITTYMÄ["syote"[1]]).strip() # Muunnos SI yksikköön. Tarkistaa myös syötteen kelvollisuuden. Jos ei kelvollinen, # palauttaa "None" arvon. taajuusTulokas = sim.muunnaSi(taajuusTulokas) if taajuusTulokas: KLIITTYMÄ["taajuus"] = taajuusTulokas tulostus = sim.Si_ksi(taajuusTulokas) ikn.kirjoita_tekstilaatikkoon( KLIITTYMÄ["logi"], "Taajuus: {}{} Hz".format(tulostus[0], tulostus[1])) else: ikn.avaa_viesti_ikkuna("Virhe!", "Syöte ei ollut kelvollinen.", True) ikn.tyhjaa_kentan_sisalto(KLIITTYMÄ["syote"[1]])
def piirinVirta(imp): """ Laskee piirin virran. """ I = 0 if len(imp) == 1 and imp[0] != 0: I = KLIITTYMÄ["jannite"] / imp[0] elif imp[0] == 0: I = "ääretön" else: for Z in imp: I = I + 1 / Z I = I**-1 try: tulostus = sim.Si_ksi(I) ikn.kirjoita_tekstilaatikkoon( KLIITTYMÄ["laskentatulokset"], "\nVirtapiirin virta: {:.3f}{}A".format(tulostus[0], tulostus[1])) except: ikn.kirjoita_tekstilaatikkoon(KLIITTYMÄ["laskentatulokset"], "\nVirtaa ei voida laskea")
def laskuri(): """ Aloittaa laskemalla kokonaisimpedanssit haaroille. """ haarojenImp = [] for i in range(len(KLIITTYMÄ["komponentit"])): haaranimp = 0 # Itseisarvo kompimp = [] # Itseisarvot jännitelaskuille ikn.kirjoita_tekstilaatikkoon(KLIITTYMÄ["laskentatulokset"], "\nhaara {}:".format(i)) for komp, arvo in KLIITTYMÄ["komponentit"][i]: imp = 0 if komp != "r": imp = 2 * math.pi * KLIITTYMÄ["taajuus"] * arvo * 1j if komp == "c" and imp != 0: imp = 1 / imp else: imp = arvo Z = cmath.polar(imp) tulostus = sim.Si_ksi(Z[0]) ikn.kirjoita_tekstilaatikkoon( KLIITTYMÄ["laskentatulokset"], "Komp: {}, Arvo: {:.3f}{}Ω < {:.3f}°".format( komp, tulostus[0], tulostus[1], math.degrees(Z[1]))) # Itseisarvojen laskutoimitukset jännite- ja virtalaskuihin imp = abs(imp) kompimp.append(imp) haaranimp = imp + haaranimp haarojenImp.append(haaranimp) jannitelaskuri(i, kompimp, haaranimp) piirinVirta(haarojenImp)