.


:




:

































 

 

 

 


.

 

1.1 : . , .

 

N
   

 

 

2. Visual Basic

2.1

. . , Line , . , .

. , , :

, , "", "" 0, "x" "y" - , . "d", - , .

y , (y=kx+c) "c", "x" "y", "k" ,

, , , RGB Line ,

. . , 0.

, , 0, 0 , , Do While , , .

- , , , "y" , , , "x", ,

(RGB) (Line) .

 

Dim x(100), y(100), r(100), c(100), k(100), px(10000), py(10000), x1(100), y1(100)

Dim color As Long

Private Sub Command1_Click()

'Çàäà¸òñÿ êîîðäèíàòíàÿ ñåòêà

color = RGB(176, 176, 176)

For i = 1 To 10000 Step 200

Form1.Line (0, i)-(10000, i), color

Form1.Line (i, 0)-(i, 10000), color

Next i

color = RGB(0, 0, 0)

Form1.Line (0, 5000)-(10000, 5000), color

Form1.Line (5000, 0)-(5000, 10000), color

End Sub

 

Private Sub Command2_Click()

' Çàäàþòñÿ òî÷êè, îïèñûâàþùèå áàê è ïîëîæåíèå äàò÷èêà

n = 21

x(1) = 1.17

y(1) = 0.03

x(2) = 1.07

y(2) = 0.23

x(3) = 1.03

y(3) = 0.39

x(4) = 0.83

y(4) = 0.58

x(5) = 0.57

y(5) = 0.68

x(6) = 0.37

y(6) = 0.72

x(7) = -0.43

y(7) = 0.78

x(8) = -0.63

y(8) = 0.73

x(9) = -0.77

y(9) = 0.63

x(10) = -1.03

y(10) = 0.48

x(11) = -1.53

y(11) = 0.03

x(12) = -1.13

y(12) = -0.07

x(13) = -0.63

y(13) = -0.37

x(14) = -0.23

y(14) = -0.68

x(15) = 0.17

y(15) = -0.73

x(16) = 0.37

y(16) = -0.73

x(17) = 0.63

y(17) = -0.64

x(18) = 0.77

y(18) = -0.63

x(19) = 0.98

y(19) = -0.43

x(20) = 1.07

y(20) = -0.17

x(21) = 1.17

y(21) = 0.03

'çàäà¸ì êîîðäèíàòû äàò÷èêà

Z1 = Text10

Z2 = Text10

 

Q1 = 0.73

Q2 = -0.73

 

' Çàäà¸ì ïîëîæåíèå äàò÷èêà, áàêà ïðè çàäàííîì óãëå òàíãàæà

A = Val(Text5.Text) * (3.1415926535 / 180)

If A > 0 Or A < 0 Then

For i = 1 To n Step 1

r(i) = Sqr(x(i) * x(i) + y(i) * y(i))

B = Atn(y(i) / x(i))

D = A + B

If x(i) > 0 Then

x(i) = r(i) * Cos(D)

y(i) = r(i) * Sin(D)

Else

x(i) = -r(i) * Cos(D)

y(i) = -r(i) * Sin(D)

End If

Next i

 

B1 = Atn(Q1 / Z1)

B2 = Atn(Q2 / Z2)

D1 = A + B1

D2 = A + B2

l1 = Sqr(Z1 * Z1 + Q1 * Q1)

l2 = Sqr(Z2 * Z2 + Q2 * Q2)

Q1 = l1 * Sin(D1)

Q2 = l2 * Sin(D2)

Z1 = l1 * Cos(D1)

Z2 = l2 * Cos(D2)

 

End If

 

' Íàõîäèì êîýôôèöèåíòû ôóíêöèé, îïèñûâàþùèõ áàê

For i = 1 To n - 1 Step 1

k(i) = (y(i) - y(i + 1)) / (x(i) - x(i + 1))

c(i) = y(i) - k(i) * x(i)

Next i

 

If A = 0 Then

k(15) = 0.0000001

End If

 

k(0) = k(20)

c(0) = c(20)

 

' Çàäà¸ì òî÷êè áàêà è ñîåä èõ ëèíèÿìè

For i = 1 To n

px(i) = 2000 * x(i) + 5000

py(i) = 5000 - 2000 * y(i)

Next i

color = RGB(255, 100, 10)

For i = 1 To n - 1

Form1.Line (px(i), py(i))-(px(i + 1), py(i + 1)), color

Next i

' çàäà¸ì ëèíèþ-ìåñòî ðàñïîëîæåíèå äàò÷èêà

color = RGB(255, 255, 0)

Form1.Line ((2000 * Z1 + 5000), (5000 - 2000 * Q1))-((2000 * Z2 + 5000), (5000 - 2000 * Q2)), color

 

End Sub

Private Sub Command3_Click()

Cls

End Sub

 

Private Sub Command4_Click()

' Çàäà¸ì ïàðàìåòðû áàêà è çíà÷åíèå óðîâíÿ òîïëèâà

n = 21

' V-îáú¸ì

V = Val(Text1.Text)

 

For i = 1 To n Step 1

x1(i) = x(i)

y1(i) = y(i)

Next i

 

H0 = Val(Text4.Text)

 

If Len(Text6.Text) Then

step = Val(Text6.Text)

Else

step = H0

End If

 

Do While H0 > 1.51

H0 = InputBox("Ââîä H0 íå ïðåâûøàåò ìêñèìàëüíîé âûñîòû áàêà = 1.51 ")

Text4.Text = Str$(H0)

Loop

 

Do While H0 >= 0

 

vt = 0

H1 = H0 - 0.73

coord = Text10

Text8.Text = Text8.Text + " " + Str$(H0)

 

' Ó÷¸ò èçìåíåíèÿ ïîëîæåíèÿ äàò÷èêà

A = Val(Text5.Text) * (3.1415926535 / 180)

If A < 0 Or A > 0 Then

B1 = Atn(H1 / coord)

D1 = B1 + A

l1 = Sqr(coord * coord + H1 * H1)

H1 = l1 * Sin(D1)

End If

 

' Ñìåùåíèå òî÷åê êîîðäèíàò â çàâèñèìîñòè îò óðîâíÿ òîïëèâà

 

If Len(Text4.Text) Then

For i = 1 To n Step 1

j = i

If y(i) >= H1 Then

y1(i) = H1

If y(i - 1) < H1 Then

If j = 7 Then

x1(i) = (H1 - c(i)) / k(i)

Else

x1(i) = (H1 - c(i - 1)) / k(i - 1)

End If

Else

If (j < 21 And H1 < y(i) And H1 > y(i + 1)) Or (j >= 11 And j < 21) Then

x1(i) = (H1 - c(i)) / k(i)

End If

End If

End If

Next i

End If

 

' Ðàñ÷¸ò îáú¸ìà òîïëèâà ïî ìåòîäó Íàäæàðîâà

For i = 1 To n - 2 Step 1

w0 = (x1(i + 1) - x1(1)) * (y1(i + 2) - y1(1))

w1 = (x1(i + 2) - x1(1)) * (y1(i + 1) - y1(1))

vt = vt + Abs(V / 2) * (w0 - w1)

Next i

 

Text7.Text = Text7.Text + " " + Str$(vt)

 

' Çàäà¸ì ëèíèþ óðîâíÿ òîïëèâà

For i = 1 To n

px(i) = 2000 * x1(i) + 5000

py(i) = 5000 - 2000 * y1(i)

Next i

 

color = RGB(200, 0, 0)

For i = 1 To n - 1

Form1.Line (px(i), py(i))-(px(i + 1), py(i + 1)), color

Next i

 

If H0 = 0 Then

H0 = H0 - 1

Else

H0 = H0 - step

End If

 

Loop

 

End Sub

 

 

: , , , .

, , . .

 

, . : "" 0,1. .

 

 

(0,4), .

 

 

 

50.

 

, (0.5), ( H=1.51) (0.151).

SolidWorks.

, V, 3
1,51 1,36
1,359 1,28
1,208 1,15
1,057 0,99
0,906 0,82
0,755 0,62
0,604 0,44
0,453 0,29
0,302 0,16
0,151 0,06

, . .



<== | ==>
. | 
:


: 2016-12-03; !; : 237 |


:

:

, .
==> ...

1858 - | 1671 -


© 2015-2024 lektsii.org - -

: 0.058 .