.
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 |
, . .