Example #1
0
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]))
Example #2
0
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]))
Example #3
0
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]])
Example #4
0
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")
Example #5
0
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)