Лабораторная работа № 3
Исследование переходных процессов в асинхронном двигателе
c короткозамкнутым ротором при моделировании в осях
a,b
Описание программы RKGS
Вызов программы
RKGS
осуществляется следующим образом:
CALL RKGS (prmt,y,dery,ndim,ihlf,FCT,OUTP,aux),
где
prmt
- массив, размерностью не менее 5:
prmt(1)
- начальное значение интервала интегрирования;
prmt(2)
- конечное значение интервала интегрирования;
prmt(3)
- начальное значение шага интегрирования;
prmt(4)
- величина максимально допустимой погрешности;
prmt(5)
- управляющий параметр: программа устанавливает
prmt(5)=0
при нормальном протекании процесса расчета; пользователь может
досрочно прервать расчет, изменив значение
prmt(5)
на ненулевое в своей внешней подпрограмме
OUTP
(см. ниже);
y - при входе - массив
начальных значений переменных, при выходе - массив текущих значений
переменных;
dery
- при входе - массив весовых коэффициентов погрешностей переменных
(сумма которых должна равняться 1), при выходе - массив текущих
значений производных переменных;
ndim
- число уравнений системы;
ihlf
- число выполненных дроблений шага интегрирования; кроме того, в случае,
если число дроблений шага превысило 10, то
ihlf=11;
если значение начального шага
prmt(3)=0,
то
ihlf=12;
если знак начального шага
prmt(3)
не совпадает со знаком разности
(prmt(2)-prmt(1)),
то
ihlf=13;
FCT
- имя внешней подпрограммы, вызываемой из
RKGS,
которая вычисляет правые части системы дифференциальных уравнений:
FCT(x,y,dery)
(здесь
x - текущее значение
времени на интервале интегрирования);
OUTP
- имя внешней подпрограммы, вызываемой из
RKGS,
которая осуществляет вывод промежуточных значений переменных в
точках разбиения интервала интегрирования:
OUTP(x,y,dery,ihlf,ndim,prmt)
(в ней можно изменить управляющий параметр
prmt(5));
aux
- дополнительный рабочий массив, с размерностью
(8,ndim).
Любая система дифференциальных уравнений, решение которой содержит
“очень быструю” и “очень медленную” компоненты, называется “жесткой”.
Дифференциальные уравнения электрических машин часто относятся именно к
этому типу (потокосцепления обмоток изменяются значительно быстрее
скорости ротора).
Для эффективного решения жестких систем уравнений должен быть выбран
такой метод, который позволил бы изменять величину шага в широких
пределах, сохраняя при этом вычислительную устойчивость. Для решения
указанной проблемы Гир разработал семейство жестко устойчивых неявных
многошаговых алгоритмов, в которых величина шага ограничена только
максимально допустимой локальной методической ошибкой.
Метод Гира k-го порядка в общем виде определяется следующим образом:
Xn+1=a0(k)×Xn+a1(k)×Xn-1+a2(k)×Xn-2+...
...+ak-1(k)×Xn-k-1+h×[b-1(k)×f(Xn+1,tn+1)].
Гир разработал и высокоэффективную машинную программу интегрирования
системы обыкновенных дифференциальных уравнений, которая включает в
себя жестко устойчивый алгоритм автоматического изменения порядка
метода и величины шага интегрирования. Вызов этой подпрограммы
осуществляется следующим образом:
CALL DVOGER (DFUN,y,t,n,mth,maxder,jstart,h,hmin,hmax,eps,ymax,error,wk,ier)
где
DFUN
- предоставляемая пользователем внешняя подпрограмма расчета правой
части системы дифференциальных уравнений:
DFUN (yp,tp,n,dy,pw,ind),
здесь
yp
- массив текущих значений переменных и их производных, размерностью
(8,n);
текущее решение находится в первой строке этого массива:
X(1)=yp(1,1),
X(2)=yp(1,2), ...
X(n)=yp(1,n);
tp
- текущее значение времени;
n
- число уравнений системы;
ind
- управляющий параметр: если
ind=0,
то
DFUN
должна вычислить
n-мерный
массив правых частей системы уравнений и сохранить его в
dy(n);
если
ind=1,
то
DFUN
должна кроме того вычислить якобиан и сохранить его в
матрице
pw(n,n)
(якобиан вычисляется только при вызове
DVOGER
с
mth=1);
y - массив, размерностью
(8,n),
содержащий переменные и их производные; при начале интегрирования он
должен содержать в первой строке начальные значения переменных;
t
- текущее значение независимой переменной интегрирования (время);
при начале интегрирования должна содержать начальное время
t0;
n - порядок системы
уравнений (число уравнений);
mth
- признак метода интегрирования:
mth=0
- метод Адамса прогноза-коррекции,
mth=1
- метод Гира с изменением порядка, пригодный для решения жестких систем
уравнений (при этом пользователь обеспечивает расчет якобиана в
DFUN),
mth=3
- метод Гира с изменением порядка (но при этом
DVOGER
сама вычисляет якобиан);
maxder
- максимальный порядок метода:
maxder<8
для метода Адамса и
maxder<7
для метода Гира;
jstart
- управляющий параметр, принимающий значения:
-1
- повторить последний шаг с новым значением
h;
0 - начать интегрирование (при
первом вызове);
+1
- продолжить интегрирование;
при выходе из DVOGER jstart равно текущему порядку метода, примененного при интегрировании;
h - при входе в программу -
величина текущего шага, с которой будет выполнено приращение
t, при выходе из программы
- рекомендуемая величина следующего шага, установленная из
соображений экономичности интегрирования при обеспечении заданной
точности;
hmin
- минимальная допустимая величина шага;
hmax
- максимальная допустимая величина шага;
eps
- критерий максимальной допустимой относительной погрешности;
ymax
- массив, размерностью
n,
содержащий максимальные абсолютные значения переменных (перед
началом интегрирования они устанавливаются равными 1);
error
- массив, размерностью
n,
содержащий локальные погрешности решения;
wk - рабочий массив,
размерностью
(17,n)
при
mth=0
и
(n,n+17)
в остальных случаях;
ier
- признак ошибок, возникших при интегрировании.
Данная подпрограмма отличается от RKGS тем, что она осуществляет только один шаг интегрирования, после чего
возвращает в вызывающую программу текущие значения переменных и их
производных, погрешности определения переменных, а также рекомендуемые
значения порядка метода и шага интегрирования для выполнения
следующего шага. Это позволяет организовать гибкое управление
вычислительным процессом, хотя и предполагает более высокую квалификацию
программиста.
При использовании данного пакета пользователь попадает в горизонтальное
меню, содержащее 5 пунктов: “Исходные данные”, “Пуск АД”, “Наброс
нагрузки”, “Реверс АД” и “Выход”. Перемещаясь по меню с помощью клавиш
позиционирования курсора можно выбрать необходимый пункт и
активизировать его, нажав клавишу
<Enter>.
При этом пользователь попадает как правило в окно ввода, выйти из
которого по окончании ввода можно, нажав клавишу <Esc>.
Синхронно с расчетом переходных процессов происходит вывод на экран
“осциллограмм” токов статора и ротора, электромагнитного момента и
скорости ротора.
В случае неправильного задания параметров двигателя, либо длительности
интервала интегрирования и кратности момента сопротивления можно
прервать расчет, нажав любую клавишу на клавиатуре компьютера, а затем
клавишу
<Esc>.