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

ДОДАТОК А

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

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

/* Программа расчета АЧХ и ФЧХ */

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

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

/* Подключениенеобходимыхфайлов */

#include <stdio.h>

#include <math.h>

#include <conio.h>

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

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

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

float ACH(floatKsi, float X); /* Расчет АЧХ */

float FCH(floatKsi, float X); /* Расчет ФЧХ */

void Tabl2(float Ksi, float ACH, float FCH,float W); /* Выводтаблицы */

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

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

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

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

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

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

voidmain(void)

{

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

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

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

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

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

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

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

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

K, /* Коэффициент связи */

X, /* Фактор связи */

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

A, /* Значение АЧХ */

F, /* Значение ФЧХ */

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

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

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

/* Присвоение начальных значений переменным */

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

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

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

LS = 50 * pow(10,-6);

R = 16;

clrscr(); /* Очищаем экран */

W0 = 1 / sqrt(L * C); /* Определяем резонансную частоту */

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

K = LS / (LS + L); /* Определяем коэффициент связи */

X = K * Q; /* Определяем фактор связи */

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

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

/* Создаем цикл */

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

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

{

A = ACH(Ksi, X); /* Определяем значения АЧХ */

F = FCH(Ksi, X); /* Определеляем значения ФЧХ */

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

Tabl2(Ksi, A, F, Om); /* Выводим на экран строки таблицы */

}

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

getch(); /* Ожидаем нажатие клавиши */

}

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

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

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

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

/* Расчет значения АЧХ */

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

float ACH(floatKsi, float X)

{

float ACH; /* Объявляем переменную ACH */

ACH = 2 * X / sqrt((1 + X * X - Ksi * Ksi) * (1 + X * X - Ksi * Ksi)+4 * Ksi * Ksi); /* Вычисляем АЧХ */

return ACH; /* Возвращаем значения */

}

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

/* Расчет значения ФЧХ */

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

float FCH(float Ksi, float X)

{

float FCH; /* Объявляем переменную FCH */

FCH = (3.14 / 2) - atan(2 * Ksi / (1 + X * X - Ksi * Ksi)); /* Вычисляем ФЧХ */

return FCH; /* Возвращаем значения */

}

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

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

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

void Tabl2(float Ksi, float ACH, float FCH, float W)

{

printf (" ║ %4.1f ║ %4.3f ║ %4.3f ║ %4.3f ║\n", Ksi, W, ACH, FCH);

}

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

/* Расчет 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; /* Возвращаем значения */

}

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

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

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

void Tabl1(void)

{

printf(" Таблица значений АЧХ и ФЧХ \n");

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

printf(" ║ Ksi ║ Omega ║ АЧХ ║ ФЧХ ║\n");

printf(" ║ ║ *10^6 ║ ║ ║\n");

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

}

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

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

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

void Tabl3(void)

{

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

}

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