| |||||
МЕНЮ
| Исследование RC-генератора синусоидальных колебанийИсследование RC-генератора синусоидальных колебаний[pic] СОДЕРЖАНИЕ 1. ПОСТАНОВКА ЗАДАЧИ 3 2. МАТЕМАТИЧЕСКАЯ ФОРМУЛИРОВКА ЗАДАЧИ 4 2.1 ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ ЛИНЕЙНОЙ ЧАСТИ 4 2.2 Уравнение усилителя 4 2.3 Конечно-элементная модель усилителя 5 3. ФУНКЦИОНАЛЬНОЕ ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО КОМПЛЕКСА 6 4. МОДУЛИ РЕШЕНИЯ СИСТЕМЫ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 7 4.1 Описание метода Рунге - Кутта четвертого порядка 7 4.2 Описание алгоритма одного шага 8 4.3 Блок - схема алгоритма одного шага по методу Рунге - Кутта 9 4.4 Подпрограмма одного шага по методу Рунге-Кутта. 10 4.5 Описание алгоритма метода Рунге - Кутта с автоматическим выбором шага 10 4.6 Блок - схема алгоритма метода Рунге - Кутта с автоматическим выбором шага 12 4.7 Подпрограмма метода Рунге - Кутта с автоматическим выбором шага 13 4.8 Тестовая задача 15 4.9 Результаты тестирования 16 4.10 Квадратичная конечно-элементная модель усилителя 17 4.10.1 Описание алгоритма 17 4.10.2 Блок - схема алгоритма модели усилителя 18 4.10.3 Подпрограмма - модель усилителя 18 4.10.4 Решение тестовой задачи 19 4.11 Подпрограмма вычисления правых частей системы уравнений 20 4.12 Подпрограмма вывода 20 4.13 Главный модуль решения системы уравнений 21 5. ЧИСЛЕННОЕ МОДЕЛИРОВАНИЕ АВТОГЕНЕРАТОРА 22 5.1 Пробные решения 22 5.2 Решение для спектрального анализа выходного напряжения 24 5.3 Решения для установления зависимостей параметров от [pic] 25 6. ПРОГРАММЫ ОБРАБОТКИ РЕЗУЛЬТАТОВ МОДЕЛИРОВАНИЯ 26 6.1 Программа численного интегрирования по методу трапеций 26 6.2 Блок - схема алгоритма вычисления амплитуд гармоник 27 6.3 Результаты гармонического анализа 28 7. ЛИТЕРАТУРА 29 ПОСТАНОВКА ЗАДАЧИ Выполнить исследование RC-генератора синусоидальных колебаний (Рисунок. 1) [pic] Рисунок 1 Генератор состоит из пассивной линейной части, включающей резисторы с сопротивлением R и конденсаторы с емкостью С, и электронного усилителя с нелинейной характеристикой. Передаточная функция линейной части [pic], где [pic]. Нелинейная зависимость выходного напряжения [pic]усилителя от его входного напряжения [pic] приведена в таблице 1 Таблица 1 |U1 |-0,12|-0,1|-0,07|-0,0|-0,02|0 |0,02|0,05|0,07|0,1 |0,12| | |5 | |5 |5 |5 | |5 | |5 | |5 | |U2 |3 |2,75|2,4 |1,73|1 |0,02|-1 |-1,7|-2,4|-2,7|-3 | | | | | | | | | |3 | |5 | | Численными экспериментами на ЭВМ найти зависимости: периода Т установившихся автоколебаний от параметра [pic] , амплитуды U2max выходного напряжения U2(t) от [pic] , амплитуды An n-ой гармоники [pic] выходного напряжения от ее номера n [pic], коэффициента усиления электронного усилителя в режиме установившихся автоколебаний от [pic]. Найденные экспериментально зависимости аппроксимировать степенными многочленами. Из зависимости [pic] найти значение [pic], необходимое для получения периода автоколебаний [pic], и расчетом колебаний проверить правильность полученного значения параметра [pic]. Для вывода графиков и таблиц разрешается использовать библиотечную подпрограмму KRIS. Все остальные программные модули разработать самостоятельно. МАТЕМАТИЧЕСКАЯ ФОРМУЛИРОВКА ЗАДАЧИ 1 ДИФФЕРЕНЦИАЛЬНЫЕ УРАВНЕНИЯ ЛИНЕЙНОЙ ЧАСТИ Запишем систему дифференциальных уравнений линейной части RC- генератора. Для этого преобразуем ее передаточную функцию [pic] ( 1 ) [pic] ( 2 ) Введем первую вспомогательную переменную [pic], определяемую из уравнения [pic] ( 3 ) Подставляя ( 3 ) в ( 2 ), получаем [pic] ( 4 ) Сокращая на [pic] и группируя в правой части члены, не содержащие [pic], получаем [pic] ( 5 ) Введем вторую вспомогательную переменную [pic], определяемую из уравнения [pic] ( 6 ) Подставляя ( 6 ) в ( 5 ), получаем [pic] ( 7 ) Снова сокращая на [pic] и группируя в правой части члены, не содержащие [pic], получаем [pic] ( 8 ) Введем третью вспомогательную переменную [pic], определяемую из уравнения [pic] ( 9 ) Подставляя ( 9 ) в ( 8 ) и сокращая на [pic], получаем [pic] ( 10 ) Переходя в уравнениях ( 10 ), ( 9 ), ( 6 ), ( 3 ) от изображений переменных к их оригиналам, получаем систему уравнений [pic] ( 11 ) [pic] ( 12 ) [pic] ( 13 ) [pic] ( 14 ) Здесь [pic] - функция, определяемая нелинейной характеристикой усилителя. Так как генератор должен самовозбуждаться, то решение системы ( 11 ) - ( 14 ) можно выполнять от любых начальных условий, в том числе и от нулевых. 2 Уравнение усилителя Уравнение ( 11 ) представляет собой нелинейное уравнение, которое необходимо решать при каждом вычислении правых частей системы. Можно решать это уравнение методом итераций. Но есть более простой путь. Найдем из характеристики усилителя разности [pic], а затем построим характеристику [pic] Значение [pic] известно сначала из начальных условий, а затем при каждом обращении к вычислению правых частей системы и из построенной нами характеристики всегда можно вычислить [pic] для подстановки в правые части остальных уравнений. Вычисленная характеристика представлена в таблице 2. Таблица 2 |z3 |-3,12|-2,8|-2,47|-1,7|-1,02|-0,02|1,025|1,78|2,475|2,85|3,12| | |5 |5 |5 |8 |5 | | | | | |5 | |U1 |-0,12|-0,1|-0,07|-0,0|-0,02|0 |0,025|0,05|0,075|0,1 |0,12| | |5 | |5 |5 |5 | | | | | |5 | 3 Конечно-элементная модель усилителя Для построения квадратичного конечного элемента используем интерполяционную формулу Лагранжа [pic] ( 15 ) Для вычисления выходной величины автогенератора необходимо также по формуле Лагранжа по заданному значению [pic] находить [pic]. [pic] ( 16 ) Данные в этом случае необходимо выбирать из таблицы 3, полученной из таблиц 1 и 2. Таблица 3 |z3 |-3,12|-2,8|-2,47|-1,7|-1,02|-0,02|1,025|1,78 |2,47|2,85|3,125| | |5 |5 |5 |8 |5 | | | |5 | | | |U2 |3 |2,75|2,4 |1,73|1 |0,02 |-1 |-1,73|-2,4|-2,7|-3 | | | | | | | | | | | |5 | | ФУНКЦИОНАЛЬНОЕ ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО КОМПЛЕКСА Функционально программный комплекс должен состоять из двух независимых частей: программы - модели RC - генератора; набора программ обработки результатов моделирования автогенератора. Модель RC - генератора должна, в свою очередь, включать: модуль, вызывающий подпрограмму метода Рунге - Кутта; модули метода Рунге - Кутта; модуль - модель усилителя; модуль правых частей ; модуль вывода результатов одного шага интегрирования. Для программной реализации метода Рунге - Кутта удобно использовать два модуля: модуль, выполняющий один заданный шаг метода; модуль, управляющий величиной шага в зависимости от получаемой погрешности решения. Взаимодействие этих модулей таково. Вызывающий модуль вводит значение параметра [pic] , начало и конец интервала интегрирования, максимальный шаг, начальные условия и заданную погрешность. Затем этот модуль обращается к модулю управления метода Рунге - Кутта. Последний задает величину шага подпрограмме одного шага и ведет процесс интегрирования системы уравнений, удерживая погрешность в заданных пределах. При выполнения шага, в соответствие с методом Рунге - Кутта, модуль шага четырежды обращается к модулю правых частей, а тот, в свою очередь, - к модели усилителя в виде функции [pic]. После выполнения шага, удовлетворяющего условиям точности, модуль управления вызывает подпрограмму вывода результатов шага, а она, в свою очередь обращается к модели усилителя в виде функции [pic]. Модуль управления заканчивает свою работу после достижения конца интервала интегрирования. Тогда вызывающий модуль обращается к подпрограмме вывода таблиц и графиков KRIS. В набор подпрограмм обработки результатов моделирования необходимо включить две независимые программы: программу численного интегрирования по методу трапеций; программу аппроксимации экспериментальных зависимостей степенными многочленами методом наименьших квадратов. МОДУЛИ РЕШЕНИЯ СИСТЕМЫ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ 1 Описание метода Рунге - Кутта четвертого порядка Сначала рассмотрим применение метода для решения дифференциального уравнения, а затем для случая системы уравнений. Пусть имеется уравнение [pic] или [pic] где [pic] - неизвестная функция от независимой переменной [pic]; [pic] - известная функция. Все численные методы решения задачи Коши основаны на приближенной замене искомой функции степенными многочленами. В методе Рунге-Кутта четвёртого порядка отыскивается приращение, которое даёт приближающий многочлен на шаге интегрирования. Приращение искомой функции вычисляется в виде произведения длины шага на значение производной от этой функции. В качестве производной берется средневзвешенное от значений производных [pic] вычисленных в специально подобранных четырёх точках. В качестве первой точки берут начальную точку шага [pic]. Производная в этой точке равна [pic] , где [pic] - правая часть уравнения . В качестве второй точки на плоскости решения [pic] выбирают точку с координатами [pic]. Производная во второй точке равна [pic] Для третьей точки берут координаты [pic] и вычисляют производную [pic] Наконец, для четвёртой точки берут координаты [pic] и вычисляют производную [pic] По полученным четырём значениям производной находят средневзвешенное значение [pic] Теперь, находят координаты конечной точки шага. [pic] При решении системы уравнений вычисления ведут параллельно для каждого из уравнений. 2 Описание алгоритма одного шага В алгоритме используются следующие идентификаторы Таблица 4 |Имя |Тип |Назначение | |PRAV |Подпрограмма. |Подпрограмма, возвращающая значения | | | |производных. | |N |Целый. |Порядок решаемой системы. | |XN |Вещественный. |Исходный массив начальной точки шага. | |XK |Вещественный. |Результирующий массив конечной точки шага. | |F |Вещественный. |Массив возвращаемых подпрограммой РRAV | | | |производных. | |TN |Вещественный. |Начальное на шаге значение независимой | | | |переменной. | |K |Целый. |Номер переменной. | |J |Целый. |Номер частичного приращения. | |T |Вещественный. |Независимая переменная. | |H |Вещественный. |Задаваемая величина шага. | |P |Вещественный |Массив размера (4,2), содержащий необходимые | | | |для вычисления и накопления приращений | | | |константы (0,.5,.5,1,6,3,3,6) | |R |Вещественный |Рабочий массив размера (N,3) | Блок-схема алгоритма изображена на Рисунке 2. Номер переменной записан как верхний индекс. В цикле с номерами блоков 2, 3, 4, 5 обнуляются второй и третий столбцы рабочего массива R. Внешний цикл с номерами блоков 6 - 18 вычисляет производные в четырех им формируемых точках и накапливает средневзвешенное значение приращений в третьем столбце рабочего массива R. Вдоль столбца расположены значения, соответствующие всем N искомым переменным. Блок 7 задает в цикле последовательно значения независимой переменной : TN, TN+0.5H, TN+0.5H, TN+H .Константы 0, 0.5, 0.5 и 1 содержатся в первом столбце массива Р. Цикл 8 - 11 записывает в первый столбец рабочего массива значения переменных для вычисления производных. Для этого к начальному значению переменной прибавляется сначала нулевое приращение, затем половина приращения, получаемого на шаге со значением производной в начальной точке, потом половина приращения, получаемого на шаге с значением производной во второй точке, и , наконец, полное приращение, получаемое на шаге со значением производной в третьей точке. В блоке 12 выполняется обращение к подпрограмме вычисления производных. Подпрограмме передается значение независимой переменной и первый столбец рабочего массива, содержащий значения зависимых переменных в задаваемой точке. Подпрограмма возвращает массив F значений производных. В цикле 13 - 16 во второй столбец рабочего массива по вычисленным значениям производных записываются приращения, а в третьем столбце накапливаются суммы четырех приращений с весовыми коэффициентами 1/6, 1/3, 1/3, 1/6 . Константы 6, 3, 3, 6 для этого хранятся во втором столбце массива Р. В цикле 19 - 22 полученные приращения прибавляются к начальной точке и результат записывается в выходной массив. В блоке 23 вычисляются производные в конечной точке шага. 3 Блок - схема алгоритма одного шага по методу Рунге - Кутта [pic] Рисунок 2 4 Подпрограмма одного шага по методу Рунге-Кутта. SUBROUTINE SH(TN,H,XN,XK,F,PRAV,N,R) DIMENSION XN(N),XK(N),F(N),P(4,2),R(N,3) DATA P/0.,.5,.5,1.,6.,3.,3.,6./ DO 1 K=1,N R(K,2)=0. 1 R(K,3)=0. DO 4 J=1,4 ! Начало внешнего цикла определения 4-х приращений T=TN+P(J,1)*H ! Задание независимой переменной. DO 2 K=1,N ! Цикл задания массива значений зависимых переменных. 2 R(K,1)=XN(K)+P(J,1)*R(K,2) CALL PRAV(T,R,F,N) ! Вычисление производных в заданной точке. DO 3 K=1,N ! Цикл вычисления и накопления частичных приращений. R(K,2)=H*F(K) 3 R(K,3)=R(K,3)+R(K,2)/P(J,2) 4 CONTINUE DO 5 K=1,N 5 XK(K)=XN(K)+R(K,3) ! Вычисление переменных в конечной точке. CALL PRAV(TN+H,XK,F,N) ! Вычисление производных в конечной точке. RETURN END 5 Описание алгоритма метода Рунге - Кутта с автоматическим выбором шага Блок -схема алгоритма приведена на Рисунке 3. В алгоритме используются следующие идентификаторы Таблица 5 |Имя |Тип |Назначение | |PRAV |Подпрограмма|Подпрограмма, возвращающая значения производных. | | |. | | |OUT |Подпрограмма|Подпрограмма, составляемая Пользователем для вывода | | |. |результатов. | |N |Целый. |Порядок решаемой системы. | |X |Вещественный|Массив размера (N,4). | | |. | | |R |Вещественный|Рабочий массив размера (N,3). | | |. | | |F |Вещественный|Массив размера (N,4). | | |. | | |TN |Вещественный|Начальное на шаге значение независимой переменной. | | |. | | |TK |Вещественный|Конец интервала интегрирования. | | |. | | |T |Вещественный|Независимая переменная. | | |. | | |HМ |Вещественный|Задаваемая величина максимального шага. | | |. | | |E |Вещественный|Задаваемое значение абсолютной погрешности. | | |. | | |EH |Вещественный|Погрешность, вычисленная на шаге. | | |. | | |IER |Целый. |Выходной код ошибки. | |H |Вещественный|Текущий шаг. | | |. | | |HB |Вещественный|Удвоенный шаг. | | |. | | |T |Вещественный|Текущее значение независимой переменной. | | |. | | |T1 |Вещественный|T1=T+H | | |. | | |T2 |Вещественный|T2=T+2H | | |. | | |KP |Целый. |Признак достижения конца интервала интегрирования. | |KLP |Целый. |Признак вывода последовательно двух вычисленных точек. | |K |Целый. |Индекс. | Второй столбец массива Х должен содержать весовые коэффициенты погрешности, на которые умножаются найденные погрешности каждой интегральной переменной, чтобы после сложения этих произведений получить общий критерий погрешности системы и сравнить его с заданной погрешностью. Во втором столбце они задаются с целью удобства ввода. Первый столбец массива Х заполняется начальными условиями, а затем , подряд, вводятся весовые коэффициенты. Алгоритм начинается с переписывания весовых коэффициентов в четвертый столбец массива F (блоки 2,3). Номера столбцов обозначены нижним индексом, а номера строк - верхним. После задания начальных значений параметров (4) вызывается подпрограмма вычисления производных (5) в начальной точке интервала интегрирования и начальная точка с производными в ней передается подпрограмме вывода (40). Затем Страницы: 1, 2 |
ИНТЕРЕСНОЕ | |||
|