Более сложную задачу представляет передача данных (массивов, матриц) из пакета Mathematica в MathCAD, Excel. Дело в том, что при записи данных в файл Mathematica не создаёт чистый текстовый файл, а пишет в файл кроме числовых значений ряд своих символов (" и \n). Созданные Matematicой файлы нельзя будет считать с помощью MathCAD и Excel. Наиболее приемлемый для дальнейшего чтения файл создаётся конструкцией, изображённой на рисунке
In[13]:=m= 1, 2, 3 , 4. ,7. ,8.65, 2.4 8.,7.1 Ц
Out[13]= 1,2,3, 4.S7.98.6S, 2.48.97.1 1
In[14]:=ToString m TableForm 1
Out[14]1 2 3
4. S 7.9 8.65
@ @ 8 D
2.4 8.9 7.1
In[15]:=m1=ToStringLbleFormTableSpaa-i.ng, 1
Out[15]1 2 3
4.57.98.65 2.48.97.1
In[16]: m1>>primer Ц
Этот документ создаёт следующий файл primer "1 2 3\n4.5 7.9 8.65\n2.4 8.9 7.1"
Для преобразования подобных файлов нами была написана программа perevod (на языке Turbo Pascal), которая убирает из файла символы “ и \n и разделяет набор чисел на нужное количество строк.
После обработки этой программой файл primer примет вид 1 2 3 4.5 7.9 8.65 2.4 8.9 7.1
В пакете Mathematica существует возможность вызова внешней программы. Для этого служит команда !<имя_программы>. Следовательно, после записи файла с массивом (матрицей) на диск можно выполнить команду !perevod для преобразования выходного файла, созданного программой Mathematica. Теперь содержимое файла primer можно считать в MathCAD функцией READPRN или открыть средствами MS EXCEL.
Е. Р. Алексеев, О. В. Чеснокова, Л. С. Сорокина, А. А. Тарасов ОБ ОПЫТЕ ИСПОЛЬЗОВАНИЯ ПАКЕТА MATHCAD 2000 В ИНЖЕНЕРНЫХ РАСЧЁТАХ
Система MathCAD традиционно занимает особое место среди множества математических систем и по праву может называться одной из самых эффективных и универсальных. Она позволяет выполнять численные и аналитические вычисления, имеет чрезвычайно удобный математически ориентированный интерфейс и прекрасные средства графики. МаШСАЭ - это мощный математический инструмент для пользователей, работающих в области техники или естественных
наук. В предлагаемой работе на нескольких примерах демонстрируются богатые возможности MathCAD, позволяющие осуществлять решение распространенных и довольно сложных инженерных задач.
Довольно часто в инженерной практике встречаются задачи решения нелинейных уравнений и систем. Для простейших уравнений вида F(x)=0 решение находится с помощью функции root(F(x),x,a,b), а, b - необязательные параметры, определяющие интервал изоляции корня. Возможность указания интервала изоляции в функции root появилась в MathCAD 2000. Эта функция возвращает значение с точностью TOL (TOL - константа MathCAD, определяющая точность решения). Функция реализует вычисления итерационным методом, причем можно задать начальное значение переменной.
При решении задачи расчёта охлаждения неограниченной пластины необходимо было найти корни уравнения ctg(x)=x/Bi (Bi - константа). Известно, что корни находятся на интервалах [(i-1)n; in/2], i=1,2,.... Решение этого нелинейного уравнения с помощью функции root приведено на рис. 1.
i := 1.. N
Ki := root
x
cot(x) ------
V BV
, x, (i - 1) • n + 0.01, i •
n - — + 0.01 2
KT =
1 2 3 4 5 6 7
1 0.860334 3.425618 6.437298 9.529334 12.645287 15.771285 18.90241
Рис. 1
При решении систем уравнений используется специальный решающий блок, открываемый служебным словом Given, за которым должны следовать уравнения и ограничительные условия. Завершается решающий блок функциями Find, Minerr или функциями Maximize, Minimize, которые являются нововведением MathCAD 2000. Функция Find(v1,v2,...,vn) возвращает значение переменных для точного решения. Функция Minerr(v1,v2,...,vn) используется в случае, когда точного решения не существует, и возвращает значения переменных, дающие наилучшее приближение к решению. Функция Minimize(f,v1,v2,...,vn) (Maximize(v1,v2,...,vn)) возвращает значения переменных, при которых функция f достигает минимального (максимального) значения.
Использование функции Find рассмотрим на примере поиска точек пересечения параболы отрезком прямой. График (рис. 2) показывает, что парабола y=x2 и прямая y=8+3x пересекаются в двух точках.
n
Таким образом, решается система из двух уравнений с ограничительными условиями, задающими область поиска корня (см. рис. 3).
x : = 0 у = 0
Given
y=x2 у=8^З -x
xo xo -1.702
: = Find (x, у) =
.V .V 2.895
x-З y-0
Given
y=x ^^З-x x> 0
x) x) 4.702
-Finc(x, y) =
У0 yo 22.105
2
У - x у - 8 - З'
solve,
x Л
y0
Рис. 3
Системы уравнений в MathCAD можно решать символьно. Для этого служит команда solve из символьной палитры инструментов. На рис. 4 представлен пример решения задачи пересечения параболы и прямой в символьном виде.
г 3 1 25 3 Л
- + --V41 — + --V41 *
2 2 2 2
3 1 25 3
--- -741 — .
ч 2 2 2 2 J
Рис. 4
С помощью функции Minerr возможен поиск экстремума функции ряда переменных. Типичной тестовой функцией двух переменных является функция Розенброка [2], обычно применяемая для тестирования программ минимизации функций ряда переменных. Рис. 5 демонстрирует поиск минимума этой функции.
Большой прикладной интерес представляет использование MathCAD для исследования задач линейного и нелинейного программирования. Рассмотрим задачу линейного программирования [1]. Найти минимум функции f(X)=CX, где С - вектор коэффициентов функции цели, Х - вектор неизвестных, при матричной системе ограничений MX=V.
8З
= 1 у:=1
f(x,y):=lQ0( y-x2) +(^x)2
Given
d
dx
f(x,y)=0
d
x
_y_
x = 1
f(x,y)=0
Поиск минимума
Функция Розенброк
Условия минимума
dy
miner(x, y)
y = 1 f(x,y) = 0
Решение
Рис. 5
Для решения поставленной задачи необходимо определить начальные значения для переменных и условий, а также целевую функцию f(x). Решение конкретной задачи линейного программирования с помощью решающего блока Given - Minimize приведено на рис. 6
f(x)
8 10 7 6 11
9 J C ■ x
0.. 5
' 12 9 25 20 17 13 6 о
M := 35 42 18 31 56 49 v := 150
37 53 28 24 29 30 0 125
Given
M■x>v x< 1
x > 0
Minimizf, x) =
1
0.336
0.288
1
0.281 1
Рис. 6
Теперь рассмотрим задачу нелинейного программирования. Требуется найти максимум нелинейной функции при нелинейных условиях. Пример решения задачи приведён на рис. 7.
В инженерных расчётах часто встречаются задачи интерполяции и аппроксимации, для решения которых МаШСАБ предоставляет широкие возможности.
x
C
Z(x,y) := sin(x + y) Функция цели
x:= 0 y := 0 Начальные приближения
Given Решающий блок
(x2 + y2) < 1 x > 0 y > 0
Ограничения
P := MaximizeZ, x, y)
Поиск максимума функции
( 0.707
P =
Z(P0, P1) = 0.988 Решение
Рис. 7
0.707
В МаЛСАБ есть следующие функции интерполяции:
1) Ип1егр(Ух, Уу, Х0). Эта функция предназначена для вычисления значения функции в точке Х0 с помощью линейной интерполяции, Ух, Уу -массивы X и У координат экспериментальных точек (значения в массиве Ух должны располагаться по возрастанию).
2) е«рИпе(Ух, Уу), р«рИпе(Ух, Уу), р«рИпе(Ух, Уу). Эти функции предназначены для построения коэффициентов кубического, параболического и линейного сплайнов, значение функции в точке Х0 находится с помощью функции т1егр(Уз,Ух,Уу,Х0), где Vs - найденные коэффициенты сплайна.
Кроме того, в МаШСАБе можно реализовать алгоритмы построения канонического полинома (F(x) = a0 + a1x + a2x2 +... + anxn ) и полиномов Ньютона
( F(x) = A0 + A1 (x-x0) + A2 (x-x0)(x-x1) + ... + An(x-x0)(x-x1) ... (x-xn_1) ) и Лагранжа (F(x) = £Yiд x~xJ ).
Рассмотрим, как можно построить интерполяционные зависимости напряжения намагничивающего контура асинхронного двигателя (АД) от тока холостого хода U0(I0) в относительных единицах. На рис. 8, 9 приведены примеры построения различных интерполяционных кривых. Экспериментальные данные хранятся в массивах U0 и I0. Они были переданы из протокола экспериментальных данных, хранящихся в формате MS Excel.
,=0 j=0 xi - Xj
j*i
Eelaelay eloaSiieyoey
PS := psplin((I0,U0) PUI(t) := interpPS,I0,U0,t)
Рис. 8
Графики зависимостей подобранных полиномов представлены на рис. 10. Полиномы Ньютона и Лагранжа хорошо описывают физический процесс только на ограниченном интервале [0.46,1], при использовании кубического сплайна ошибки будут на интервале [0,0.4].
11ёе111 Ёааба1жа
14 14 , ч
Ь>8«):= £ Ш,П 1,^)
1 = 1 } = 1 ^ '
11ёе111 1й^б11а 1 := 1.. 14 С1;, 1 := и0(
1 := 2.. 14 } := 2.. 14
С11, ;Н С1;Н,1-1 ) 101 -101-1 0
14 14
Й<1) :=£ С11,1-П ^0 > 1 - 1 > 1 >1 - 101)
1 = 1 1 = 1
Рис. 9
ООО Экспериментальные точки
..... Полиномы Ньютона, Лагранжа
----- Кубический сплайн
----- Параболический сплайн, линейная инерполяция
При построении линейной зависимости у=ах+Ь методом наименьших квадратов для нахождения коэффициентов а и Ь в МаЛСАБ существуют функции *1оре(Ух,Уу) и т1егеер1(Ух,Уу) соответственно. Для расчёта коэффициента корреляции можно воспользоваться функцией еогг(Ух,Уу). Для подбора полинома к-го порядка необходимо с помощью функции ге§ге**(Ух,Уу,к) найти коэффициенты полинома, а затем с помощью функции т1егр(У*,Ух,Уу,Х0) (У* - найденные коэффициенты полинома) можно вычислить значение функции в любой точке Х0. Кроме того, в МаЛСАБ существует возможность подбора параметров приближающей функции следующего вида:
F(x,K1,K2,...,Kn) = К^(х) + К^2(х)...+ К^п(х), где Г1(х) - любые известные функции. Для этого существует функция ЦпШ(Ух,Уу,Г) (Г - вектор функций), которая возвращает вектор значений К. В МаЛСАБ 2000 появились новые функции, предназначенные для подбора коэффициентов кривых методом наименьших квадратов: ехрШ(Ух,Уу,У§) возвращает коэффициенты зависимости вида у = аеЬх + с ; у§ - з -х-мерный вектор начального приближения значений (а, Ь, с); 1о§Ш(ух,уу,у§) - возвращает коэффициенты зависимости вида
у = а 1п(х + Ь) + с ; pwrfit(vx,vy,vg) - возвращает коэффициенты зависимости вида
у = ахЬ + с; *тШ(ух,уу,у§) - возвращает коэффициенты зависимости вида у = а sin(x + Ь) + с ; 1§*Ш(ух,уу,у§) - возвращает коэффициенты зависимости вида у = а/ (1 + Ье-сх).
Рассмотрим, как в МаЛСАБ может быть решена конкретная задача аппроксимации. В результате эксперимента получена зависимость потребляемой из сети мощности двигателя (при холостом ходе) от входного напряжения Р 0(и ^). Необходимо подобрать аппроксимирующую функцию. На рис. 11 показано, как
5
можно подобрать зависимости вида Р0 = £а1и1 , Р0 = аИ1 + Ь , Р0 = С1 + С2и2,
1=0
Р0 = С^С2 + С3. Экспериментальные данные хранятся в массивах Р0 и и\.
К := 5
УУК := regress(U1,Р0,К) ро1(1 := Ыегр^К,иі,Р0,1)
Ґ Л \
F1(x) :=
1
2
X
V /
С := НпЩШ, Р0, F1) ро12(0 := F1(t) С
С2 := pwrfi
иі, Р0.
V0/
pwr(t) := С21 -1С2г+ С23
Рис. 11
Довольно интересным способом подбора параметров функции любого вида, на наш взгляд, является метод, основанный на определении метода наименьших квадратов. Рассмотрим его более подробно на примере зависимости Р0(иі).
Определим функцию, параметры которой будем определять (это может быть любая функция):
F(x, a, b, c, d, e) := a + bxd + c xe
Сформируем функцию ошибки
13
S(a,b, c, d, e) := £ (P0i - F(U1i, a,b, c, d, e))2 ’ минимум которой необходимо ис-i =1
кать в методе наименьших квадратов. Теперь с точки зрения математики необходимо найти такие a, b, c, d, e при которых функция ошибка была минимальна (а ещё лучше равна 0). На языке MathCAD эту задачу можно сформулировать следующим образом: найти a, b, c, d, e, дающие наилучшее приближение к решению уравнения S(a,b,c,d,e)=0. Это позволит использовать решающий блок Given -Minerr(V1,V2,...) (см. рис. 12).
a := 1 b := 1 e := 1 c := 1 d := 1
Given
S(a, b, c, d, e) = 0
/ \ a
:= Mmerfa, b, c, d, e)
Рис. 12
На рис. 13 показаны графики различных подобранных зависимостей Ро^).
ш
ООО Экспериментальные точки
---- а+ЬИ1М+си1Ле
--- аИ1+Ь
---- Полином пятой степени
... а+ЬИ1Л2
В представленной работе была изложена лишь небольшая часть возможностей использования MathCAD при расчётах электрических машин, в задачах горной промышленности и теплотехнических расчётах. Наш опыт показывает, что современные версии MathCAD являются универсальным инструментом в инженерной практике.
ЛИТЕРАТУРА
1. Вентцель Е. С. Исследование операций. М.: Сов. радио, 1972. 552с.
2. Дьяконов В. В. Справочник по MathCAD PLUS 7.0 Pro. М.: СК Пресс, 1998. 352с.
А. В. Кизим, А. М. Дворянкин, В.П.Шевчук АВТОМАТИЗИРОВАННОЕ РАБОЧЕЕ МЕСТО ГЛАВНОГО КОНСТРУКТОРА ИЗДЕЛИЙ МАШИНОСТРОЕНИЯ
В настоящее время машиностроительные предприятия вынуждены контролировать весь жизненный цикл выпускаемой продукции от выявления потребности до утилизации. Заводы отвечают за последствия проектирования своей собственной экономикой. Как известно, проектирование технических систем (ТС) начинается с выявления потребности общества в реализации определенной функции. Далее разрабатывается процесс получения определенного продукта. Ставится задача на проектирование машины, реализующей данный процесс. Разрабатывается спектр технических требований (ТТ) к машинно-техническому комплексу (МТК) и его отдельным компонентам.
На главного конструктора (ГК) ТС ложится большая ответственность. Ранее ГК обычно не участвовал в первичных этапах проектирования ТС. Работа ГК начиналась с получения готовых ТТ и разработки технического задания (ТЗ) на проектируемую ТС. ГК согласовывал ТЗ с поставщиками ТТ с огромным научным и интеллектуальным потенциалом, которыми являлись различные министерские организации (например, ВИМ, ВИСХОМ, НАТИ, различные ЦНИИ), выполнявшие функции генераторов, хранителей, и поставщиков информации для предприятий-потребителей. Сейчас разрушены связи и ликвидированы многие интеллектуальные центры поддержки ГК. Оставшиеся организации функционируют слабо, не реализуя полностью свои функции. В США и других промышленно развитых странах существует развитая сеть поддержки производителей. В частности, система университетов с исследовательскими подразделениями. Университеты и институты заключают контракты с производителями или организационно входят в корпорации. В России выявление ТТ и выполнение других проектных процедур в данный момент в большинстве случаев производят неспециалисты. Отсюда низкое качество наших машин. В силу вышесказанного необходимо как можно скорее тесно связывать российских производителей с институтами и университетами, заключать хоздоговора на проведение исследовательских работ и обеспечивать полную информационную поддержку всех этапов проектирования и производства.
Для заполнения информационного вакуума необходима разработка автоматизированного рабочего места (АРМ) интеллектуальной поддержки ГК, одной из важных функций которого является аккумуляция и формализация знаний об объ-