当前位置:编程学习 > VB >>

急急急,求帮助!

我是VB新手,用VB编的程序明天要交了。我是学船舶的,所以程序最后要做出来的是一个船舶的回转圈,图片里面那样,但是我的代码画出来的图形不对,找几个人帮忙看了都着不到问题。在线等帮忙
Option Explicit
Const h! = 0.5
Const N% = 1
Dim yw(1), X(1) As Double
Dim f(1) As Double 'f(O)代表旋回角速度的导数,f(1)代表漂角的导数
Dim fl, f2 As Double
Dim a, b, C, D As Double
Dim ar As Single
Dim C1, C2, C3, C4, C5, C6, C7 As Single '船体侧向力系数
Dim m0, i0 As Single
Dim E As Single
Dim Krp As Single
Dim xk As Single '舵距船队重心的相对距离
Dim t1, t2, t3, t4, t5, t6, t7 As Single
Dim te, tel, te2, qe, qel, qe2, q2, q4, q6 As Single
Dim dqO, dq2, dq4, dq6 As Single
Dim K, T, KO, T0 As Single
Dim LC, LB, LT As Single
Dim v, u As Single
Dim Vp As Single '船舶航速
Dim W As String
Dim aa, a0 As Single '回旋角速度Ω
Dim bc, b0 As Single '漂角
Dim cc, c0 As Single '首相角,Ω的积分
Dim vv As Single '船体坐标系x向速度
Dim xx, x0 As Single
Dim yy, y0 As Single
Private Sub Command1_Click()
Const P! = 1000 '水密度1000kg/m^3
Const g! = 9.81 '重力加速度=9.81m/s^2
Const j22! = 0.71
Const j66! = 0.75
Const C10 = 0.145
Const C20 = 0.253
Const C30 = 0.02
Const C40 = 0.214
Const C50 = 0.007
Const C60 = 0.015
Const C70 = 0.07
Const Kh = 0.95
Const XOG = 0
Const YOG = 0

Dim Yk As Single '作用在船队上的侧向力
Dim Cyk As Single '船体侧向力系数
Dim Cmk As Single '船体力矩系数
Dim mB, mT, mC As Single
Dim M, N As Integer
Dim dT, dB, dC As Single
Dim bT, bb As Single
Dim vB, vT As Single
Dim iB, iT, iC As Double
Dim dZXBs, dZXBm As Single '边舵和中舵的展弦比
Dim bFM, tFM As Single '丰满系数
Dim bSMX, tSMX As Single
Dim bFX, tFX As Single
Dim Dp, Sp As Single '螺旋桨直径和盘面积
Dim Pt As Single '设计航速下的推力
Dim rps As Single
Dim Srs As Single
Dim Srm As Single
Dim Xgc As Single
Dim mbc As Double
Dim k22T, k22B, k66T, k66B, k22C, k26C, k66C As Single
Dim m22T, m66T, m22B, m66B, m22C, m26C, m66C As Single
Dim tl, tt As Single
Dim Qp As Single
Dim Wa As Single
Dim Ve As Single
Dim Wts As Single
Dim Wtm As Single
Dim Pd As Single
Dim Ud As Single
Dim Kd As Single
Dim u1s, u1m, u2 As Single
Dim Qk As Single

Vp = CSng(Text20.Text)
mT = CSng(Text6.Text)
mB = CSng(Text7.Text)
M = CInt(Text2.Text)
N = CInt(Text3.Text)
LC = CSng(Text1.Text)
LB = CSng(Text5.Text)
LT = CSng(Text4.Text)
dT = CSng(Text8.Text)
dB = CSng(Text9.Text)
bT = CSng(Text10.Text)
bb = CSng(Text11.Text)
vT = CSng(Text12.Text)
vB = CSng(Text13.Text)
bFM = CSng(Text15.Text)
tFM = CSng(Text14.Text)
bSMX = CSng(Text17.Text)
tSMX = CSng(Text16.Text)
bFX = CSng(Text18.Text)
tFX = CSng(Text19.Text)
dZXBm = CSng(Text21.Text)
dZXBs = CSng(Text22.Text)
Srm = CSng(Text23.Text)
Srs = CSng(Text24.Text)
Pt = CSng(Text30.Text)
Dp = CSng(Text25.Text)
Sp = CSng(Text26.Text)
rps = CSng(Text29.Text) / CSng(Text27.Text)


iT = ((1 + tFX ^ 4.5) * mT * (LT ^ 2 + bT ^ 2)) / 24 '推轮的惯性矩
iB = ((1 + bFX ^ 4.5) * mB * (LB ^ 2 + bb ^ 2)) / 24 '驳船的惯性矩

mbc = M * N * mB
mC = mT + M * N * mB
dC = (mT * dT + M * N * mB * dB) / mC
m0 = 2 * mC / (P * LC ^ 2 * dC) '船队质量的无因次化

Xgc = (mT * LT / 2 + mbc * (LT + M * LB / 2)) / (mT + mbc)
iC = iT + (M * N * iB) * (LB ^ 2 + N ^ 2 * bb ^ 2) * (LB ^ 2 + bb ^ 2) + mT * (LT / 2 - Xgc) ^ 2 + M * N * mB * (4 * M ^ 2 - 1) * LB ^ 2 / 12 + M * N * mB * Xgc ^ 2 + LT * (LT + M * LC) * M * N * mB + Xgc * (2 * LT + M * LB) * M * N * mB '船队的惯性矩
i0 = 2 * iC / (P * LC ^ 4 * dC) '船队惯性矩的无因次化
k22T = (3.76 * dT * tFM * (1 - tSMX * tFM)) / (bT * tSMX * (1 + tSMX * tFM) * (2 - tFM - tSMX))
k22B = (3.76 * dB * bFM * (1 - bSMX * bFM)) / (bb * bSMX * (1 + bSMX * bFM) * (2 - bFM - bSMX))
k66T = (1.68 * dT * 2 * tFM * (9 - 6 * tSMX - 6 * tFM + 4 * tFM * tSMX) * (3 - 2 * tSMX - 2 * tFM + tFM * tSMX)) / (bT * (1 + (bT / LT) ^ 2) * tSMX * (6 - 5 * tSMX + 4 * tSMX * tFM) * (9 - 9 * tFM + 2 * tFM ^ 3))
k66B = (1.68 * dB * 2 * bFM * (9 - 6 * bSMX - 6 * bFM + 4 * bFM * bSMX) * (3 - 2 * bSMX - 2 * bFM + bFM * bSMX)) / (bb * (1 + (bb / LB) ^ 2) * bSMX * (6 - 5 * bSMX + 4 * bSMX * bFM) * (9 - 9 * bFM + 2 * bFM ^ 3))
m22T = k22T * mT '推船,驳船和船队的附加质量
m22B = k22B * mB
m66T = k66T * iT
m66B = k66B * iB
m22C = m22T + j22 * M * N * m22B
m26C = m22T * (LT / 2 - Xgc) + M * N * j22 * m22B * (LT + M * LB / 2 - Xgc)
m66C = m66T + M * N * j66 * m66B + m22T * (LT / 2 - Xgc) ^ 2 + M * N * j22 * m22B * (4 * M ^ 2 - 1) * LB ^ 2 / 12 + M * N * j22 * Xgc ^ 2 + M * N * j22 * m22B * LT * (LT + M * LB) - M * N * j22 * m22B * Xgc * (2 * LT + M * LB)

k22C = m22C / mC '船队附连质量的无因次化
k26C = m26C / (mC * LC)
k66C = m66C / iC

a = k26C / (m0 * k26C ^ 2 - i0 * (1 + k22C) * (1 + k66C)) '运动方程的系数
b = -(1 + k22C) / (m0 * k26C ^ 2 - i0 * (1 + k22C) * (1 + k66C))
C = i0 * (1 + k66C) / ((m0 * k26C) ^ 2 - m0 * i0 * (1 + k22C) * (1 + k66C))
D = -a

tl = LT / LC '推轮长度和吃水的无因次化
tt = dT / dC
C1 = C10 + 0.14 * tl * (tl - 1.17) '船队的水动力系数
C2 = C20 + 0.27 * tl * (tl - 1.17)
C3 = -C30
C4 = C40 + 0.34 * tl * (tl - 1.17)
C5 = C50 + 0.17 * (tl * (1 - tl) * (tt - 1.17)) / (2 * (tl * (tl - 1)))
C6 = C60 + 0.12 * (tl * (1 - t1) * (tt - 1.17)) / (2 * (tl * (t1 - 1)))
C7 = C70 + 0.46 * (tl * (1 - t1) * (tt - 1.17)) / (2 * (tl * (t1 - 1)))
'Cyk = C1 * xr(1) + C2 * xr(1) * Abs(xr(1)) + C3 * xr(0) + C4 * xr(1) * Abs(xr(0))
'Cmk = C5 * xr(1) - C6 * xr(0) - C7 * xr(1) ^ 2 * xr(0)

Wts = 0.165 * tFX ^ 2 * Sqr((vT) ^ (1 / 3) / Dp)
Wtm = 0.165 * tFX * Sqr((vT) ^ (1 / 3) / Dp)
Ve = Vp * (1 - Wtm)
Qp = Pt / (P * Ve ^ 2 * Sp) '螺旋桨推力负荷系数
Wa = Ve * (1 - 0.0125 * Qp) * (Sqr(1 + Qp) - 1) / 2
Pd = Atn(Ve / (3.14 * Dp * rps))
Ud = 12 * Xgc / (1 + 1.56 * Xgc) + 2 * Pd * (1 + Wa / (Vp * (1 - Wts))) ^ 2
Kd = (12 * Xgc / (1 + 1.56 * Xgc) + 2 * Pd * (1 + Wa / (Vp * (1 - Wts)))) / Ud
u1m = (2 * 3.14) / (1 + 2.2 / (dZXBm) ^ (2 / 3)) '舵升力系数
u1s = (2 * 3.14) / (1 + 2.2 / (dZXBs) ^ (2 / 3))

Qk = 1 + (1 / 2) * (1 - 0.0125 * Qp) * (Sqr(1 + Qp) - 1)
Krp = Kh + (Ud * (Kd - 0.15 * Kh) * Sp) / (2 * u1s * Srs + u1m * Srm)
E = ((2 * u1s * Srs * (1 - Wts) ^ 2 + u1m * Srm * (1 - Wtm) ^ 2) * Qk ^ 2) / (LC * dC)
xk = Xgc / LC

ar = 15 * 3.14 / 180                          '不知道真实值,可以改
fl = C1 * bc + C2 * bc * Abs(bc) + C3 * aa + C4 * bc * Abs(aa) - m0 * aa - E * (ar - Krp * (bc + xk * aa))
f2 = C5 * bc - C6 * aa - C7 * bc ^ 2 * aa + xk * E * (ar - Krp * (bc + xk * aa))

Load form2
form2.Show
Call eular
End Sub

    
Sub fa() '数学模型过程
f(0) = a * (C1 * bc + C2 * bc * Abs(bc) + C3 * aa + C4 * bc * Abs(aa) - m0 * aa - E * (ar - Krp * (bc + xk * aa))) + b * (C5 * bc - C6 * aa - C7 * bc ^ 2 * aa + xk * E * (ar - Krp * (bc + xk * aa)))
f(1) = C * (C1 * bc + C2 * bc * Abs(bc) + C3 * aa + C4 * bc * Abs(aa) - m0 * aa - E * (ar - Krp * (bc + xk * aa))) + D * (C5 * bc - C6 * aa - C7 * bc ^ 2 * aa + xk * E * (ar - Krp * (bc + xk * aa)))
End Sub
Sub eular()
Dim i As Double
Dim aa, a0 As Single
Dim bc, b0 As Single
Dim cc, c0 As Single
Dim vv As Single
Dim xx, x0 As Single
Dim yy, y0 As Single
For i = 0 To 500 Step h

W = W & vbCrLf & " xx(" & Format(i * h, "#0.0") & ")=" & Format(xx, "#0.00000000") & "   yy(" & Format(i * h, "#0.0") & ")=" & Format(yy, "#0.00000000") & " cc(" & Format(i * h, "#0.0") & ")=" & Format(cc, "#0.00000000") & " vv(" & Format(i * h, "#0.0") & ")=" & Format(vv, "#0.00000000")
u = Vp
 fa
aa = a0 + h * f(0)
bc = b0 + h * f(1)
cc = c0 + h * aa
vv = u * Tan(b0)
xx = x0 + h * (u * Cos(c0) - vv * Sin(c0))
'xx = xx * 10
yy = y0 + h * (u * Sin(c0) + vv * Cos(c0))
    With form2
        .Picture1.PSet (xx, yy), RGB(255, 0, 0)
  '     xx = xx / 10
        a0 = aa: b0 = bc: c0 = cc: x0 = xx: y0 = yy
    End With
Next i
End Sub

Private Sub Command2_Click()
Open App.Path & "\坐标保存文件.txt" For Output As #1
Print #1, W '这里可以是数据本身也可以是目标控件的属性
Close #1 '关闭打开的文件
End Sub
[/code]
我程序运行出来的图片
目标图片 --------------------编程问答-------------------- 为什么没人回我啊,真的求帮助啊!我只能在这里发帖~ --------------------编程问答-------------------- 看着就头晕,包括数学记算,不懂啊
补充:VB ,  非技术类
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,