海浪波长以及波浪力计算_第1页
海浪波长以及波浪力计算_第2页
海浪波长以及波浪力计算_第3页
海浪波长以及波浪力计算_第4页
海浪波长以及波浪力计算_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Option Explicit Dim L1 As Single, L2 As Single, t As Single, d!, k!, kd!, thkd!, H!, D1! Dim CD As Single, CM As Single, l As Single, Ko As Single Dim Fhdmax As Single, Fhlmax As Single, Mhdmax As Single, Mhlmax!, Fhmax!, Mhmax! Dim As Single Const Pi = 3.141592653 Const G = 9.8 Const = 1025Private

2、Sub Command1_Click() Dim r As Integer Do While True L1 = Val(InputBox("请输入波长L1:", "求解设计波长:", "100") t = Val(InputBox("请输入设计波周期T:", "请输入", "6") d = Val(InputBox("请输入设计水深d:", "请输入", "20") If L1 <= 0 Then r = M

3、sgBox("请输入一个正数!", 5, "输入错误") If r = 2 Then End End If Else Exit Do End If Loop k = 2 * Pi / L1 kd = k * d thkd = (Exp(kd) - Exp(-kd) / (Exp(kd) + Exp(-kd) L2 = G * (t 2) * thkd / (2 * Pi) Do Until Abs(L2 - L1) < 0.001 L1 = L2 k = 2 * Pi / L1 kd = k * d thkd = (Exp(kd) - Exp(-k

4、d) / (Exp(kd) + Exp(-kd) L2 = G * (t 2) * thkd / (2 * Pi) Loop Print "设计波长是:" L2 Print "波数:" Format$(k, "0.0000")End SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Command3_Click() H = Val(InputBox("请输入设计波高H:", "请输入", "3") D1 = Val(In

5、putBox("请输入桩柱直径D1:", "请输入", "2") l = Val(InputBox("请输入桩柱间距l:", "请输入", "15") If d / L2 < 0.5 Then Print Print "相对水深d/L2:" d / L2 Print "采用线性波理论计算:" Else MsgBox "重新选择计算理论" End If Print "波陡:" H / L2 P

6、rint "相对柱径:" D1 / L2 If D1 / L2 < 0.2 Then Print "属于小直径桩柱" Else Print "属于大直径桩柱" End If CD = Val(InputBox("请输入拖曳力系数:", "请输入", "1.0") CM = Val(InputBox("请输入质量系数:", "请输入", "2.0") Print Print "选用拖曳力系数:"

7、; CD Print "选用质量系数:" CM Dim LD As Single LD = l / D1 Print "桩柱相对间距:" LD Print "群桩系数Ko:" If LD > 4 Then Ko = 1 Print Ko ElseIf LD < 4 And LD > 3 Then Ko = 1.25 Print Ko ElseIf LD < 2 Then Ko = 1.5 Print Ko End IfEnd SubPrivate Sub Command4_Click() Dim K1 As S

8、ingle, K2 As Single, K3 As Single, K4 As Single Dim e As Single, o As Single K1 = (2 * k * (d + H / 2) + sh(2 * k * (d + H / 2) / (8 * sh(2 * k * d) Fhdmax = CD * * G * D1 * (H 2) * K1 / 2 Print Print "K1值:" Format$(K1, "0.0000") Print "单桩柱最大水平拖曳力Fhdmax:" Fhdmax K2 = th

9、(k * d) Fhlmax = CM * * G * Pi * (D1 2) * H * K2 / 8 Print Print "K2值:" Format$(K2, "0.0000") Print "单桩柱最大水平惯性力Fhlmax:" Fhlmax K3 = (2 * (k 2) * (d + H / 2) 2 + 2 * k * (d + H / 2) * sh(2 * k * (d + H / 2) - ch(2 * k * (d + H / 2) + 1) / (32 * sh(2 * k * d) Mhdmax = CD

10、* * G * D1 * (H 2) * L2 * K3 / (2 * Pi) Print Print "K3值:" Format$(K3, "0.0000") Print "单桩柱最大水平拖曳力矩Mhdmax:" Mhdmax K4 = (k * d * sh(k * d) - ch(k * d) + 1) / ch(k * d) Mhlmax = CM * * G * (D1 2) * H * L2 * K4 / 16 Print Print "K4值:" Format$(K4, "0.0000&qu

11、ot;) Print "单桩柱最大水平惯性力矩Mhlmax:" Mhlmax If Fhlmax >= 2 * Fhdmax Then Fhmax = Fhlmax o = 90 ElseIf Fhlmax < 2 * Fhdmax Then Fhmax = Fhdmax * (1 + (Fhlmax / Fhdmax) 2) / 4) o = arcsin(Fhlmax / (2 * Fhdmax) End If Print Print "单桩柱最大水平波力Fhmax:" Fhmax If Mhlmax >= 2 * Mhdmax T

12、hen Mhmax = Mhlmax ElseIf Mhlmax < 2 * Mhdmax Then Mhmax = Mhdmax * (1 + (Mhlmax / Mhdmax) 2) / 4) End If Print Print "单桩柱最大水平波力矩Mhmax:" Mhmax Print "最大水平波力和最大水平波力矩的相位o:" o e = Mhmax / Fhmax Print Print "最大水平波力作用点离海底的距离e:" eEnd SubPublic Function sh(n) As Single sh =

13、 (Exp(n) - Exp(-n) / 2End FunctionPublic Function ch(n) As Single ch = (Exp(n) + Exp(-n) / 2End FunctionPublic Function th(n) As Single th = (Exp(n) - Exp(-n) / (Exp(n) + Exp(-n)End FunctionPublic Function arcsin(n) As Single arcsin = Atn(n / Sqr(-n * n + 1)End FunctionPublic Function FH() As Single

14、 FH = Fhdmax * Cos() * Abs(Cos() + Fhlmax * Sin()End FunctionPublic Function MH() As Single MH = Mhdmax * Cos() * Abs(Cos() + Mhlmax * Sin()End FunctionPrivate Sub Command5_Click() Dim i As Integer Open "C:Documents and SettingsAll Users桌面不同相位水平波力.txt" For Output As #1 Print #1, Tab(8); &q

15、uot;相位角" Spc(3); "cos" Spc(3); "cos|cos|" Spc(3); "sin" Spc(3); "Fhdmaxcos|cos|" Spc(3); "Fhlmaxsin" Spc(6); "FH" For i = 0 To 180 Step 15 = i * Pi / 180 Print #1, Tab(10); i; Tab(20); Format$(Cos(), "0.0000"); Print #1, Tab(

16、30); Format$(Cos() * Abs(Cos(), "0.0000"); Print #1, Tab(40); Format$(Sin(), "0.0000"); Print #1, Tab(55); Format(Fhdmax * Cos() * Abs(Cos(), "0.00"); Print #1, Tab(70); Format(Fhlmax * Sin(), "0.00"); Print #1, Tab(85); Format(FH(), "0.00") Next i C

17、lose #1End SubPrivate Sub Command6_Click() Dim i As Integer Open "C:Documents and SettingsAll Users桌面不同相位水平波力矩.txt" For Output As #2 Print #2, Tab(8); "相位角" Spc(3); "cos" Spc(3); "cos|cos|" Spc(3); "sin" Spc(3); "Fhdmaxcos|cos|" Spc(3); &qu

18、ot;Mhlmaxsin" Spc(6); "MH" For i = 0 To 180 Step 15 = i * Pi / 180 Print #2, Tab(10); i; Tab(20); Format$(Cos(), "0.0000"); Print #2, Tab(30); Format$(Cos() * Abs(Cos(), "0.0000"); Print #2, Tab(40); Format$(Sin(), "0.0000"); Print #2, Tab(55); Format(Mhdmax * Cos() * Abs(Cos(), "0.00"); Print #2, Tab(70); Format(Mhlmax * Sin(), "0.00"); Print #2, Tab(85); Format(MH(), "0.00") Next i Close #2End SubPrivate Sub Command7_Click() Dim As Single Dim

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论