Новые дома на Дмитровском шоссе: etalonsad.ru/prodazha-kvartir-dmitrovskoe-shosse. ЖК Летний Сад. /* Программка расчета трансформаторов для однотактных выходных каскадов на лампах * Использована методика Е.Васильченко (class-a.da.ru), опубликованная в журнале РХ 2000 N3-5 */ #include <stdio.h> #include <math.h> #define STEPS 10 const float pi = 3.14; /* константа пи */ /* входные данные */ /* параметры выходного каскада */ float Ri= 1000; /* Внутреннее сопротивление лампы, Ом */ float Ra = 3500; /* сопртивление нагрузки в аноде, Ом */ float I0 = 0.072; /* ток покоя каскада, А */ float Rn = 4; /* сопртивление нагрузки, Ом */ float F_low = 35; /* частота среза снизу, Гц */ float A= 0.3; /* коэффициент распределения между обмотками */ #define LEVEL -3 /* уровень среза по частоте: -1 или -3 */ /* размеры сердечника трансформатора, см */ float a = 2.5; /* ширина средней части пластин Ш*/ float c = 2.5; /* ширина окна */ float h = 6.25; /* высота окна */ float b = 5.5; /* толщина набора */ float lc = 21.3; /* средняя длина магнитной силовой линии, см */ float lo; /* расчетная средняя длина витка */ /* если сталь горячекатная надо определить HOT_STEEL */ /* #define HOT_STEEL */ float Ks = 0.9; /* Коэффициент заполнения сердечника железом */ float Kok = 0.3; /* Коэффициент заполнения окна медью */ float nu = 0.85; /* КПД трансформатора */ /* выходные данные */ /* условия применимости данного железа есть выполнение соотношения tau_el <= tau_konstr */ float tau_el; /* электрическая постоянная времени транса */ float tau_konstr; int N1; /* число витков первичной обмотки */ int N2; /* число витков вторичной обмотки */ float d1, d2; /* диаметры проводов соответственно первичной и вторичной обмоток, мм */ float delta; /* зазор в сердечнике */ void print_data(); void main () { int i; float Sc = a * b * Ks; /* площадь сечения керна сердечника, см2 */ float So = c * h; /* площадь сечения окна сердечника, см2 */ float n2; /* квадрат коэффициента трансформации */ float aw0; /* степень подмагничивания */ float r1; /* активное сопротивление первичной обмотки, Ом */ float r2; /* активное сопротивление вторичной обмотки */ float rx; /* эквивалентное сопротивление выходного каскада на трансе */ float R_equiv = (Ra + r1) *(Ra - r1) / (Ra + Ri); float L1; /* требуемая индуктивность перв. обмотки */ /* mu - магнитная проницаемость сердечника с подмагничиваем, > выполненного с зазором, для начального расчета принимаем за 200 - в дальшейшем будет корректироваться */ int mu = 250; lo = 2 * (a + b) + 2.9 * c; /* расчетная средняя длина витка */ print_data(); L1 = R_equiv / (2* pi * F_low); #if LEVEL == -1 L1 *= 2; #endif printf ("\n\nНачало часчета\n"); printf ("\nРасчетная индуктивность первичной обмотки %.2f Гн \n", L1); for(i = 0; i < STEPS; i++) { float mu_new; N1 = sqrt(7.97e7* L1 *lc / (mu *Sc)); aw0 = N1 * I0 / lc; printf("STEP %d: N1 = %d, aw0 = %.1f, mu = %d \n", i+1, N1, aw0, mu); #ifdef HOT_STEEL /* горячекатная сталь */ mu_new = 2000.0/(aw0+5) + 70 + 0.5; #else mu_new = 1600.0/(aw0+3) + 120 + 0.5; #endif if ((int)mu_new == mu) { printf("Алгоритм сошелся\n\n"); break; } mu = mu_new; } /* коэффициент трансформации */ n2 = Rn / (Ra * nu); /* вычисляем активные сопротивления первичной и вторичной обмоток */ rx = (1.0 - nu)* Ra; r1 = A * rx; r2 = (1.0 - A) * rx * n2; printf("r1 = %.2f Ом, r2 = %.2f Ом \n", r1, r2); N2 = sqrt(n2) * N1; printf("N2 = %d\n", N2); /* расчетная проверка применимости данного железа*/ tau_el = L1 / r1; printf("tau_el = %.3f\n", tau_el); tau_konstr = 0.00718 * mu * Sc * So * Kok / (lo * lc ); printf("tau_konstr = %.3f\n", tau_konstr); if(tau_konstr >= tau_el) { printf("железо подходит\n"); } else { printf("железо маловато\n"); return; } /* расчитываем диаметры проводов */ d1 = sqrt(2.23e-4 * lo * N1 / r1); d2 = sqrt(2.23e-4 * lo * N2 / r2); printf("Диаметры проводов: d1 = %.2f мм, d2 = %.2f мм \n", d1, d2); delta = 9.0e-4 * N1 * I0; printf("Зазор при сборке сердечника %.2f mm\n", delta); /* расчитываем заполнение окна */ Kok = (d1*d1 / 4 * pi * N1 + d2*d2 / 4 * pi * N2) * 1e-2 / So; printf("Коэффициент запонения окна медью %.2f (если больше 0.3, следует изменить входные данные)\n", Kok); } /* Вывод входных данных */ void print_data() { printf("Исходные данные:\n"); printf("\nПараметры выходного каскада\n"); printf("Внутреннее сопротивление источника сигнала (лампы) %d Ом\n", (int)Ri); printf("Сопротивление нагрузки в аноде %d Ом\n", (int)Ra); printf("Ток покоя каскада %.3f А \n", I0); printf("Сопртивление нагрузки трансформатора %.1f Ом\n", Rn); printf("Коэффициент распределения активного сопртивления между первичной и вторичной обмотками %.2f\n", A); printf("Частота среза снизу по уровню %d дБ %d Гц\n", LEVEL, (int)F_low); printf("\nПараметры сердечника трансформатора:\n"); #ifdef HOT_STEEL /* горячекатная сталь */ printf("Сталь горячекатная \n"); #else printf("Сталь холоднокатная \n"); #endif printf("Сердечник Ш%d, толщина набора %d мм \n", (int)(a*10), (int)(b*10)); printf("Ширина и высота окна соответственно %d и %.1f мм\n", (int)(c*10), h*10); printf("Средняя длина магнитной силовой линии %.1f см\n", lc); printf("Средняя средняя длина витка %.1f см\n", lo); }