ISSN 0236-235X (P)
ISSN 2311-2735 (E)

Journal influence

Higher Attestation Commission (VAK) - К1 quartile
Russian Science Citation Index (RSCI)

Bookmark

Next issue

2
Publication date:
16 June 2024

The article was published in issue no. № 1, 1994
Abstract:
Аннотация:
Authors: () - , () - , () -
Ключевое слово:
Page views: 11432
Print version

Font size:       Font:

Применение средств компьютерной алгебры для решения таких традиционно численных за­дач, как анализ и моделирование динамических систем, синтез систем управления приводит к созданию более удобного для пользователей программного продукта. Кроме того, средства компьютерной алгебры необходимы для эффек­тивного решения задач, требующих длительных численных расчетов.

В больших задачах формулы не могут быть основным результатом из-за их громоздкости, а Любой численный результат может быть полу­чен и без применения символьных вычислений. Однако, выполняя вспомогательную роль, сим­вольные вычисления позволяют значительно уменьшить вычислительные затраты и сделать применение методов вычислительной матема­тики более эффективным. Кроме того, некото­рые методы вычислительной математики в нас­тоящее время находят ограниченное примене­ние на практике, так как требуют трудоемких преобразований математических моделей.

Применение средств компьютерной алгебры дает следующие преимущества:

возможность создания удобного интерфейса с пользователем;

повышение    эффективности    численных   ме­тодов;

высокая    степень    автоматизации    решения задач.

Современная достаточно универсальная про­граммная система, ориентированная на работу с математическими моделями динамических сис­тем, заданных в различных формах, должна опираться на методы компьютерной алгебры и иметь в своем составе средства символьных вычислений.

В настоящей работе приводится краткое описание возможностей пакета прикладных про­грамм моделирования, анализа и синтеза непре­рывно-дискретных динамических систем (ППП) ТЕМП [1]. Пакет предназначен для решения задач, связанных с исследованием математи­ческих моделей (ММ) динамических объектов.

 

ОСНОВНЫЕ КОНСТРУКЦИИ ВХОДНОГО ЯЗЫКА

Входной язык, позволяющий пользователю в наиболее удобной для него форме описывать математические модели динамических систем и их элементов, реализован с помощью средств символьных вычислений, являющихся состав­ной частью пакета [2,3]. Задания на входном языке могут вводиться из командной строки и из файла. Интерпретатор языка позволяет вы­полнять требуемые преобразования математи­ческих моделей.

Пользователь может описывать элементы ММ с помощью систем дифференциальных и разностных уравнений. На форму записи диффе­ренциальных и разностных уравнений не накла­дываются жесткие ограничения. Система диф­ференциальных уравнений может записываться, например, следующим образом:

ode:    J1*x1" + (J2 + J1*sin(x1))*x2" + d*(xl' - х2') + k*(xl - х2) = Тс,

J2*x2"-(J3 + Jl)*xl" + d*(x2'-xl')-k*(xl-x2) = 0;

Наряду со скалярной формой записи уравне­ний в язык включена матричная форма записи; например, приведенные выше уравнения можно записать в виде:

 

А = matrix(Jl, J2 +Jl*sin(xl);
                  J3 + J1,          J2);

В = matrix(d,-d; -d,d);

С = matrix(k,-k; -k,k);

x = matrix(xl,x2); F = matrix(Tc; 0);

 ode: A*x" + B*x'+C*x = F;

 Для записи дискретных элементов модели могут использоваться системы разностных уравнений, например:

 ру: x1 = k1*xl(-l) + kl*x2(-l) + v(-l),

      х2 = х2(-2) + xl(-2);

 Здесь цифра в скобках, следующих за именем переменной, задает количество тактов задерж­ки.

Отдельные элементы модели могут зада­ваться в частотной области линейными зве­ньями, например:

1z: u = (1/s + (t1*s+1)/(t2**2*s**2 + 2*t2*ksi*s+l))*x1;

Здесь x1 и u - соответственно вход и выход за­писи от обычных форм ввода передаточных ли­нейного звена.  Основным отличием  подобной функции, когда вводятся численные коэффици­енты числителя и знаменателя, является воз­можность менять физические параметры (t1, t2, ksi), а не только коэффициенты полиномов.

При записи модели не всегда оправданными выглядят ограничения на порядок описания ее отдельных элементов. Поэтому в языке наряду с записью

 а = 2[kgf]; w = 0.5[Hz];  force = 2*a + a*sin(w*t);

допускается запись

 force = 2*а + a*sin(w*t);  a = 2[kgf]; w = 0.5[Hz];

Другими словами, выражения, используемые при записи модели, вычисляются не сразу, а когда в этом возникает необходимость.

Модель динамической системы может фор­мироваться как совокупность перечисленных элементов. Ниже приводится пример описания на входном языке динамической системы.

 ode: Ja*alfa" + nl*alfa' + cl*alfa + h*bet' = mupr + mw,

Jb*bet" + nb*bet' + cb*bet - h*alfa'= 0;

 

/* численные значения параметров */

 Ja = 2800; n1 = 700; с1 = 50; h - 2200;

 Jb = 1.42; nb = 0.08; cb = 70000;

 mw = am1*sin(2*pi*w1*t); am1 = 0.003; w1= 10;

/* mw - возмущение mupr = w11*alfa + w12*bet */

 W11 = (2.129e + 20 + 8.413e+18*s + 7.631e+15*s**2 + 3.380e + 12*s**3)/(7.260e + 12 + 1.392e + 10*s + 1.15 le + 07*s**2 + 4.787e + 03*s**3 + s**4);

W12=(-5.899e+ 16+ 1.034e+ 18*s+ 1.167e+ 15*s**2 + 1.692e+ 12*s**3)/(7.260e+ 12 + 1.392e+ 10*s + 1.151e + 07*s**2 + 4.787e + 03*s**3 + s**4);

/* линейные звенья */

1z: mupr1 = w11 * alfa;

1z: mupr2 = w12 * bet;

mupr = -(mupr1 + mupr2);

/* Список выходных величин */

out: alfa, bet, mupr1, mupr2, mupr, mw;

/* Начальные условия */

icond:alfa = 1;

gener ode, gyr;

 В результате интерпретации приведенного задания генерируется программа моделирова­ния. Сам процесс моделирования выполняется в диалоговом режиме, при этом пользователь может менять численные значения параметров, метод численного интегрирования, временной интервал, шаг интегрирования.

Аналогичная схема решения задачи исполь­зуется для условной и безусловной минимиза­ции функционалов качества динамических сис­тем, сформированных средствами символьных преобразований.

Пакет программ ТЕМП позволяет решать разнообразные задачи, встречающиеся при анализе и синтезе систем управления подвиж­ными объектами. Практика использования паке­та показала, что его универсальность, основан­ная на формульном описании моделей, делает область его применения значительно более широкой.

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

 НЕКОТОРЫЕ АСПЕКТЫ ПРИМЕНЕНИЯ СРЕДСТВ СИМВОЛЬНЫХ ВЫЧИСЛЕНИЙ

Замена матричных вычислений скалярными.

Для больших динамических систем харак­терна большая разреженность матриц, участ­вующих в вычислениях. Численные процедуры при работе с такими матрицами либо выполня­ют большое количество лишних арифметичес­ких операций, либо тратят время на анализ структуры матриц. Например, в численной про­цедуре умножения матриц замена основного оператора

C[i,j]: = C[i,j].+ A[i,k]*B[k,j]

на

if ( A[i,k]! = 0& B[k,j]! = 0)

then C[i,j] := C[i,j] + A[i,k]*B[k,j]

 

уменьшит число умножений и сложений, но не ускорит вычисления из-за необходимости ана­лизировать элементы матриц во время вычис­лений.

Символьные вычисления выполняются од­нократно. Их результатом может быть набор скалярных формул, раскрывающих матричные вычисления. Объем таких формул во многом зависит от степени разреженности матриц.

Немаловажным фактором повышения эф­фективности вычисления является избавление от операций над индексами матриц. Накладные расходы, связанные с вычислением адресов эле­ментов матриц, могут составлять 20-30% всех затрат.

Определенный эффект достигается также при учете таких особенностей, как симметрич­ность матриц.

Чтобы сократить время вычислений, про­граммистам на практике часто приходится вручную заниматься раскрытием матричных выражений. Автоматизация этого процесса, из­бавление его результатов от ошибок могут осу­ществляться только благодаря средствам ана­литических преобразований.

Примером задач, в которых достигается большой эффект использования средств замены матричных выражений скалярными, являются задачи построения и анализа дискретных и непрерывных оптимальных фильтров, задачи синтеза на основе решения уравнения Риккати для линейных нестационарных систем и др.

 ЗАМЕНА ЧИСЛЕННОГО ДИФФЕРЕНЦИРОВАНИЯ АНАЛИТИЧЕСКИМ

Численные процедуры, использующие в ка­честве   производных   конечные   разности,   требуют не менее а дополнительных вычислений функции (п — количество частных производных). Необходимо также определять величину прира­щения, обеспечивающую требуемую точность.

Ниже приведен пример аналитического дифференцирования функции.

 

ð  f = cos(x)*sin(y) + sin(x)*cos(y) + cos(x)*cos(y) +sin(x)*sin(y);

ð dx = diff(f,x);

ð dy = diff(f,y);

ð comexpr; /* to find equal subexpressions */

ð printm f,dx,dy;

r_1 = cos(x),

r_2=sin(y),

r_3 = r_l*r_2,

r_4 = sin(x),

r_5 = cos(y),

r_6=r_4*r_5,

r_7 = r_4*r_2,

r_8= -r_7 + r_l*r_5,

 

f=r_3  +  r_6 +  r_1*r_5  +  r_7;

dx=r_8 - r_6 + r_3;

dy=r_8 - r_3 + r_6;

 

В примере для вычисления производных до­полнительно требуется лишь по две операции сложения. Дело в том, что у частных производ­ных и исходной функции очень много общих подвыражений, которые не нужно вычислять несколько раз. Для очень больших выражений и большом п подобный эффект становится еще более ощутимым.

Операция аналитического дифференцирова­ния с поиском общих подвыражений использу­ется, например, при генерации программы ми­нимизации функционалов.

 ПОСТРОЕНИЕ ПЕРЕДАТОЧНЫХ ФУНКЦИЙ В СИМВОЛЬНОМ ВИДЕ

В пакет включена возможность построения передаточных функций линейной системы в форме алгебраических выражений, зависящих от параметров системы, например:

ð  ode: Ja*alfa" + n1*alfa' + c1*alfa +h*bet' = mupr +  mw,

ð Jb*bet" + nb*bet' + cb*bet - h*alfa'= 0;

ð w = tf(mw,alfa); /* mw - вход, alfa - выход */

ð w = ratf(w,s); /* преобразование к канонической форме */

ð print w;

w = ( -cb - nb*s - s**2*Jb)/( -cb*cl + ( -cb*nl - nb*cl)*s + ( -nb*nl - h*h)*s**2 +( -cb*s**2 - nb*s**3)*Ja + ( - cl*s**2 -nl*s**3 - s**4*Ja)*Jb)

 ЗАМЕНА ЧИСЛЕННОГО ИНТЕГРИРОВАНИЯ АНАЛИТИЧЕСКИМ

Для параметрической оптимизации динами­ческой системы может использоваться квадра­тичный критерий качества

J=∫tr(x)*G*x*dt,

который служит оценкой качества устойчивой динамической системы. Для линейных систем этот функционал может быть вычислен в сим­вольном виде [4] как функция параметров сис­темы и весовых коэффициентов:

 ð  w = tf(in,y)*s;

ð   f = integr(w); /* w - изображение выходного сигнала */

ð   printm f;

r_1 = -nb*nl – h*h - cbJa – cl*Jb,

r_2 = Ja*Jb,

r_3 = l/-2/r_2*r_2,

r_4 = -nb*Ja – nl*Jb,

r_5 = -cb*nl – nb*cl,

r_6 = cb*cl,

r_7 = r_5*( - r_5*r_2 - r_4*r_l) - r_4*r_6*r_ 4,

r_8 = r_3*r_4/r_7,

r_9 = r_3*r_5/r_7,

f = cb*cb(r_l*r_8 + r_2*r_9)/( - r_6) + (-2*Jb*cb + nb*nb)*r_8 + Jb*Jb*r_9;

 Применение такого подхода в сочетании с алгоритмом аналитического дифференцирова­ния для получения градиента J(p) приводит к очень эффективной программе поиска опти­мальных значений параметров.

МЕТОДЫ АНАЛИЗА И СИНТЕЗА

В пакет включены удобные средства мат­ричных вычислений, предоставляющие пользо­вателю широкие возможности для работы с матрицами. Для символьных матриц наряду с элементарными арифметическими операциями реализованы такие, как возведение в целую степень, вычисление матричной экспоненты, ре­шение уравнения Ляпунова. Для числовых мат­риц реализованы алгоритмы решения уравнений Ляпунова и Риккати, основанные на приведении матриц к форме Шура с помощью QR-алгорит-ма. Наличие этих операций позволяет приме­нять методы анализа и синтеза линейных дина­мических систем, заданных матричными урав­нениями в пространстве состояний. Приведение ММ к уравнениям в пространстве состояний осуществляется в символьном виде.

Анализ и синтез линейных систем управле­ния может осуществляться в частотной облас­ти. В этом случае система описывается матрич­ной дробно-рациональной функцией или поли­номиальными матрицами преобразования Лап­ласа левой и правой частей системы линейных дифференциальных уравнений. В пакет включе­ны такие операции над матричными ДРФ, как сепарация, факторизация эрмитовой матрицы, решение системы полиномиально-матричных диофантовых уравнений.

 РЕШЕНИЕ СИСТЕМ ЛИНЕЙНЫХ УРАВНЕНИЙ В СИМВОЛЬНОМ ВИДЕ

Важную роль в пакете играет программа решения системы линейных уравнений в сим­вольном виде. Необходимость решения систем линейных   уравнении   возникает   в   следующих случаях:

-     при переходе от дифференциальных урав­нений второго порядка, описывающих движение механической части динамической системы, к нормальной форме и при приведении линейной системы к уравнениям в пространстве состоя­ний;

-     при построении передаточных функций;

-     при решении уравнения Ляпунова в сим­вольном виде;

-     при построении выражений для квадратич­ных функционалов качества линейных динами­ческих систем.

Следует отметить, что требования, предъяв­ляемые к алгоритмам решения систем линей­ных уравнений в численном и символьном виде, значительно отличаются. Если для численных алгоритмов в первую очередь важны такие характеристики, как быстродействие, требуе­мый объем памяти, точность, то основной ха­рактеристикой символьных алгоритмо


Permanent link:
http://swsys.ru/index.php?page=article&id=42&lang=en
Print version
The article was published in issue no. № 1, 1994

Perhaps, you might be interested in the following articles of similar topics: