Вход на сайт Навигация по сайту Любить и уважать Бонус-счастливчики
|
Содержимое файла "3 этап РГР информатика.doc" (без форматирования) 3.ПОБУДОВА БЛОК-СХЕМИ ТА РОЗРОБКА ПРОГРАМИ ПРОВЕДЕННЯ РОЗРАХУНКІВ АЧХ ТА ФЧХ ЗВ’ЯЗАНОГО КОНТУРА 3.1 Постановка задачі Задача полягає в розробці програми для розрахунку амплітудно-частотної та фазо-частотної характеристик зв’язаного контуру,параметри якого були визначені у попередніх розділах. Зазначимо, що для цього необхідно використати вивід даних у формі таблиці, звідки зрозуміло,що в програмі буде використано оператор циклу. Причому, для оптимізації програми, організуємо в циклі виклик функцій, які розраховують АЧХ та ФЧХ, а безпосередні розрахунки цих характеристик оформимо з допомогою функцій користувача. Оскільки програма розраховує параметри контуру, відповідно до варіанту, то в програмі не буде передбачено введення даних, а необхідні параметри контуру будуть задаватися в самій програмі. 3.2 Блок-схема програми Розробимо блок-схему програми, яка реалізує поставлену задачу. Зазначимо,що в блок-схемі будуть використані блоки підпрограм – функцій користувача. Розглянемо блок-схему (рис. 3.1) Рисунок 3.1 – Блок-схема програми Перший блок – початок програми. Цим блоком починається кожна блок-схема. Другий блок – очистка екрана користувача, тобто, перед запуском програми на виконання виконається оператор, який очистить екран користувача від будь-яких символів, які могли бути зображені на ньому. Третій блок – оператор виклику функції розрахунку фактора зв’язку, детальніше розглянемо її далі. Четвертий блок – вивід шапки таблиці – вивід перших рядків таблиці, в яких описана назва величин, які виводяться далі. П’ятий блок – оператор циклу. Описує цикл з відомим числом атерацій, змінна циклу Ksi, змінюється від значення -4, до значення 4, з кроком 0,5. Таким чином отримуємо 17 значень Ksi. Шостий, сьомий та восьмий блоки – тіло циклу. Перші два – виклики функцій розрахунку АЧХ та ФЧХ відповідно. Восьмий блок виводить кожний наступний рядок таблиці, в якому записано значення фактору зв’язку та відповідні йому значення АЧХ та ФЧХ. Дев’ятий блок виводить останній рядок таблиці, десятим блоком закінчується схема. Розглянемо детальніше третій, шостий та сьомий блоки. Це виклики функцій. Розглянемо блок-схему функції розрахунку (рис. 3.2) Рисунок 3.2 – Функція розрахунку фактора зв’язку Другий блок – об’явлення змінних для збереження значень параметрів контуру. Третій блок – присвоєння значень змінним параметрів контуру,згідно варіанту. Четвертий – контрольний вивід значень на екран. Блоки з п’ятого по восьмий – розрахунки необхідних параметрів контуру. Дев’ятий блок – вивід знайдених значень на екран. Десятий – присвоєння функції значення розрахованого фактору зв’язку, тобто повернення значення функції в тіло цикла. Шостий та сьомий блоки реалізують функції власне розрахунку АЧХ та ФЧХ. Розглянемо ці функції – рис. 3.3 а) б) Рисунок 3.3 – Функції розрахунку: а) АЧХ, б)ФЧХ В блок-схемах а) та б) в другому блоці розраховується АЧХ(1.11) та ФЧХ (1.13) відповідно. Третій блок повертає значення АЧХ і ФЧХ відповідно в тіло циклу. 3.3 Код програми Для реалізації цього алгоритму на мові програмування С необхідно врахувати певні деталі. Отже, в коді буде присутнє включення трьох стандартних бібліотек: conio.h – для використання функції очистки екрана, math.h - для проведення розрахунків необхідних величин,так як в розрахунках присутні операції піднесення до степеню та добування кореня, stdio.h – для використання стандартних операцій введення-виведення даних. Програма буде складатися з чотирьох функцій: main – головна функція; dannie – функція розрахунку фактора зв’язку, яка буде повертати значення фактору зв’язку, отже функція буде типу float і не матиме аргументів, оскільки всі необхідні дані задаватимуться в описі функції; ACHKH та FCHKH – функції безпосереднього розрахунку АЧХ (1.11) та ФЧХ (1.13), вони також будуть мати тип float, і матимуть два аргументи – фактор зв’язку та узагальнену розстройку, які також будуть типу float. Код програми наведений в додатку А. Розглянемо роботу програми. Після компіляції запустимо програму на виконання. Відкриється вікно,зображене на рис. 3.4 Рисунок 3.4 – Перше вікно програми У вікні виведені контрольні значення заданих параметрів контуру та розраховані програмою ємність, добротність,коефіцієнт зв’язку, фактор зв’язку. Програма призупинить виконання і перейде в режим очікування натиснення будь-якої клавіші. Після цього програма продовжить виконання. Натиснемо будь-яку клавішу на клавіатурі і отримаємо наступне вікно – рис. 3.5 Рисунок 3.5 – Друге вікно програми В наступному вікні відкриється побудована таблиця значень фактору зв’язку та значень АЧХ та ФЧХ, відповідно виведеному значенню фактора зв’язку. 3.3 Побудова графіків Побудуємо графіки АЧХ та ФЧХ відповідно відгуку програми. Для цього використаємо пакет MathCad. Отже, задаємо три матриці: матриця Ksi складається із значень фактору зв’язку, а матриця А складається з відповідних значень АЧХ, розрахованих програмою, матриця F складається з відповідних значень ФЧХ, розрахованих програмою – рис. 3.6 Рисунок 3.6 – Матриці значень АЧХ, ФЧХ та фактору зв’язку Побудуємо графіки АЧХ (рис. 3.7) та ФЧХ (рис. 3.8) на основі даних, виведених програмою Рисунок 3.7 – Графік АЧХ Рисунок 3.8 – Графік ФЧХ 3.4 Перевірка характеристик Тепер, за допомогою пакета MathCad, перевіримо правильність роботи програми. Проведемо розрахунки, які реалізує програма, в пакеті MathCad. Отже, задаємо значення параметрів контура, згідно варіанту рис. 3.9 Рисунок 3.9 – Значення параметрів контура та вираховуємо всі інші параметри по знайдених на першому етапі формулах (рис 3.10) Рисунок 3.10 – Розрахунки для перевірки Оскільки використовували пакет MathCad, довелось використовувати інші позначення параметрів контура, а саме: Сk – ємність контура, 0 – резонансна частота, Ksv – коефіцієнт зв’язку, А() – АЧХ. Отже, отримаємо значення, зображені на рис. 3.11 Рисунок 3.11 – Значення АЧХ та ФЧХ Як бачимо, розрахунки АЧХ та ФЧХ повністю співпадають з розрахунками в програмі, отже програма працює правильно. ДОДАТОК А Вихідний код програми проведення розрахунків АЧХ та ФЧХ /***********************************************************************/ /* Программа для выполнения 3 части РГР */ /* Работа студента группы РБ-061 Ковтуна Р.Р. */ /* Расчет АЧХ и ФЧХ связаного контура (Вариант 9.А) */ /* RGR_3_chast.cpp */ /***********************************************************************/ /*Подключение стандартных библиотек */ #include #include #include /* Прототипы функций пользователя */ float Dannie (void); /* Прототип функции типа float без аргументов */ float ACHKH (float , float ); /* Прототипы функций,возвращающих значениe */ float FCHKH (float , float ); /* с двумя аргументами */ /***************************************************************************/ /* Главная функция */ /***************************************************************************/ int main(void) { clrscr(); /* Очистка экрана перед началом работы программы */ float X,Ksi,A,F; /* Объявление переменных */ X = Dannie(); /* Присвоение переменной возвращенного функцией значения */ getch(); /* Ожидание нажатия любой клавиши */ clrscr(); printf ("\t\n"); /* Прорисовка шапки таблицы */ printf ("\t КСИ АЧХ ФЧХ \n"); printf ("\t\n"); for (Ksi = -4;Ksi <= 4;Ksi = Ksi+0.5) /* Запуск цикла */ /* Задание параметров цикла */ /* Тело цикла */ { A = ACHKH (X,Ksi); F = FCHKH (X,Ksi); if (Ksi < 0) /* Задание условия вывода */ printf ("\t %1.1f %1.3f %1.3f \n",Ksi,A,F); /* Вывод кси со знаком "-" (<0) */ else printf ("\t %1.1f %1.3f %1.3f \n",Ksi,A,F); /* Выво |
Посетителей: 0, из них зарегестрированных: 0, гостей: 0 Зарегистрированные пользователи: Подробно | Страница сгенерирована за 0.0634 сек. |