Научная статья на тему 'Об опыте использования пакета MathCAD 2000 в инженерных расчётах'

Об опыте использования пакета MathCAD 2000 в инженерных расчётах Текст научной статьи по специальности «Математика»

CC BY
337
56
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Об опыте использования пакета MathCAD 2000 в инженерных расчётах»

4.5 7.9 8.65 2.4 8.9 7.1

В пакете Mathematica существует возможность вызова внешней программы. Для этого служит команда !<имя_программы>. Следовательно, после записи файла с массивом (матрицей) на диск можно выполнить команду ¡perevod для преобразования выходного файла, созданного программой Mathematica. Теперь содержимое файла primer можно считать в MathCAD функцией READPRN или открыть средствами MS EXCEL.

УДК 681.3

Е. Р. Алексеев, О. В. Чеснокова,

JI. С. Сорокина, А. А. Тарасов

ОБ ОПЫТЕ ИСПОЛЬЗОВАНИЯ ПАКЕТА MATHCAD 2000 В ИНЖЕНЕРНЫХ РАСЧЁТАХ

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

Довольно часто в инженерной практике встречаются задачи решения нелинейных уравнений и систем. Для простейших уравнений вида F(x)=0 решение находится с помощью функции root(F(x),x,a,b), а, b - необязательные параметры, определяющие интервал изоляции корня. Возможность указания интервала изоляции в функции root появилась в MathCAD 2000. Эта функция возвращает значение с точностью TOL (TOL - константа MathCAD, определяющая точность решения). Функция реализует вычисления итерационным методом, причем можно задать начальное значение переменной.

При решении задачи расчёта охлаждения неограниченной пластины необходимо было найти корни уравнения ctg(x)=x/Bi (Bi - константа). Известно, что корни находятся на интервалах [(i-l)n; in/2], i=l,2,.... Решение этого нелинейного уравнения с помощью функции root приведено на рис. 1.

і := 1..N Kj := root

cot(x) - — ),x,(i- і) • я + 0.01,І'Я - — + 0.01 \ BV 2

т

К =

: 1 2 3 ■ ........... х ....... із’

ЙІ 0.860334 3.425618 6.437298 9.529334 12.645287 15.771285 18.90241

Рис. 1

При решении систем уравнений используется специальный решающий блок, открываемый служебным словом Given, за которым должны следовать уравнения и ограничительные условия. Завершается решающий блок функциями Find, Minerr или функциями Maximize, Minimize, которые являются нововведением MathCAD 2000. Функция Find(vl,v2,...,vn) возвращает значение переменных для точного решения. Функция Minerr(vl,v2,...,vn) используется в случае, когда точного решения не существует, и возвращает значения переменных, дающие наилучшее приближение к решению. Функция Minimize(f,vl,v2,...,vn) (Maximize(vl,v2,...,vn)) возвращает значения переменных, при которых функция f достигает минимального (максимального) значения.

Использование функции Find рассмотрим на примере поиска точек пересечения параболы отрезком прямой. Г рафик (рис. 2) показывает, что парабола у=х2 и прямая у=8+3х пересекаются в двух точках.

X

Рис. 2

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

х 0 у : = О

Given

у=х у»8 ^ 3-х

V V "1.702'

= Find (х, у) =

/о. .V 2.895

х=3 у =0 Given

у=х2 у=8+3х х>0

4.702'

-Finc(x,y) =

Уо Уо 22.105

Рис. 3

Системы уравнений в MathCAD можно решать символьно. Для этого служит команда solve из символьной палитры инструментов. На рис. 4 представлен пример решения задачи пересечения параболы и прямой в символьном виде.

/

2 > ( V \

у-х solve, X —>

-8-Зх, 1 У

25 3

--- + —

2 2

у/Г\

25

2

Рис. 4

С помощью функции Мтегг возможен поиск экстремума функции ряда переменных. Типичной тестовой функцией двух переменных является функция Розенброка [2], обычно применяемая для тестирования программ минимизации функций ряда переменных. Рис. 5 демонстрирует поиск минимума этой функции.

Большой прикладной интерес представляет использование МаЛСАО для исследования задач линейного и нелинейного программирования. Рассмотрим задачу линейного программирования [1]. Найти минимум функции Г(Х)=СХ, где

С - вектор коэффициентов функции цели, X - вектор неизвестных, при матричной системе ограничений МХ=У.

X •“ 1 у =1

Для решения поставленной задачи необходимо определить начальные значения для переменных и условий, а также целевую функцию f(x). Решение конкретной задачи линейного программирования с помощью решающего блока Given - Minimize приведено на рис. 6

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

В инженерных расчётах часто встречаются задачи интерполяции и аппроксимации, для решения которых MathCAD предоставляет широкие возможности.

В MathCAD есть следующие функции интерполяции:

1) linterp(Vx, Vy, ХО). Эта функция предназначена для вычисления значения функции в точке ХО с помощью линейной интерполяции, Vx, Vy -массивы X и Y координат экспериментальных точек (значения в массиве Vx должны располагаться по возрастанию);

2) cspline(Vx, Vy), pspline(Vx, Vy), pspline(Vx, Vy). Эти функции предназначены для построения коэффициентов кубического, параболического и линейного сплайнов, значение функции в точке ХО находится с помощью функции interp(Vs,Vx,Vy,XO), где Vs - найденные коэффициенты сплайна.

Кроме того, в MathCADe можно реализовать алгоритмы построения канонического полинома (F(x) = a0+а!Х + а2х2+... + апхп) и полиномов Ньютона

(F(x) = А0 +А[ (х-х0) + А2 (х-х0Хх-х1) + ... + Ап(х-х0)(х-х1)...(х-хп_1))

^-f(x,y)=0

dx

d Условия минимума

—f(x,y)=0 dy

Поиск минимума

х= 1 у=1 f(x,y) = 0 Решение

Рис. 5

[ Лагранжа (F(x) = £ у; П - —

i=0 j=Oxi_xj

С :=

]*' Г 8 10 7 6 11 9

i := 0.. 5 х, := О

f(x) := С • х

' 12 9 25 20 17 13 > ' 60 4

М := 35 42 18 31 56 49 V = 150

, 37 53 28 24 29 30 ; , 125 ,

Given

М x>v х< 1 х>0

' 1 > 0.336 0.288 1

0.281 V 1 У

Рис. 6

Z(x,y) := sin(x+ у) Функция цели \;= 0 у := 0 Начальные приближения Given Решающий блок

(х2 + у2) < 1 х> 0 у > 0 Ограничения

Р := Maximiz<{Z,x,y) Поиск максимума функции

0.707'

Р =

0.707

Z(P0,P1) = 0.988 Решение

Рис. 7

Рассмотрим, как можно построить интерполяционные зависимости напря-

кения намагничивающего контура асинхронного двигателя (АД) от тока холосто-■о хода U0(Io) в относительных единицах. На рис. 8, 9 приведены примеры по-лроения различных интерполяционных кривых. Экспериментальные данные :ранятся в массивах U0 и 10. Они были переданы из протокола экспериментальных (анных, хранящихся в формате MS Excel.

Графики зависимостей подобранных полиномов представлены на рис. 10. Полиномы Ньютона и Лагранжа хорошо описывают физический процесс только на ограниченном интервале [0.46,1], при использовании кубического сплайна ошибки будут на интервале [0,0.4].

При построении линейной зависимости у=ах+Ь методом наименьших квадратов для нахождения коэффициентов а и Ь в МаЛСАО существуют функции 51оре(Ух,Уу) и ¡п1егсер1(Ух,Уу) соответственно. Для расчёта коэффициента корреляции можно воспользоваться функцией согг(Ух,Уу). Для подбора полинома к-го порядка необходимо с помощью функции regress(Vx,Vy,k) найти коэффициенты полинома, а затем с помощью функции Ыегр(У8,Ух,Уу,Х0) (Ув - найденные коэффициенты полинома) можно вычислить значение функции в любой точке Х0. Кроме того, в МаЛСАО существует возможность подбора параметров приближающей функции следующего вида:

Линейная интерполяция ИДО := iinterf>I0,U0,t)

Кубический сплайн

CS := csplin<10, U0) С1Д1) := internes, Ю, U0, t)

Параболический сплайн

PS := psplin^IO, UQ) РЩО := intertfPS, 10, U0, t)

Рис. 8

Полином Лагранжа

Полином Ньютона

1.. 14

Cljj := UQ

і := 2.. 14 j 2.. 14

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Рис. 9

Р(х,К|,К2,...,Кп) = К^х) + К2Р2(х)... + КпРп(х), где Р|(х) - любые известные функции. Для этого существует функция НпГИ(Ух,Уу,Р) (Р - вектор функций), которая возвращает вектор значений К. В МаШСАО 2000 появились новые функции, предназначенные для подбора коэффициентов кривых методом наименьших квадратов: expfit(Vx,Уy,Vg) - возвращает коэффициенты зависимости вида

у = аеЬх + с; - 3-х-мерный вектор начального приближения значений (а, Ь, с);

к^Ш(ух,уу^) - возвращает коэффициенты зависимости вида у = а 1п(х + Ь) + с ;

р«тт(ух,уул^) - возвращает коэффициенты зависимости вида у =ахЬ + с; эш-Гй(ух,уу^) - возвращает коэффициенты зависимости вида у = а$т(х + Ь) +с ;

^8Й1(ух,уу»у8) - возвращает коэффициенты зависимости вида у = а/И + Ье”сх I.

... Полиномы Ньютона, Лагранжа

--- Кубический сплайн

--- Параболический сплайн, линейная инерполяция

Рис. 10

Рассмотрим, как в МаЛСЛ!) может быть решена конкретная задача аппроксимации. В результате эксперимента получена зависимость потребляемой из сети мощности двигателя (при холостом ходе) от входного напряжения Ро(1Л)-Необходимо подобрать аппроксимирующую функцию. На рис. 11 показано, как

5

можно подобрать зависимости вида Р0 = , Ро = аи]+Ь,

¡=0

9 Г

Р0 =С| +С2и| , Р0 — С[С 2 +С3. Экспериментальные данные хранятся в массивах Р0 и У!.

К:=5

VVK:=regress(U 1 ,РО,К) pol(t):=interp(VVK,U 1 ,PO,t) Fl(x):=

C:=linfit(U 1 ,PO,F 1) pol2(t):= Fl(t) • С

C2:=pwrfit

U1,P0,

pwr(t):= C2j • tC22 +C23

Рис. 11

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

d С

F(x,a,b,c,d,e) := а+ Ьх + с-х Сформируем функцию ошибки

13

S(a,b,c,d,e) := (POj - F(Ulifa,b,c,d,e))2’

i =1

минимум которой необходимо искать в методе наименьших квадратов. Теперь с точки зрения математики необходимо найти такие а, Ь, с, d, е, при которых функция ошибка была минимальна (а ещё лучше равна 0). На языке MathCAD эту задачу можно сформулировать следующим образом: найти а, Ь, с, d, е, дающие наилучшее приближение к решению уравнения S(a,b,c,d,e)=0. Это позволит использовать решающий блок Given -Minerr(Vl,V2,...) (рис. 12).

а:=1 b:=l е:=1 с:=1 d:=l Given

S(a,b,c,d,e)=0

i-лЛ

b

с

d

ve у

:= Minerra(a, b, с, d, e)

Рис. 12

На рис. 13 показаны графики различных подобранных зависимостей Р0(и,).

U1

ООО Экспериментальные точки

---- a+bUlAd+cUlAe

---- aUl+b

---- Полином пятой степени

.... a+bUlA2

Рис. 13

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

ЛИТЕРАТУРА

1. Вентцель Е. С. Исследование операций. М., Сов.,радио, 1972, 552с.

2. Дьяконов В. В. Справочник по MathCAD PLUS 7.0‘Рго. М., СК Пресс, 1998, 352с.

i Надоели баннеры? Вы всегда можете отключить рекламу.