Реферат: Исследование RC-генератора синусоидальных колебаний

Вещественный.

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 выполняется подготовка к продолжению расчетов с прежним шагом. Из трех последних точек средняя делается начальной для выполнения контрольного шага удвоенной величины НВ, а последняя , - начальной для очередного малого шага Н.

4.6Блок - схема алгоритма метода Рунге - Кутта с автоматическим выбором шага

Рисунок 3


4.7Подпрограмма метода Рунге - Кутта с автоматическим выбором шага


Подпрограмма ARK позволяет решать произвольную систему N-го порядка с автоматическим выбором шага интегрирования. Эта подпрограмма обращается:

  • к подпрограмме одного шага- SH,

  • к подпрограмме вычисления правых частей системы,

  • к подпрограмме вывода.

Подпрограмма SH записана в универсальном виде и приведена выше. Головной вызывающий модуль, а также подпрограммы правых частей и вывода Пользователь должен составить самостоятельно.

В главном модуле оператором EXTERNAL должны быть объявлены имена подпрограмм правых частей и вывода. Оператором DIMENSION должны быть объявлены массивы - фактические параметры подпрограммы ARK. Эти массивы, по желанию, могут объявляться как одномерные или как двухмерные. Размеры массивов (N,4),(N,3),(N,4), где N-порядок системы. Формальные имена этих массивов в подпрограмме ARK, соответственно, X,R,F. В главном модуле первые N элементов массива, соответствующего X, заполняются начальными условиями, а следующие N элементов заполняются весовыми коэффициентами погрешности. В подпрограммах правых частей и вывода в первых N элементах массива, соответствующего X, при входе содержатся текущие значения всех N переменных системы и не должны там переопределяться. Первые N элементов массива, соответствующего F, должны заполняться в подпрограмме правых частей вычисляемыми там значениями правых частей системы.

Формальными параметрами в подпрограмме правых частей должны быть параметры (T,X,F,N), где T-независимая переменная системы.

Формальными параметрами подпрограммы вывода должны быть параметры (T,X,F,N,IER), где IER- код ошибки, определяемый в подпрограмме ARK:

  • IER=0,- ошибки нет;

  • IER=1,- знак заданного начального шага не соответствует движению от начала интервала интегрирования к его концу;

  • IER=2,- начальный шаг или/и длина интервала интегрирования ошибочно заданы равными нулю;

  • IER=3,- шаг в процессе счёта стал более чем в 1000 раз меньше начального.

Массивы X и F в подпрограммах правых частей и вывода можно объявлять как одномерные, с регулируемым размером X(N),F(N).

В главном модуле для подпрограммы ARK должны задаваться максимальный (он же и начальный) шаг интегрирования HM, начало TN и конец TK интервала интегрирования, а также значение требуемой абсолютной погрешности решения E.

Подпрограмма ARK вычисляет решение системы и в каждой точке, удовлетворяющей условиям точности, обращается к подпрограмме вывода, передавая ей значения параметров T,X,F,IER. Пользователь может запрограммировать здесь печать необходимых переменных или накопление их в дополнительных массивах для последующей обработки. (В последнем случае дополнительные массивы следует передавать в главный модуль через общую область памяти с помощью оператора COMMON). После возврата из подпрограммы вывода, ARK продолжает вычисление следующей точки решения.


SUBROUTINE ARK(HM,TN,TK,X,R,F,N,E,PRAV,OUT,IER)

К-во Просмотров: 650
Бесплатно скачать Реферат: Исследование RC-генератора синусоидальных колебаний