源程序清单-汽车动力性计算图表软件V1.0

Dim Umax As Double, Nmax As Double, V10 As Double, Vminrear As Double

'Umax以最高当速比时最高转速时设定为最高车速度

'V10 为最小稳定车速, Vminrear 为最小倒车速度

Dim Tqudongqiao As Double, Tqufa As Double '驱动桥最大输出扭矩,最大滑动阻力矩

Dim Vmax As Double, Nvmax As Double, Fmxqu As Double, Amxjia As Double, POmx As Double   'POmx最大爬坡度

'Vmax 最高车速  Nvmax 最高车速时对应转速

Dim T60 As Double '60公里加速时间

Dim kai As Integer '用于记录是否为第一次使用。

Dim REV() As Double     '对应转速

Dim Torque() As Double  '对应扭矩,发动机

Dim Power() As Double   '对应功率

Dim Tormax As Double, ntormax As Double   '最大扭矩,最大扭矩时对应转速

Dim Pemax As Double, npemax  As Double    '最大功率,最大功率时对应转速

''**************以上定义类变量********************

Public Function Getnum(strall As String) As String  '分解参数字符串,“:”后面的参数是数字返回值

    Dim txtA As String

    txtA = Trim(strall)

    mytxt = Split(txtA, ":")

    Getnum = Trim(mytxt(1))

End Function

Public Function T(Ni As Double)

'    Pemax = Text2.Text                  '额定功率       283

'    Np = Text3.Text                     '额定功率时转速 1900

'    Te = 9550 * Text2.Text / Text3.Text '额定功率时扭矩 1422.44

'    Ntq = Text5.Text                    '最大扭矩时转速 1200

'    Ttqmax = Text4.Text                 '最大扭矩       1800

'    ''以上初始化变量值

'    T = (Te - Ttqmax) * (Ni - Ntq) * (Ni - Ntq) / ((Np - Ntq) * (Np - Ntq)) + Ttqmax

'    '扭矩函数,二次抛物线拟合得到

    Dim Cout

    Dim i As Integer, j As Integer

    Cout = List1.ListCount - 1

    If Ni = REV(Cout) Then

        i = Cout

    Else

        For i = 0 To Cout

            If REV(i) > Ni Then Exit For

        Next

    End If

    If i > Cout Then

        MsgBox "输入参数有误,请重新输入。"

    Else

        '根据线性关系来求转速与扭矩有关系,

        ' Y=(Y2-Y1)(X-X1)/(X2-X1)+Y1 已知(x1,y1),(x2,y2)两个点时,求中间线性点公式

        T = (Torque(i) - Torque(i - 1)) * (Ni - REV(i - 1)) / (REV(i) - REV(i - 1)) + Torque(i - 1)

    End If

End Function

Public Function P(n)

'    Dim a, Np, Pmax, Pt, Nt As Double

'    Pt = Text5.Text * Text4.Text / 9550 '最大扭矩时的功率

'    Pmax = Text2.Text                   '额定功率       283

'    Np = Text3.Text                     '额定功率时转速 1900

'    Nt = Text5.Text                     '最大扭矩时转速

'    a = (Pt - Pmax) / ((Nt - Np) * (Nt - Np))

'    ''以上初始化变量值

'    P = a * (n - Np) * (n - Np) + Pmax

    '功率函数,二次抛物线顶点法拟合得到,低速时值相对偏大

End Function

Public Function UtoN(U As Double, igi As Double)    '已知速度求发动机转速

    '2013.9.11 增加

    '公式N=2.65258*Un*ig*i0/r

    Dim Unow As Double, I0 As Double, r As Double

    I0 = Text21.Text: r = Text19.Text

    UtoN = 2.65258 * U * igi * I0 / r

End Function

Public Function Fe(Ni As Double, igi As Double)       '汽车驱动力函数

    '公式 F=Ttq*ig*i0*Nt/r

    'Ttq为发动机扭矩 ig变速器传动比 i0主减速比 Nt传动效率 r车轮滚动半径

    'text10.text 辅件消耗

    Dim Nt As Double

    Dim I0 As Double, r As Double

    I0 = Text21.Text: r = Text19.Text

    If igi = 1 Then

        Nt = Text9.Text

    Else

        Nt = Text8.Text

    End If

    '单位 为KN

    Fe = (1 - 0.01 * Text10.Text) * 0.001 * T(Ni) * igi * I0 * Nt / r

End Function

Public Function Fw(ByVal Ua As Double)                   '汽车行驶风阻

    '公式 Fw=Cd*A*Ua*Ua/21.15  其中A为迎风面积

    Fw = (Text20.Text * Text18.Text * Ua * Ua / 21.15) / 1000

    '单位KN

End Function

Public Function Fz(Ua As Double)                   '汽车行驶阻力滚动+风阻

    '滚动阻力=Wf

    Dim Wg As Double

    Wg = Text22.Text * 9.8

    f = 0.0076 + 0.000056 * Ua

    Fz = (Wg * f + Text20.Text * Text18.Text * Ua * Ua / 21.15) / 1000

    '单位KN

End Function

Public Function Un(Ni2, igi) As Double  '汽车速度

    'Ni2 为转速   igi为对应档位速比

   Un = (0.377 * Text19.Text * Ni2) / (Text21.Text * igi)

End Function

Private Sub IniData()       '初始化转速,扭矩 及 功率 放到数组中

    '扭矩公式Ttq=9550*Pe/n

    '转速数组REV()  扭矩数组Torque()  功率Power()   每组对应

    Dim MyS() As String   

    Pemax = 0

    Tormax = 0

    npemax = 0

    ntormax = 0

    Dim Cout As Integer, i As Integer

    Dim ZB As Integer

    Cout = List1.ListCount

    If List1.ListCount > 0 Then

        ReDim REV(Cout)

        ReDim Torque(Cout)

        ReDim Power(Cout)

        For i = 0 To Cout - 1

'            ZB = InStr(List1.List(i), "-")

            MyS = Split(List1.List(i), ",")

            REV(i) = MyS(0): Power(i) = MyS(1): Torque(i) = MyS(2)           

'            REV(i) = Left(List1.List(i), ZB - 1)

'            Power(i) = Right(List1.List(i), Len(List1.List(i)) - ZB)

'            Torque(i) = 9550 * Power(i) / REV(i)

            If Power(i) > Pemax Then

                Pemax = Power(i)

                npemax = REV(i)

            End If

            If Torque(i) > Tormax Then

                Tormax = Torque(i)

                ntormax = REV(i)

            End If

'Debug.Print "P=" & Power(i) & "  T=" & Torque(i) & "  n=" & REV(i) & "  i=" & i

        Next i

        Nmax = REV(Cout - 1) + 200

    End If

'Debug.Print Pemax & "  tmax=" & Tormax

End Sub

Private Sub Command_backword_Click()

    frmAbout.Show

'    Form1.Hide

    form3.Hide

End Sub

Private Sub Command清空_Click()

    List1.Clear

End Sub

Private Sub List1_Click()   '在列表框中单击一行,可以自动读取到文本框text2中

    If List1.ListIndex <> -1 Then

        Text2.Text = List1.List(List1.ListIndex)

    End If

End Sub

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

'  以上为公共程序部分 -----------------

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

Private Sub Text6_Change()

    If Text6.Text <> "" Then

      If Text6.Text < 16 Then

            For i = 1 To Text6.Text - 1

               Label7(i).Visible = True

               Text7(i).Visible = True

            Next

            For i = Text6.Text To 14

               Label7(i).Visible = False

               Text7(i).Visible = False

            Next

      ElseIf Text6.Text > "15" Then

            MsgBox "变速器档位数只支持1-15,其他不支持。"

      End If

    End If

End Sub

Private Sub CommandExample_Click()

    Dim aa As String

    Dim bb() As String

    Text1.Text = "DCiII385"

    Text4.Text = 26000

    Text6.Text = 6

    Text3.Text = 6.4

    Text7(0).Text = 7.04

    Text7(1).Text = 4.1

    Text7(2).Text = 2.48

    Text7(3).Text = 1.56

    Text7(4).Text = 1

    Text7(5).Text = 0.74

    Text8.Text = 0.84

    Text9.Text = 0.95

    Text18.Text = 6.34

    Text19.Text = 0.526

    Text20.Text = 0.62

    Text21.Text = 4.875

    Text22.Text = 32000

    aa = "700,95,1250 |800,110,1300|900,130,1360|1000,155,1500|1100,190,1650|1200,212,1700|1300,230,1700|1400,250,1700|1500,268,1680|1600,270,1630|1700,274,1550|1800,273,1510|1900,275,1400|2000,265,1275|2100,250,1150"

    bb = Split(aa, "|")

    cc = UBound(bb)

    List1.Clear

    For i = 0 To cc

        List1.AddItem bb(i)

    Next

    Picture1.Cls

End Sub

Private Sub Command_End_Click()

    End

End Sub

Private Sub CommandCal_Click()

''  计算并预览的方法,先把每次计算的结果保存到文件  App.Path & "\" & Text1.Text & "计算结果.txt" 中,

''  全部计算完成之后,再把文件中的内容逐行读取保存到字符串变量St_b中,输入参数部分按这个方法来做,

''  计算部分采用计算一次先保存到Form2.Text1.Text 中,然后再分别追加到文件与St_b变量中,最后显示到Form2.Text2.Text

''  TXT文件内容要显示到文件窗口中,需要先读取到字符变量中,再一次性传给文本窗口

    Dim AutoSaveExact As String

    Dim Str_a As String, St_B As String

    AutoSaveExact = App.Path & "\Autoexact.txt"     '用于存放每次计算之后的数据输入

'    MsgBox AutoSaveExact

    form3.Caption = "汽车动力性计算绘图结果"

    Dim IGmax As Double, n1 As Double

    Dim Cout As Integer

    Dim Fpowe As Double, Fallzu As Double

    If Text6.Text = "" Or List1.ListCount < 2 Then

      MsgBox "参数不完整,请重新输入!"

      Exit Sub

    End If

    Call IniData    '初始化数据 转速 功率 扭矩

    IGmax = Text6.Text - 1 '以0为起始,最高档位车速

    Cout = List1.ListCount - 1

    '以下求最高车速================从扭矩最大时的转速开始递增计算=================================

'Debug.Print "最高转速ntormax=" & ntormax

    Nvmax = 0

    For i = ntormax To REV(Cout)

        n1 = i

        Fpowe = Fe(n1, Text7(IGmax).Text)

        Fallzu = Fz(Un(n1, Text7(IGmax).Text))

'Debug.Print "i=" & i & "  Fe=" & Fpowe & "  Fz=" & Fallzu

        Vmax = Un(n1, Text7(IGmax).Text)

        Nvmax = n1

        If Fpowe < Fallzu Then

            Vmax = Un(n1 - 1, Text7(IGmax).Text)

            Nvmax = n1 - 1

'Debug.Print "i=" & i & "  Fe=" & Fe(n1, Text7(IGmax).Text) & "  Fz=" & Fz(Un(n1, Text7(IGmax).Text))

            Exit For

        End If

    Next

'Debug.Print "最高转速max=" & Nvmax & "   最高车速=" & Vmax

    '=====================================================================================

    If Text1.Text = "" Then

        Paths = App.Path & "\计算结果.txt"

    Else

        Paths = App.Path & "\" & Text1.Text & "计算结果.txt"

    End If

    'MsgBox paths

        Call Option5_Click

        Picture1.Cls

        '''''''''''''''''''''''''以上计算一次''''''''''''''''''''''''''''''''

'    If Amxjia = 0 Then Call Option5_Click

'    If P0mx = 0 Then Call Option6_Click

'    If Fmxqu = 0 Then Call Option3_Click   

    Open Paths For Output As #1

        Print #1, "┌──────────────────┐"

        Print #1, "│  ***  以下是计算输入参数内容  ***  │"

        Print #1, "├─────────┬────────┤"

        Print #1, "│发动机或车辆型号:│" & Text1.Text & Space(16 - Len(Text1.Text)) & "│"

        Print #1, "├─────────┼────────┤"

        Print #1, "│迎风面积B*H(M^2):│" & N2Str(Text18.Text, 16) & "│"

        Print #1, "├─────────┼────────┤"

        Print #1, "│空气阻力系数:    │" & N2Str(Text20.Text, 16) & "│"

        Print #1, "├─────────┼────────┤"

        Print #1, "│车轮滚动半径(M): │" & N2Str(Text19.Text, 16) & "│"

        Print #1, "├─────────┼────────┤"

        Print #1, "│主减传动比I0:    │" & N2Str(Text21.Text, 16) & "│"

        Print #1, "├─────────┼────────┤"

        Print #1, "│满载总质量(kg):│" & N2Str(Text22.Text, 16) & "│"

        Print #1, "├─────────┼────────┤"

        Print #1, "│直接档传动效率:  │" & N2Str(Text9.Text, 16) & "│"

        Print #1, "├─────────┼────────┤"

        Print #1, "│其他档传动效率:  │" & N2Str(Text8.Text, 16) & "│"

        Print #1, "├─────────┼────────┤"

        Print #1, "│辅件消耗(%):   │ " & N2Str(Text10.Text, 15) & "│"

        Print #1, "├─────────┼────────┤"

        Print #1, "│驱动桥负荷(kg):│ " & N2Str(Text4.Text, 15) & "│"

        Print #1, "└─────────┴────────┘"

        Print #1, vbCrLf & "┌──────────────────┐" & vbCrLf & "│ -------以下为变速器各档参数------- │"

        Print #1, "├─────────┬────────┤"

        Print #1, "│" & Space(4) & "R档:" & Space(9) & "│" & Space(5) & N2Str(Text3.Text, 11) & "│"

        Print #1, "├─────────┼────────┤"

        For i = 0 To Text6.Text - 1

            Print #1, "│" & Space(5 - Len(i + 1)) & i + 1 & "档:" & Space(9) & "│" & Space(5) & N2Str(Text7(i).Text, 11) & "│"

            If i = Text6.Text - 1 Then

                Print #1, "└─────────┴────────┘"

            Else

                Print #1, "├─────────┼────────┤"

            End If

        Next       

        ''''''''''''''''''''''以下输出发动机参数''''''''''''''''''''''''''''''''''''''''''''''''

        Print #1, vbCrLf & "┌──────────────────────┐"

        Print #1, "│       ***  以下为发动机参数内容  ***       │"

        Print #1, "├──────┬───────┬───────┤"

        Print #1, "│ 转速(r/min)│   功率(kw/h) │  扭矩(N.m)   │ "

        Print #1, "├──────┼───────┼───────┤"

        For i = 0 To Cout

            Print #1, "│    " & REV(i) & Space(8 - Len(Trim(REV(i)))) & "│      " & N2Str(Power(i), 8) & "│   " & N2Str(Torque(i), 10) & " │"

        Next

        Print #1, "└──────┴───────┴───────┘"

    Close #1

'    Form2.Show==========================显示预览信息=================================

    St_B = ""

    ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    Call Option2_Click      '追加速度信息参数

    Open Paths For Append As #1

        Print #1, "****************以下为各档位 转速-速度 信息*******************"

        Print #1, Form2.Text1.Text

    Close #1

    Call Option3_Click      '驱动力信息参数

    Open Paths For Append As #1

        Print #1, "****************以下为各档位 转速-驱动力 信息*******************"

        Print #1, Form2.Text1.Text

    Close #1

    Call Option6_Click      '汽车爬坡度信息参数

    Open Paths For Append As #1

        Print #1, "****************以下为 各档转速-爬坡度 信息参数*******************"

        Print #1, Form2.Text1.Text

    Close #1

    Call Option4_Click      '行驶阻力信息参数

    Open Paths For Append As #1

        Print #1, "*****以下为 速度km/h-行驶阻力kN(滚动阻力+风阻) 信息*****"

        Print #1, Form2.Text1.Text

    Close #1

    Call Option7_Click      '行驶阻功率信息参数

    Open Paths For Append As #1

        Print #1, "*****以下为 速度km/h-行驶阻功率kW/h 信息*****"

        Print #1, Form2.Text1.Text

    Close #1

    Call Option_AccT_Click      '加速时间速度信息参数

    Open Paths For Append As #1

        Print #1, "****************以下为 加速时间-速度 信息参数*******************"

        Print #1, Form2.Text1.Text

    Close #1

    Call Option8_Click      '变速箱输出扭矩信息

    Open Paths For Append As #1

        Print #1, "*******以下为 发动机转速-变速箱输出扭矩 计算结果*******"

        Print #1, Form2.Text1.Text

    Close #1   

    Call Option9_Click      '驱动桥输出扭矩信息

    Open Paths For Append As #1

        Print #1, "*******以下为 发动机转速-驱动桥输出扭矩 计算结果*******"

        Print #1, Form2.Text1.Text

    Close #1

    Open Paths For Append As #1    '计算传动轴转速

        Print #1, "*******以下为 速度-传动轴转速关系 计算结果*******"

        Print #1, "   车速(km/h) | 传动轴转速(rpm)    "

        Print #1, String(30, "─")

        For j = 1 To 30

            S_n = Shaft_n(j * 5)

            Print #1, Space(5) & N2Str(j * 5, 8) & "│   " & N2Str(Int(S_n), 8)

            If 5 * j > Vmax Then Exit For

        Next

    Close #1   

    Open Paths For Append As #1

        Print #1, "-------------以下为计算结果信息------------------------------------"

        Print #1, "计算所得最高车  速:  " & Int(Vmax) & " km/h"

        Print #1, "计算所得最大爬坡度:  " & Int(POmx) & " %"

        Print #1, "计算所得最大驱动力:  " & Int(Fmxqu * 100) / 100 & " kN"

        Print #1, "1档最小稳定车速:  " & N2Str(V10, 6) & " km/h"

        Print #1, "倒车时最小稳定速度:  " & N2Str(Vminrear, 6) & " km/h"

        Print #1, "计算所得最大加速度:  " & Int(Amxjia * 100) / 100 & " m/s^2"

        Print #1, "驱动桥总输出扭矩可达:  " & Int(Tqudongqiao) & " N.m"

        If Text4.Text > 0 Then

            Print #1, "驱动桥最大滑动阻力矩:  " & N2Str(Tqufa, 6) & " N.m"

        End If

        Print #1, "最小稳定车速加速至60km/h时间:" & Int(T60 * 1000) / 1000 & " s" & vbCrLf

    Close #1   

    Open Paths For Input As #1

    Do While Not EOF(1)

        Line Input #1, Str_a                    '-----读取一行-----

        St_B = St_B & Space(8) & Chr(13) & Chr(10) & Str_a   '把之前保存到文件中的文本全部读入St_B变量中

    Loop

    Close #1

''''''''''''''''''''''以下读取文件到form2.text2.text中显示'''''''''''''''''''''''''''''''''

    Form2.Height = 9090

    Form2.Width = 12090

    Form2.Text2.Height = 7890: Form2.Text2.Width = 12000

    Form2.Command1.Left = 4500: Form2.Command1.Top = 8010

    Form2.Show

    Form2.Text2.Text = St_B

'''''''''''''''''''''''''''''''''''''''以下部分为自动保存数据用'''''''''''''''''''''''''''''''''''''''''''''''''''''

    Open AutoSaveExact For Output As #2

        Print #2, "******************以下是计算输入参数内容******************"

        Print #2, "发动机或车辆型号:  " & Text1.Text

        Print #2, "迎风面积B*H(M^2): " & Text18.Text

        Print #2, "空气阻力系数:     " & Text20.Text

        Print #2, "车轮滚动半径(M):  " & Text19.Text

        Print #2, "主减传动比I0:     " & Text21.Text

        Print #2, "满载总质量(kg):  " & Text22.Text

        Print #2, "直接档传动效率:    " & Text9.Text

        Print #2, "其他档传动效率:    " & Text8.Text

        Print #2, "辅件消耗(%):    " & Text10.Text

        Print #2, "驱动桥负荷(kg):    " & Text4.Text

        Print #2, Chr(13) & Chr(10) & "******************以下为变速器各档参数******************"

        For i = 0 To Text6.Text - 1

            Print #2, i + 1 & "档:" & Text7(i).Text

        Next

        Print #2, "R档:" & Text3.Text

        '''''''''''''''发动机数据''''''''''''''''''''''''''''

        Print #2, Chr(13) & Chr(10) & "发动机转速(r/min) 对应功率(kW/h)"

        Print #2, "每组数据中转速与功率之间以中横杠隔开"

        Print #2, "******************以下开始为发动机数据********************"

        For i = 0 To List1.ListCount - 1

            Print #2, List1.List(i)

        Next

    Close #2

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

    If Option1.Value = True Then

        Call Option1_Click

    ElseIf Option2.Value = True Then

        Call Option2_Click

    ElseIf Option3.Value = True Then

        Call Option3_Click

    ElseIf Option4.Value = True Then

        Call Option4_Click

    ElseIf Option5.Value = True Then

        Call Option5_Click

    ElseIf Option6.Value = True Then

        Call Option6_Click

    ElseIf Option7.Value = True Then

        Call Option7_Click

    ElseIf Option8.Value = True Then

        Call Option8_Click

    ElseIf Option9.Value = True Then

        Call Option9_Click

    ElseIf Option_AccT.Value = True Then

        Call Option_AccT_Click

    Else

        MsgBox "请选择要计算的项目。"

    End If

    kai = 0

'    frmAbout.Hide

End Sub

Private Sub Command保存_Click()     '保存所有输入的参数-------------

    Dim Paths As String

    Dim i As Integer

'    Dim TextLine As String

    ' 设置“CancelError”为 True

    CommonDialog1.CancelError = True

    On Error GoTo ErrHandler

    ' 设置标志

    CommonDialog1.Filter = "Text Files" & "(*.txt)|*.txt|All Files (*.*)|*.*"

    CommonDialog1.FilterIndex = 1

    ' 显示“保存”对话框

    CommonDialog1.ShowSave

    Paths = CommonDialog1.FileName

'    Open Paths For Output As #1

'        Print #1, "发动机转速(r/min) 对应功率(kW/r/min)"

'        Print #1, "每组数据中转速与功率之间以中横杠隔开"

'        Print #1, "******************以下开始为数据********************"

'        For i = 0 To List1.ListCount - 1

'            Print #1, List1.List(i)

'        Next

'    Close

    Open Paths For Output As #2

        Print #2, "******************以下是计算输入参数内容******************"

        Print #2, "发动机或车辆型号:  " & Text1.Text

        Print #2, "迎风面积B*H(M^2): " & Text18.Text

        Print #2, "空气阻力系数:     " & Text20.Text

        Print #2, "车轮滚动半径(M):  " & Text19.Text

        Print #2, "主减传动比I0:     " & Text21.Text

        Print #2, "满载总质量(kg):  " & Text22.Text

        Print #2, "直接档传动效率:    " & Text9.Text

        Print #2, "其他档传动效率:    " & Text8.Text

        Print #2, "辅件消耗(%):    " & Text10.Text

        Print #2, "驱动桥负荷(kg)选填:    " & Text4.Text

        Print #2, Chr(13) & Chr(10) & "******************以下为变速器各档参数******************"

        For i = 0 To Text6.Text - 1

            Print #2, i + 1 & "档:" & Text7(i).Text

        Next

        Print #2, "R档:" & Text3.Text

        '''''''''''''''发动机数据''''''''''''''''''''''''''''

        Print #2, Chr(13) & Chr(10) & "发动机转速(r/min) 对应功率(kW/r/min)"

        Print #2, "每组数据中转速与功率之间以中横杠隔开"

        Print #2, "******************以下开始为发动机数据********************"

        For i = 0 To List1.ListCount - 1

            Print #2, List1.List(i)

        Next

    Close #2

ErrHandler:

    ' 用户按了“取消”按钮

    Exit Sub

End Sub

Private Sub Command导入_Click()

    Dim Paths As String

    Dim TextLine As String

    Dim ZB As Integer, i As Integer

    Dim ROT As Single, POW As Single, Rota As Single, Tor As Single

    ' 设置“CancelError”为 True

    CommonDialog1.CancelError = True

    On Error GoTo ErrHandler

    ' 设置标志

    CommonDialog1.Filter = "Text Files" & "(*.txt)|*.txt|All Files (*.*)|*.*"

    CommonDialog1.FilterIndex = 1

    ' 显示“打开”对话框

    CommonDialog1.ShowOpen

    Paths = CommonDialog1.FileName

    List1.Clear         '先清空列表项

    '===================以下打开文件导入参数=======================================

    Open Paths For Input As #2

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论
汽车动力性计算 VB代码 部分代码 Private Sub Command2_Click() '加速度曲线 Label17.Caption = "" Picture1.Cls Picture1.Scale (-12, 3)-(125, -0.3) Picture1.Line (0, 0)-(0, 2.8) Picture1.Line (0, 0)-(120, 0) For j = 1 To 100 For i = 1 To 10 Picture1.Line (0, i * 0.25)-(2, i * 0.25) '取纵坐标刻度线 Picture1.Line (i * 10, 0.04)-(i * 10, 0) '取横坐标刻度线 Picture1.Line (1.5 - j * 0.015, 2.65)-(0, 2.8) '画纵坐标箭头 Picture1.Line (-1.5 + j * 0.015, 2.65)-(0, 2.8) Picture1.Line (120, 0)-(114, 0.05 - j * 0.0005) '画横坐标箭头 Picture1.Line (120, 0)-(114, -0.05 + j * 0.0005) Picture1.CurrentX = -4: Picture1.CurrentY = -0.02: Picture1.Print 0 Picture1.CurrentX = -10: Picture1.CurrentY = i * 0.25 + 0.02: Picture1.Print i * 0.25 '读取纵坐标刻度线数值 Picture1.CurrentX = 16: Picture1.CurrentY = 2.7: Picture1.Print "a / (m/s)" Picture1.CurrentX = 10 * i - 7: Picture1.CurrentY = -0.05: Picture1.Print i * 10 '读取纵坐标刻度线数值 Picture1.CurrentX = 103: Picture1.CurrentY = -0.05: Picture1.Print "Ua/(Km / h)" Next i Next j For i = 1 To 5 Ff = 0: ft = 0: a = 0: Ua = 0 If i = 1 Then Ig = 5.56: Uamax = 0.377 * r * Nmax / (Ig * io): Uamin = 0.377 * r * Nmin / (Ig * io) If i = 2 Then Ig = 2.769: Uamax = 0.377 * r * Nmax / (Ig * io): Uamin = 0.377 * r * Nmin / (Ig * io) If i = 3 Then Ig = 1.644: Uamax = 0.377 * r * Nmax / (Ig * io): Uamin = 0.377 * r * Nmin / (Ig * io) If i = 4 Then Ig = 1: Uamax = 0.377 * r * Nmax / (Ig * io): Uamin = 0.377 * r * Nmin / (Ig * io) If i = 5 Then Ig = 0.793: Uamax = 0.377 * r * Nmax / (Ig * io): Uamin = 0.377 * r * Nmin / (Ig * io) Ff = M3 * 9.8 * f + CDA * Ua * Ua / 21.15 For Ua = Uamin To Uamax Step 0.01 n = Ua * io * Ig / (0.377 * r) tq = -19.313 + 295.27 * (n / 1000) - 165.44 * (n / 1000) ^ 2 + 40.874 * (n / 1000) ^ 3 - 3.8445 * (n / 1000) ^ 4 ft = tq * Ig * io * Nt / r δ = 1 + (Iw1 + Iw2 + Iff) / (M3 * r ^ 2) + Iff * Ig ^ 2 * io ^ 2 * Nt / (M3 * r ^ 2) a = (ft - Ff) / (M3 * δ) If a > 0 Then Picture1.PSet (Ua, a), RGB(100 + i ^ 2 * 6 - 15 * i, i ^ 2 * 15 - i * 5, i ^ 4 / 4 + 10) Next Ua Next i
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xxlcar

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值