All pastes #905351 Raw Edit

toe_kurs_11.oct

public text v1 · immutable
·published 2008-02-15 18:20 UTC
rendered paste body
#!/usr/bin/octave -q
# $Id: app.sh 314274 2004-05-24 21:04:46Z geiseri $
# toe_kurs_11 - Copyright (C) 2006 hatred <hatred@gaz.hm>

source("~/math/biblio.oct");

p("Исходные данные");
newline
Em_mod = 7
fi_e   = 120
f      = 150
R1     = 1
R2     = 2
R3     = 3
L1     = 53*10^-5
L2     = 106*10^-5
L3     = 159*10^-5
C1     = 531*10^-6
C3     = 177*10^-6

section("Перевод напряжения в комплексную форму, расчет циклической частоты, расчет индуктивных и емкостных сопротивлений, перевод их в комплексную форму");

newline
w = 2*pi*f
Em = Em_mod * exp(j*fi_e*tr)
E  = Em_mod/sqrt(2) * exp(j*fi_e*tr)

newline
XL1 = w*L1
ZL1 = j*XL1

newline
XL2 = w*L2
ZL2 = j*XL2

newline
XL3 = w*L3
ZL3 = j*XL3

newline
XC1 = 1/(w*C1)
ZC1 = -j*XC1

newline
XC3 = 1/(w*C3)
ZC3 = -j*XC3



section("Расчет простейшей цепи");
subsection("Расчет сопротивлений ветвей и эквивалентного сопротивления всей цепи");
newline

Z11 = (R1 * ZL1)/(R1 + ZL1);printc("Z11", Z11);
Z12 = ZL1 + ZC1;            printc("Z12", Z12);
Z1 = Z11 + Z12;             printc("Z1", Z1);
newline

Z21 = R2;printc("Z21", Z21);
Z22 = ZL2;printc("Z22", Z22);
Z2 = Z21 + Z22;printc("Z2", Z2);
newline

Z31 = (R3 * ZC3)/(R3 + ZC3);printc("Z31", Z31);
Z32 = R3 + ZL3;printc("Z32", Z32);
Z3 = Z31 + Z32;printc("Z3", Z3);
newline

Z23 = (Z2 * Z3)/(Z2 + Z3);printc("Z23", Z23);
Z = Z1 + Z23;printc("Z", Z);

subsection("Расчет действующих токов в ветвях");
newline

I1  = E/Z;printc("I1", I1);
U23 = I1 * Z23;printc("U23", U23);
newline

I2 = U23 / Z2;printc("I2", I2);
I3 = U23 / Z3;printc("I3", I3);

p("\nМгновенные токи");
newline
printi("i1", I1, 1);
printi("i2", I2, 1);
printi("i3", I3, 1);

#t=linspace(0, 4*pi/w, 1000);
#i1 = sqrt(2) * abs(I1) * sin(w*t + arg(I1));
#i2 = sqrt(2) * abs(I2) * sin(w*t + arg(I2));
#i3 = sqrt(2) * abs(I3) * sin(w*t + arg(I3));
#mydraw_n([i1; i2; i3], t, ["i1";"i2";"i3"]);
#exit(0);

section("Проверка баланса мощности");

p("Сопряженный вектор тока");
newline
I1s = conj(I1); printc("I1s", I1s);

p("Мощность источника");
newline

Su = E * I1s;printc("Su", Su);
Pu = real(Su)
Qu = imag(Su)

p("Находим все токи в ветвях");
newline
Uad = I1*Z11;printc("Uad", Uad);
I11 = Uad / R1;printc("I11", I11);
I12 = Uad / ZL1;printc("I12", I12);

newline
Ubn = I3*Z31;printc("Ubn", Ubn);
I31 = Ubn / R3;printc("I31", I31);
I32 = Ubn / ZC3;printc("I32", I32);

newline
p("Находим потребляемую мощность");
newline
Pn = R1  * abs(I11)^2 + R2 * abs(I2)^2 + R3 * abs(I31)^2 + R3 * abs(I3)^2
Qn = XL1 * abs(I12)^2 + (XL1 - XC1)*abs(I1)^2 + XL2 * abs(I2)^2 - XC3 * abs(I32)^2 + XL3 * abs(I3)^2

sigma1 = abs(Pu - Pn)/abs(Pu)*100
sigma2 = abs(Qu - Qn)/abs(Qu)*100

section("Расчет всех токов и напряжений для построения вектрной диаграммы");

Unc = I3 * (R3 + ZL3), printc("Unc", Unc);
Ubn = I31 * R3, printc("Ubn", Ubn);
Ubc1 = Ubn + Unc, printc("Ubc1", Ubc1);

Ufc = I2 * ZL2, printc("Ufc", Ufc);
Ubf = I2 * R2, printc("Ubf", Ubf);
Ubc2 = Ufc + Ubf, printc("Ubc2", Ubc2);

Udb = I1 * (ZL1 + ZC1), printc("Udb", Udb);
Uad = I11 * R1, printc("Uad", Uad);
Uab = Udb + Uad, printc("Uab", Uab);

Uac1 = Uab + Ubc1, printc("Uac1", Uac1);
Uac2 = Uab + Ubc2, printc("Uac2", Uac2);
Uac3 = E, printc("Uac3", Uac3);

#draw_data = struct("offset", [ 0,   0,   0,  0,  0,   0,   0,   0, Unc, Unc+Ubn, Unc+Ubn+Udb, 0,   0, Ufc],
#                   "arg",    [I1, I11, I12, I2, I3, I31, I32, Unc, Ubn,     Udb,         Uad, E, Ufc, Ubf],
#                   "label",  ["I1"; "I11"; "I12"; "I2"; "I3"; "I31"; "I32"; "Unc"; "Ubn"; "Udb"; "Uad"; "E"; "Ufc"; "Ubf"]);
#draw_vector(draw_data, "Vector");