Решение задач электромеханики на ЭВМ

Лабораторные работы по курсу «Универсальные методы расчета полей и процессов в электрических машинах»

Лабораторная работа № 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), при выходе - массив текущих значений производных переменных;
n
dim - число уравнений системы;
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 тем, что она осуществляет только один шаг интегрирования, после чего возвращает в вызывающую программу текущие значения переменных и их производных, погрешности определения переменных, а также рекомендуемые значения порядка метода и шага интегрирования для выполнения следующего шага. Это позволяет организовать гибкое управление вычислительным процессом, хотя и предполагает более высокую квалификацию программиста.

 В данной лабораторной работе используется комплекс программ, который осуществляет численное интегрирование системы дифференциальных уравнений асинхронного двигателя при помощи программы DVOGER. Все программы написаны на языке Fortran 5.1 фирмы Microsoft, в них использован оконный интерфейс FortWind, разработанный на каф. электромеханики МЭИ Серихиным Н.А. и Аванесовым М.А.

При использовании данного пакета пользователь попадает в горизонтальное меню, содержащее 5 пунктов: “Исходные данные”, “Пуск АД”, “Наброс нагрузки”, “Реверс АД” и “Выход”. Перемещаясь по меню с помощью клавиш позиционирования курсора можно выбрать необходимый пункт и активизировать его, нажав клавишу <Enter>. При этом пользователь попадает как правило в окно ввода, выйти из которого по окончании ввода можно, нажав клавишу <Esc>. Синхронно с расчетом переходных процессов происходит вывод на экран “осциллограмм” токов статора и ротора, электромагнитного момента и скорости ротора.

В случае неправильного задания параметров двигателя, либо длительности интервала интегрирования и кратности момента сопротивления можно прервать расчет, нажав любую клавишу на клавиатуре компьютера, а затем клавишу <Esc>.