Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Моделирование функционирования изделий и технологических процессов в системах компьютерной математики

..pdf
Скачиваний:
1
Добавлен:
12.11.2023
Размер:
1.6 Mб
Скачать

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

t0 := 0

 

 

 

 

 

 

 

 

 

init_cd := 0

final_t := 15000

 

 

 

 

 

Nsteps := 100000

 

 

 

 

 

 

 

 

T (t) :=

1000

 

t if

t 3600

 

 

 

 

F

 

3600

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1000

otherwise

 

 

 

 

 

k :=

0.04

 

 

 

 

 

 

 

 

 

 

60

 

 

 

 

 

 

 

 

 

D(t , T) := k (TF(t) T0)

 

 

 

 

 

 

S := rkfixed(init_cd , t0 , final_t, Nsteps, D)

 

 

 

 

1000

 

 

 

 

 

 

 

 

 

 

800

 

 

 

 

 

 

 

 

 

S 1

600

 

 

 

 

 

 

 

 

 

TF(t)

400

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

200

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

.

4

.

4

 

0

2000

4000

6000

8000

 

1 10

1.2 10

 

 

 

 

 

S 0

, t

 

 

 

 

Рис. 26. Решение задачи о нагреве металла

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

61

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

От этого недостатка свободны системы подвески, в которых используются пружины с нелинейной характеристикой х, жёсткость которых прогрессивно увеличивается при больших отклонениях от «рабочей точки» (рис. 27).

x

k1

c

m

k2

Рис. 27. Схема к расчёту виброизоляции конструкции

Устройство состоит из массы m, связанной с жёсткой стенкой через пружину постоянной жёсткости k1, демпфер с коэффициентом демпфирования с и пружину с нелинейной характеристикой, создающую восстанавливающую силу, равную произведению постоянной k2 на смещение в третьей степени. Такая «кубическая» пружина имеет симметричную нелинейную характеристику, обеспечивающую защиту от ударных и вибрационных нагрузок.

Движение системы описывается нелинейным дифференциальным уравнением:

m d 2 x

+ c dx + k x + k

 

x3 = 0.

dt2

dt

1

 

 

2

 

Пусть постоянные,

входящие в

систему, имеют значения:

k1 = 0,4 Н/см, k2 = 2 Н/см3, с = 0,15 Н с/см, m = 0,1 кг.

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

 

 

 

 

 

 

x(0) = 10 см,

dx

 

 

 

= 0.

 

 

62

 

dt

 

t=0

 

 

 

 

 

 

 

 

 

 

Решить уравнение движения, построить график зависимости координаты x от времени.

Решение задачи представлено на рис. 28. Из представленного графика зависимости смещения от времени следует, что частота колебаний системы зависит от амплитуды. Именно так обычно и ведут себя нелинейные системы, содержащие пружины, жёсткость которых при сжатии увеличивается.

m := 1 k

 

:=

 

 

2

 

 

k

:=

 

 

2

 

 

 

c :=

0.15

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

5

102

2

 

 

106

 

 

102

 

 

 

 

 

 

 

 

 

 

init_vals :=

 

 

0.1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

init_t := 0

 

 

 

 

final_t := 1

 

 

 

 

 

Nsteps := 10000

 

 

 

 

 

 

 

 

 

x1

 

 

 

 

 

 

 

 

D(t , x) :=

c

 

x1

k1

x0

k2

 

(x0)

3

 

 

 

 

 

 

 

 

 

 

m

m

m

 

 

 

 

 

 

 

 

 

 

 

 

 

S := rkfixed(init_vals, init_t , final_t , Nsteps, D) i := 0 .. Nsteps

0.1

0.05

(S 1 )i 0

0.05

0

0.2

0.4

0.6

0.8

1

(S 0 )i

Рис. 28. Решение задачи о перемещении системы

63

Контрольные вопросы и задания

1.Для чего предназначена функция rkfixed и что представляют собой её аргументы?

2.Для чего предназначена функция rkadapt и что представляют собой её аргументы?

3.Как работает функция odesolve и каковы её аргументы?

4.Чем отличается функция rkfixed от функции rkadapt?

5.Сформулируйте правила и технологию записи дифференциального уравнения для использования в качестве аргумента функции rkfixed.

6.Какая известная вам функция решения ДУ использует естественную (прямую) запись дифференциального уравнения?

7.Сколько элементов имеет вектор, обозначающий ДУ, при использовании функций rkfixed и rkadapt?

8.Как записываются начальные условия ДУ при использова-

нии функций rkfixed и rkadapt?

9.Для чего предназначена функция stiffb и что представляют собой её аргументы?

10.Для чего предназначена функция stiffr и что представляют собой её аргументы?

11.Для чего предназначена функция radau и что представляют собой её аргументы?

12.Запишите для использования в качестве аргумента функции rkfixed вектор, обозначающий дифференциальное уравнение

d 3 x(t)

dx2

(t)

2

dx(t)

+ (x(t))

4

= 5xe

x

.

dt

3

dt

2

 

+ k

dt

 

 

 

 

 

 

 

 

 

 

 

 

13.Какие объекты формируются при реализации функций rkfixed и rkadapt и какова структура этих объектов?

14.Используя функции численного решения, выполните решение следующих дифференциальных уравнений:

64

№ 1

4

d 2 y(x)

 

dy(x) + 10y(x) = 0;

№ 4

d 3 x(t) = − dx2 (t) ;

 

 

 

 

dx2

 

 

 

 

 

dx

y/ (0) = 4

 

 

dt3

 

 

dt2

 

 

y(0) = 0 ,

 

x(0) = 1 , x/ (0) = 0 , x// (0) = 1

№ 2

 

L d

2

q(t) + R dq(t) +

№ 5

 

d

2

y(x)

y(x) = x;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dt2

 

dt

 

 

 

dx2

y/ (0) = 4

 

 

+

 

 

 

1

 

q(t) = E(t);

 

y(0) = −2 ,

 

 

 

 

C

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

q(0) = 0 , q/ (0) = 0;

 

 

 

 

 

 

 

 

 

 

C = 0,01; L = 23; R = 100;

 

 

 

 

 

 

 

 

 

 

E(t) = 5cos(t)

 

 

 

 

 

 

 

 

№ 3

 

3 d

2

x(t) + 2 dx(t) +

№ 6

 

d

3

x(t)

= x(t);

 

 

 

 

 

 

 

 

 

 

 

dt2

 

dt

 

 

 

 

dt3

 

 

 

+ 10x(t) = 3cos(t);

 

x(0) = 1 ,

 

x/ (0) = 2 , x/ / (2) = 3

 

 

x(0) = 0 ,

x/ (0) = 3

 

 

 

 

 

 

 

 

65

РАЗДЕЛ 5. РЕШЕНИЕ ЗАДАЧ АППРОКСИМАЦИИ И ИНТЕРПОЛЯЦИИ, ОБРАБОТКИ ЭКСПЕРИМЕНТАЛЬНЫХ ДАННЫХ (ПОСТРОЕНИЕ МОДЕЛЕЙ ИДЕНТИФИКАЦИИ

ТЕХНИЧЕСКИХ ОБЪЕКТОВ) В СИСТЕМЕ MathCAD

5.1.Общие подходы к построению моделей идентификации в системе MathCAD

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

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

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

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

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

менной – аргумента – должны быть упорядочены по возрас-

танию.

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

66

5.2.Функции решения задач интерполяции

всистеме MathCAD

Всреде MathCAD для решения этих задач имеется инструментарий: средства линейной интерполяции (функция linterp) и интерполяции кубическими сплайнами (функции interp, lspline, pspline, cspline).

Для решения задач интерполяции применяются следующие функции:

linterp(X,Y,x). Аргументы функции – векторы исходных данных X и Y и непрерывный аргумент x. Возвращает непрерывную функцию аргумента x, состоящую из набора отрезков (линейных функций). Данная функция объединяет два этапа решения задачи, описанные в подразд. 5.1;

lspline(X,Y). Аргументы функции – векторы исходных данных X и Y. Возвращает коэффициенты сплайнов – парабол 3-й степени (особенность: конечные отрезки – прямые линии, т.е. они аппроксимируются линейными функциями);

pspline(X,Y). Аргументы функции – векторы исходных данных X и Y. Возвращает коэффициенты сплайнов – парабол 3-й степени, но в конечных точках функция является параболической;

cspline(X,Y). Аргументы функции – векторы исходных данных X и Y. Возвращает коэффициенты сплайнов – парабол 3-й степени. Эти три последние функции применяются на первом этапе решения задачи;

interp(cspline(X,Y),X,Y,x). Аргументы функции – коэф-

фициенты сплайнов (результат работы функции cspline), векторы исходных данных X и Y и непрерывный аргумент x. Возвращает непрерывную функцию аргумента x, состоящую из набора сплайнов. Применяется на втором этапе решения задачи.

На рис. 29 представлено решение задачи интерполяции кубическими сплайнами. В качестве векторов X и Y исходных данных использованы элементы матрицы A. На графике показана интерполирующая зависимость, а также исходные данные (матрица A).

67

 

0.14

0.28

0.56

0.84

1.12

1.4

 

1.68

1.96

2.24

2.52

2.66

2.8

T

A :=

0.85

0.84

0.58

0.52

0.37

0.33

0.24

0.215

0.16

0.14

0.11

0.099

 

 

 

S := cspline(A 0

, A 1

)

 

 

 

 

 

 

 

 

 

fit(x) := interp(S , A

0

, A 1

, x)

 

 

 

 

 

 

 

 

 

0.8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fit(x)

0.6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A 1

0.4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0.2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

0

0.5

1

1.5

2

2.5

3

 

 

 

 

 

 

 

 

 

 

 

 

x , A 0

 

 

 

 

 

 

 

 

 

 

Рис. 29. Интерполяция кубическими сплайнами в системе MathCAD

 

5.3. Функции решения задач аппроксимации в системе MathCAD

Для решения задач аппроксимации в системе MathCAD используются следующие функции: linfit (линейная регрессия общего вида), genfit (нелинейная регрессия общего вида), intercept и slope (линейная регрессия частного вида), expfit, logfit, regress и другие специальные формы аппроксимирующих функций. Также совместно со специальными формами аппроксимирующих функций может использоваться функция interp для построения результирующей зависимости (например, в случае использования функции regress).

Линейная регрессия (частный вид) – приближение функциональной зависимостью вида

h(x) = a + bx.

Для её получения используются функции:

intercept(X,Y). Аргументы функции – векторы исходных данных X и Y. Возвращает значение свободного члена b;

68

slope(X,Y). Аргументы функции – векторы исходных данных X и Y. Возвращает значение углового коэффициента a.

На рис. 30 представлено решение такой задачи.

b := intercept(A 0

, A 1 )

a := slope(A

0

, A 1 )

a = −0.275

b = 0.788

h(x) := a x + b

0.8

h(x) 0.6

A 1 0.4

0.2

0 0

0.5

1

1.5

2

2.5

3

 

 

x , A 0

 

 

 

Рис. 30. Получение линейной зависимости для табличных данных

На рис. 31 представлено решение задачи получения зависимости вида

x

h(x) = с0 + с1x + c2e10 .

Для этого используется функция linfit(X,Y,F). Аргументы функции – векторы исходных данных X, Y и вектор F функций gk, линейная комбинация элементов которого аппроксимирует исходные данные (см. подразд. 1.5.3). Возвращает значение коэффициентов ck. Далее полученная функциональная зависимость задаётся формулой:

h(x) = F(x) linfit.

69

Нелинейная регрессия общего вида осуществляется функцией genfit(X,Y,Pg,F). Аргументы функции – векторы исходных данных X, Y, вектор F, который содержит искомую функцию и её частные производные по определяемым параметрам (определяемые параметры при этом задаются в виде элементов вектора с матричными индексами), и Pg – вектор первоначальных данных (начальных приближений) искомых параметров. Функция возвращает значения параметров искомой зависимости при наилучшем среднеквадратическом приближении.

 

 

 

1

 

 

 

 

 

x

 

 

F(x) :=

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

exp

 

 

 

10

 

 

 

 

 

S := linfit(A

0

, A 1 , F)

 

17.755

 

 

 

 

 

 

 

 

 

 

S =

2.447

 

 

 

 

 

18.689

 

 

 

 

 

 

 

 

 

h(x) := F(x) S

 

0.8

 

 

 

 

 

 

 

h(x)

0.6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A 1 0.4

 

 

 

 

 

 

 

 

0.2

 

 

 

 

 

 

 

 

0

0

0.5

1

1.5

2

2.5

3

 

 

 

 

x , A 0

 

 

 

Рис. 31. Аппроксимация исходных данных функциональной зависимостью в форме линейной комбинации заданных функций

На рис. 32 представлено решение задачи получения зависимости вида

70

Соседние файлы в папке книги