Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
4
Добавлен:
11.02.2016
Размер:
31.27 Кб
Скачать

ДОДАТОК Б

Вихідний текст програми проведення розрахунку АЧХ та ФЧХ при критичному та граничному значенні фактора зв’язку

/*******************************************************************/

/* Программа расчета амплитудно-частотной (АЧХ) и */

/* фазо-частотной характеристик (ФЧХ) связанного контура */

/* для факторов связи Хг=2.41 и Хк=1 */

/* Выполнил студент гр. РТ-103 Поселюжный В.С. */

/*******************************************************************/

/* Включение в программу необходимых файлов */

#include <stdio.h>

#include <math.h>

#include<conio.h>

/*******************************************************************/

/* Объявление функций пользователя */

/*******************************************************************/

floatACHk(floatKsi); /* Расчет АЧХ при Хк=1 */

floatFCHk(floatKsi); /* Расчет ФЧХ при Хк=1 */

floatACHg(floatKsi); /* Расчет АЧХ при Хг=2.41 */

floatFCHg(floatKsi); /* Расчет ФЧХ при Хг=2.41 */

voidTabl(floatKsi, floatACHk, floatFCHk, floatACHg, floatFCHg, float W); /* Вывод таблицы */

floatOmega(floatKsi, float Q, float W0); /* Определение частоты */

voidVerhTabl(void); /* Вывод шапки таблицы */

voidNizTabl(void); /* Вывод последней строки таблицы */

/*******************************************************************/

/* Главная функция */

/*******************************************************************/

voidmain(void)

{

/*******************************************************************/

/* Объявление переменных */

/*******************************************************************/

float C, /* Емкость контура */

L, /* Индуктивность контура */

R, /* Сопротивление контура */

Q, /* Добротность контура */

Ksi, /* Обобщенная расстройка */

Ak, /* Значение АЧХ при Хк=1 */

Ag, /* Значение АЧХ при Хг=2.41 */

Fk, /* Значение ФЧХ при Хк=1 */

Fg, /* Значение ФЧХ при Хг=2.41 */

Om, /* Значение частоты */

W0; /* Резонансяная частота контура */

/*******************************************************************/

/* Инициализация переменных */

/*******************************************************************/

C = 10 * pow(10,-9);

L = 240 * pow(10,-6);

R = 16;

clrscr(); /* Очистка экрана */

W0 = 1 / sqrt(L * C); /* Определение резонансной частоты */

Q = sqrt(L / C) / R; /* Определение добротности */

VerhTabl(); /* Вызов функции пользователя VerhTabl() */

/*******************************************************************/

/* Цикл */

/*******************************************************************/

for(Ksi = -4.0; Ksi<= 4; Ksi = Ksi + 0.5)

{

Ak = ACHk(Ksi); /* Определение значения АЧХ при Хк=1 */

Fk = FCHk(Ksi); /* Определение значения ФЧХ при Хк=1 */

Ag = ACHg(Ksi); /* Определение значения АЧХ при Хг=2.41 */

Fg = FCHg(Ksi); /* Определение значения ФЧХ при Хг=2.41 */

Om = Omega(Ksi, Q, W0); /* Определение значения частоты */

Tabl(Ksi, Ak, Fk, Ag, Fg, Om); /* Вывод на экран строки таблицы */

}

NizTabl(); /* Вызов функции пользователя NizTabl() */

getch(); /* Ожидание нажатия клавиши (завершение программы) */

}

/*******************************************************************/

/* Функции пользователя */

/*******************************************************************/

/*******************************************************************/

/* Вывод на экран строки таблицы */

/*******************************************************************/

voidTabl(float Ksi, float ACHk, float FCHk, float ACHg, float FCHg, float W)

{

printf (" ║ %4.1f ║ %4.3f ║ %4.3f ║ %4.3f ║ %4.3f ║ %4.3f ║\n", Ksi, W, ACHk, FCHk, ACHg, FCHg);

}

/*******************************************************************/

/* Расчет omega */

/*******************************************************************/

float Omega(float Ksi, float Q, float W0)

{

float W, /* Значение частоты */

W1; /* Нормированное значение частоты */

W1 = ((Ksi / Q) * W0 + W0 * sqrt((Ksi * Ksi) / (Q * Q) + 4.0)) / 2.0; /* Расчет частоты */

W = W1/pow(10,6); /* Нормировка значения частоты */

return W; /* Возврат значения */

}

/*******************************************************************/

/* Вывод на экран названия и "шапки" таблицы */

/*******************************************************************/

voidVerhTabl(void)

{

printf(" Таблица значений АЧХ и ФЧХ при Хк=1 и Хг=2.41 \n");

printf(" ╔═══════╦═════════╦═══════════════════════╦═══════════════════════╗\n");

printf(" ║ ║ Omega ║ Xk=1 ║ Xг=2.4 ║\n");

printf(" ║ Ksi ║ ╠═══════════╦═══════════╬═══════════╦═══════════╣\n");

printf(" ║ ║ *10^6 ║ АЧХ ║ ФЧХ ║ АЧХ ║ ФЧХ ║\n");

printf(" ╠═══════╬═════════╬═══════════╬═══════════╬═══════════╬═══════════╣\n");

}

/*******************************************************************/

/* Вывод на экран последней строки таблицы */

/*******************************************************************/

voidNizTabl(void)

{

printf(" ╚═══════╨═════════╨═══════════╨═══════════╨═══════════╨═══════════╝\n");

}

/*******************************************************************/

/* Расчет ФЧХ при Хk=1 */

/*******************************************************************/

floatFCHk(floatKsi)

{

floatFCHk; /* Объявление переменной FCHk */

FCHk = (3.14 / 2) - atan(2 * Ksi / (2 - Ksi * Ksi)); /* Вычисление FCHk */

returnFCHk; /* Возврат значения */

}

/*******************************************************************/

/* Расчет АЧХ при Хk=1 */

/*******************************************************************/

floatACHk(floatKsi)

{

floatACHk; /* Объявление переменной ACHk */

ACHk = 2 / sqrt((2 - Ksi * Ksi) * (2 - Ksi * Ksi) + 4 * Ksi * Ksi); /* ВычилениеACHk */

returnACHk; /* Возврат значения */

}

/*******************************************************************/

/* Расчет АЧХ при Хг=2.41 */

/*******************************************************************/

floatACHg(floatKsi)

{

floatACHg; /* Объявление переменной ACHg */

ACHg = 4.82 / sqrt((6.808 - Ksi * Ksi) * (6.808 - Ksi * Ksi) + 4 * Ksi * Ksi); /* ВычилениеACHg */

returnACHg; /* Возврат значения */

}

/*******************************************************************/

/* Расчет ФЧХ при Хг=2.41 */

/*******************************************************************/

floatFCHg(floatKsi)

{

floatFCHg; /* Объявление переменной FCHg */

FCHg = (3.14 / 2) - atan(2 * Ksi / (6.808 - Ksi * Ksi)); /* ВычилениеFCHg */

returnFCHg; /* Возврат значения */

}

Соседние файлы в папке Курсак.Програмирование.Минев№13