Journal influence
Bookmark
Next issue
Abstract:
Аннотация:
Authors: () - , () - , () - | |
Ключевое слово: |
|
Page views: 12480 |
Print version |
Применение средств компьютерной алгебры для решения таких традиционно численных задач, как анализ и моделирование динамических систем, синтез систем управления приводит к созданию более удобного для пользователей программного продукта. Кроме того, средства компьютерной алгебры необходимы для эффективного решения задач, требующих длительных численных расчетов. В больших задачах формулы не могут быть основным результатом из-за их громоздкости, а Любой численный результат может быть получен и без применения символьных вычислений. Однако, выполняя вспомогательную роль, символьные вычисления позволяют значительно уменьшить вычислительные затраты и сделать применение методов вычислительной математики более эффективным. Кроме того, некоторые методы вычислительной математики в настоящее время находят ограниченное применение на практике, так как требуют трудоемких преобразований математических моделей. Применение средств компьютерной алгебры дает следующие преимущества: возможность создания удобного интерфейса с пользователем; повышение эффективности численных методов; высокая степень автоматизации решения задач. Современная достаточно универсальная программная система, ориентированная на работу с математическими моделями динамических систем, заданных в различных формах, должна опираться на методы компьютерной алгебры и иметь в своем составе средства символьных вычислений. В настоящей работе приводится краткое описание возможностей пакета прикладных программ моделирования, анализа и синтеза непрерывно-дискретных динамических систем (ППП) ТЕМП [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); В = 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?id=42&lang=en&page=article |
Print version |
The article was published in issue no. № 1, 1994 |
Perhaps, you might be interested in the following articles of similar topics:
- Унифицированный информационный интерфейс и его реализация в комплексной САПР
- Использование матричных квадродеревьев для хранения площадных картографических объектов
- Инструментальные и программные средства построения сетевых моделей
- Построение тестов для базовых функций встраиваемых операционных систем
- Целесообразность применения web-служб в распределенных автоматизированных системах военного назначения
Back to the list of articles