Главная Учебники - Разные Лекции (разные) - часть 50
|
СОДЕРЖАНИЕ 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
Решения для
установления
зависимостей
параметров
от 25 6.
ПРОГРАММЫ
ОБРАБОТКИ
РЕЗУЛЬТАТОВ
МОДЕЛИРОВАНИЯ 26 6.1
Программа
численного
интегрирования
по методу
трапеций 26 6.2
Блок - схема
алгоритма
вычисления
амплитуд гармоник 27 6.3
Результаты
гармонического
анализа 28 7.
ЛИТЕРАТУРА 30
Выполнить
исследование
RC-генератора
синусоидальных
колебаний
(Рисунок.
1)
Рисунок
1
Генератор
состоит из
пассивной
линейной части,
включающей
резисторы с
сопротивлением
R
и
конденсаторы
с емкостью С,
и электронного
усилителя с
нелинейной
характеристикой.
Передаточная
функция линейной
части
где
Нелинейная
зависимость
выходного
напряжения
Таблица
1 U1 -0,125 -0,1 -0,075 -0,05 -0,025 0 0,025 0,05 0,075 0,1 0,125 U2 3 2,75 2,4 1,73 1 0,02 -1 -1,73 -2,4 -2,75 -3 Численными
экспериментами
на ЭВМ найти
зависимости: периода
Т
установившихся
автоколебаний
от параметра
амплитуды
U2max
выходного
напряжения
U2(t)
от
амплитуды
An
n-ой
гармоники
коэффициента
усиления
электронного
усилителя в
режиме установившихся
автоколебаний
от
Найденные
экспериментально
зависимости
аппроксимировать
степенными
многочленами.
Из
зависимости
Для
вывода графиков
и таблиц разрешается
использовать
библиотечную
подпрограмму
KRIS.
Все остальные
программные
модули разработать
самостоятельно.
Запишем
систему дифференциальных
уравнений
линейной части
RC-генератора.
Для этого преобразуем
ее передаточную
функцию
Введем
первую вспомогательную
переменную
Подставляя
( 3 ) в ( 2 ), получаем
Сокращая
на
Введем
вторую вспомогательную
переменную
Подставляя
( 6 ) в ( 5 ), получаем
Снова
сокращая на
Введем
третью вспомогательную
переменную
Подставляя
( 9 ) в ( 8 ) и сокращая
на
Переходя
в уравнениях
( 10 ), ( 9 ), ( 6 ), ( 3 ) от изображений
переменных
к их оригиналам,
получаем систему
уравнений
Здесь
Так
как генератор
должен самовозбуждаться,
то решение
системы ( 11 ) - ( 14 )
можно выполнять
от любых начальных
условий, в том
числе и от нулевых.
Уравнение
( 11 ) представляет
собой нелинейное
уравнение,
которое необходимо
решать при
каждом вычислении
правых частей
системы.
Можно
решать это
уравнение
методом итераций.
Но есть более
простой путь.
Найдем
из характеристики
усилителя
разности
Вычисленная
характеристика
представлена
в таблице 2.
Таблица
2 z3 -3,125 -2,85 -2,475 -1,78 -1,025 -0,02 1,025 1,78 2,475 2,85 3,125 U1 -0,125 -0,1 -0,075 -0,05 -0,025 0 0,025 0,05 0,075 0,1 0,125
Для
построения
квадратичного
конечного
элемента используем
интерполяционную
формулу Лагранжа
Для
вычисления
выходной величины
автогенератора
необходимо
также по формуле
Лагранжа по
заданному
значению
Данные
в этом случае
необходимо
выбирать из
таблицы 3, полученной
из таблиц 1 и
2.
Таблица
3 z3 -3,125 -2,85 -2,475 -1,78 -1,025 -0,02 1,025 1,78 2,475 2,85 3,125 U2 3 2,75 2,4 1,73 1 0,02 -1 -1,73 -2,4 -2,75 -3
Функционально
программный
комплекс должен
состоять из
двух независимых
частей:
программы
- модели RC
- генератора;
набора
программ обработки
результатов
моделирования
автогенератора.
Модель
RC - генератора
должна, в свою
очередь, включать:
модуль,
вызывающий
подпрограмму
метода Рунге
- Кутта;
модули
метода Рунге
- Кутта;
модуль
- модель усилителя;
модуль
правых частей
;
модуль
вывода результатов
одного шага
интегрирования.
Для
программной
реализации
метода Рунге
- Кутта удобно
использовать
два модуля:
модуль,
выполняющий
один заданный
шаг метода;
модуль,
управляющий
величиной шага
в зависимости
от получаемой
погрешности
решения.
Взаимодействие
этих модулей
таково. Вызывающий
модуль вводит
значение параметра
В
набор подпрограмм
обработки
результатов
моделирования
необходимо
включить две
независимые
программы:
программу
численного
интегрирования
по методу трапеций;
программу
аппроксимации
экспериментальных
зависимостей
степенными
многочленами
методом наименьших
квадратов.
Сначала
рассмотрим
применение
метода для
решения дифференциального
уравнения, а
затем для случая
системы уравнений.
Пусть
имеется уравнение
где
Все
численные
методы решения
задачи Коши
основаны на
приближенной
замене искомой
функции степенными
многочленами.
В
методе Рунге-Кутта
четвёртого
порядка отыскивается
приращение,
которое даёт
приближающий
многочлен на
шаге интегрирования.
Приращение
искомой функции
вычисляется
в
виде
произведения
длины шага на
значение производной
от этой
функции.
В качестве
производной
берется средневзвешенное
от значений
производных
В
качестве первой
точки берут
начальную точку
шага
Производная
в этой точке
равна
где
В
качестве второй
точки на плоскости
решения
Производная
во второй
точке
равна
Для
третьей точки
берут координаты
Наконец,
для четвёртой
точки берут
координаты
По
полученным
четырём значениям
производной
находят средневзвешенное
значение
Теперь,
находят координаты
конечной точки
шага. При
решении системы
уравнений
вычисления
ведут параллельно
для каждого
из уравнений. В
алгоритме
используются
следующие
идентификаторы Таблица
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 вычисляются
производные
в конечной
точке шага. Рисунок
2
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 Блок
-схема алгоритма
приведена на
Рисунке 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). Затем
начинается
основной цикл
выполнения
шагов интегрирования.
Задается шаг,
равный максимальному
(6), и выполняются
шаги из точки
Т
в точку Т1
и из точки Т1
в точку Т2.
Результаты
записываются,
соответственно,
во второй и
третий столбцы
массивов X
и
F.
Затем, для проверки
точности выполняется
удвоенный шаг
из точки Т
в точку Т2.
Результаты
этого шага
записываются
в четвертый
столбец массива
Х
и в первый столбец
массива F
.
В цикле (13, 14) накапливается
критерий погрешности
ЕН,
как сумма взятых
с весами погрешностей
по каждому из
уравнений.
Погрешность
каждой переменной
вычисляется
как 1/15
модуля
разности между
значениями
этой переменной,
вычисленными
с разными шагами.
Далее выполняется
анализ критерия
(15) и в зависимости
от его значения
шаг увеличивается,
уменьшается
или остается
прежним. Если
текущая погрешность
ЕН
не больше заданной
Е
, то результаты
шага выводятся
(25). При этом, если
выполнялось
два малых шага
(КLР=1),
то выводятся
и результаты
предыдущего
шага (23). Так случается
в начале интервала
интегрирования
и тогда, когда
предыдущий
шаг оказался
неудачным и
из-за большой
погрешности
величина шага
уменьшена
вдвое. После
вывода двух
шагов признак
KLP
сбрасывается
в ноль (24). Выполненный
шаг может быть
последним на
интервале
(КР=1),
тогда осуществляется
выход из подпрограммы(26,
27). В блоке 28 выполняется
проверка, может
ли быть выполнен
удвоенный шаг
без выхода за
пределы интервала?
Если нет, то в
(29) «взводится»
признак конца
интервала и
устанавливается
величина удвоенного
шага равной
оставшейся
части интервала.
В блоке 33 и цикле
34-35 последняя
вычисленная
точка делается
начальной для
выполнения
двух малых
шагов Н
и контрольного
удвоенного
НВ.
Соответственно,
в 36 устанавливается
признак двух
шагов (KLP=1)
и
осуществляется
возврат на блок
6
.
Если «дошагивание»
не нужно, то в
30 проверяется,
является ли
точность расчетов
завышенной
и в 31 можно ли
удвоить малый
шаг?
При
завышенной
точности шаг
можно удвоить,
если он не превзойдет
максимального
НМ
и
удвоенный шаг
не выведет за
пределы интервала
интегрирования.
Если увеличение
шага допустимо,
то блок 32 это
выполняет и
далее все
производится
как при дошагивании,
но без взвода
признака конца.
Если увеличение
шага недопустимо,
то в цикле 37, 38
выполняется
подготовка
к продолжению
расчетов с
прежним шагом.
Из трех последних
точек средняя
делается начальной
для выполнения
контрольного
шага удвоенной
величины НВ,
а последняя
, - начальной
для очередного
малого шага
Н.
Подпрограмма
ARK
позволяет
решать произвольную
систему N-го
порядка с
автоматическим
выбором шага
интегрирования.
Эта подпрограмма
обращается: к
подпрограмме
одного шага-
SH, к
подпрограмме
вычисления
правых частей
системы, к
подпрограмме
вывода.
Подпрограмма
SH
записана в
универсальном
виде и приведена
выше. Головной
вызывающий
модуль, а также
подпрограммы
правых частей
и вывода Пользователь
должен составить
самостоятельно.
В
главном модуле
оператором
EXTERNAL
должны быть
объявлены имена
подпрограмм
правых частей
и вывода. Оператором
DIMENSION
должны быть
объявлены
массивы - фактические
параметры
подпрограммы
ARK.
Эти массивы,
по желанию,
могут объявляться
как одномерные
или как двухмерные.
Размеры массивов
(N,4),(N,3),(N,4),
где N-порядок
системы. Формальные
имена этих
массивов в
подпрограмме
ARK,
соответственно,
X,R,F.
В главном модуле
первые N
элементов
массива, соответствующего
X,
заполняются
начальными
условиями, а
следующие N
элементов
заполняются
весовыми
коэффициентами
погрешности.
В подпрограммах
правых частей
и вывода в
первых
N
элементах
массива, соответствующего
X,
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||