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

informatika / инфа / ustojchivost_szhatogo_sterzhnja_i / Занятие 3 - Устойчивость сжатого стержня

.doc
Скачиваний:
30
Добавлен:
03.03.2015
Размер:
121.86 Кб
Скачать

Устойчивость сжатого стержня

Уравнения изгиба центральной линии стержня:

(1)

Если разбить балку на дискретные интервалы длины точками

и аппроксимировать 2-ю производную, то получаем:

(2)

Данная линейная система с учётом краевых условий имеет вид:

,

(3)

где

,

трех диагональная матрица размерности и диагональная матрица :

.

Из теории известно, что для уравнения (3) существует ненулевое значение и соответствующий вектор

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

Задаётся , где - номер группы, а - номер студента по журналу. При и , представлено решение задачи : минимальная сила и определён соответствующий собственный вектор (прогиб по первой форме).

Программа на QBASIC 4.5:

'*************** EigSter.bas 132 str.*******************************

CLS

e1 = 1E-08

n0 = 20

n1 = (n0 + 1) * n0 / 2

'

DIM aa(n0, n0), bb(n0, n0), cc(n0, n0), EigVec(n0, n0)

DIM Eig(n0), dl(n0), a0(n1)

'

S = 3 : G = 12

REM ************** Obnulenie *************************

FOR i = 1 TO n0

Eig(i) = 0

FOR j = 1 TO n0

EigVec(i, j) = 0!: aa(i, j) = 0!: bb(i, j) = 0!

NEXT j: NEXT i

REM ************ Nachal. ustanovki *******************

n = 7

dl0 = 1!: h = dl0 / (n + 1)

Tol = e1

FOR i = 1 TO n

x = h * i

FOR j = 1 TO n

bb(i, j) = 0!: aa(i, j) = 0!

IF ABS(i - j) = 1 THEN aa(i, j) = -1!

aa(i, i) = 2!

bb(i, i) = 1! / ((((G + S) / 2) * x * (dl0 - x)) / h / h)

NEXT j

NEXT i

REM

REM ******************* MODIF REDAC1 ***************************

FOR i = 1 TO n

dl(i) = SQR(bb(i, i))

NEXT i

REM //

FOR i = 1 TO n

FOR j = i TO n

aa(j, i) = aa(i, j) / dl(i)

NEXT j

NEXT i

REM //

FOR j = 1 TO n

FOR i = j TO n

aa(i, j) = aa(i, j) / dl(i)

NEXT i

NEXT j

REM *** end MODIF Redac1 ******

'

'***************** For SobstvZnach *****************

FOR i = 1 TO n

FOR j = 1 TO i

a0(j + i * (i - 1) / 2) = aa(i, j)

NEXT j: NEXT i

'****************************************************

'

REM ******** SobstvZnach ***********

'

w = n * (n + 1) / 2

v = w + n

h = 0: k = n

REM //

FOR bt = 1 TO k

REM ****************

FOR i = 1 TO n

a0(w + i) = 1

NEXT i

f = 0

m0 = 0

70 FOR i = 1 TO n

a0(v + i) = 0

FOR j = 1 TO i

a0(v + i) = a0(v + i) + a0(i * (i - 1) / 2 + j) * a0(w + j)

NEXT j

NEXT i

m0 = m0 + 1

REM //

FOR j = 1 TO n - 1

FOR i = j + 1 TO n

a0(v + j) = a0(v + j) + a0((i * (i - 1)) / 2 + j) * a0(w + i)

NEXT i

NEXT j

REM //

p = 0: r = 0

FOR i = 1 TO n

p = p + a0(v + i) * a0(v + i)

r = r + a0(w + i) * a0(v + i)

NEXT i

L = p / r: c = SQR(p): p = 0

FOR i = 1 TO n

a0(w + i) = a0(v + i) / c

IF ABS(a0(w + i)) >= p THEN

p = ABS(a0(w + i))

END IF

NEXT i

IF m0 > 1500 THEN 90

IF ABS(p - f) > e1 THEN

f = p: GOTO 70

END IF

Eig(bt) = L

FOR i = 1 TO n: EigVec(bt, i) = a0(w + i): NEXT i

IF bt = k THEN 80

FOR i = 1 TO n

FOR j = 1 TO i

d = i * (i - 1) / 2 + j

a0(d) = a0(d) - L * a0(w + i) * a0(w + j)

NEXT j

NEXT i

NEXT bt

90 REM

REM ***************End SobstvZnach*******************

'

80 REM

FOR k = 1 TO n

FOR i = 1 TO n

EigVec(k, i) = EigVec(k, i) / dl(i)

NEXT i

NEXT k

'

'************ Normirovka ******************************************

FOR m = 1 TO n

h1 = 0!

FOR i = 1 TO n: h1 = h1 + (EigVec(m, i)) ^ 2: NEXT i

h1 = SQR(h1)

FOR i = 1 TO n: EigVec(m, i) = EigVec(m, i) / h1: NEXT i

NEXT m

'***************************************************************

FOR m = 1 TO n

PRINT " m = "; m; " Sobstv znach = "; Eig(m)

FOR i = 1 TO n: PRINT " ", EigVec(m, i); " ": NEXT i

PRINT

Pause$ = INPUT$(1) ' Wait for a keystroke.

NEXT m

END

Результаты работы программы

m = 1 Sobstv znach = 420

3.289761E-02 -.1973856 .4934638 -.6579516 .4934638 -.1973856 3.289761E-02

m = 2 Sobstv znach = 314.9999

-.109108 .4364337 -.5455446 2.038468E-06 .545545 -.4364378 .1091099

m = 3 Sobstv znach = 225

.2375962 -.5430779 3.394526E-02 .5430755 3.393878E-02 -.5430727 .2375949

m = 4 Sobstv znach = 150

.384175 -.3292928 -.4939392 -5.901333E-08 .4939391 .3292928 -.3841749

m = 5 Sobstv znach = 90

.4719397 .1348402 -.3370999 -.5393602 -.3370999 .1348402 .4719399

m = 6 Sobstv znach = 15

.211829 .3631355 .4539202 .4841823 .4539204 .3631381 .2118303

m = 7 Sobstv znach = 45

.4213507 .4815436 .3009649 2.970834E-07 -.3009644 -.4815432 -.4213503