999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

船體型線三向光順方法及程序設計

2021-06-28 12:57:16鄭坤時光志周毅牛志剛
船海工程 2021年3期

鄭坤,時光志,周毅,牛志剛

(中海油能源發展股份有限公司 采油服務分公司,天津 300452)

船體型線設計對船舶阻力性能有直接的影響,決定了設計船能否達到航速要求。成功的型線設計的一個必要條件是型線的三向光順。AutoCAD提供了良好的交互式圖形設計工具,但是在船體型線設計時,AutoCAD不能將船體的三向視圖聯系起來,船體型線光順過程只能對每個視圖逐個修改,不僅繁瑣,而且難以保證三視圖數據的統一。為此,考慮采用AutoCAD提供的二次開發工具ObjectARX,通過型線的非均勻有理B-樣條(NURBS)曲線表達及三次樣條整體光順方法,實現船體型線三向光順程序設計。

1 船體型線的NURBS表達

NURBS曲線可以用統一的函數關系式表達直線段、圓弧和自由曲線。對直線段、圓弧及樣條曲線進行拼接,就可以表達各種復雜的船體型線,其中涉及到關于NURBS的反算,升階,節點插入與刪除,求導,拼接等算法[1-2]。

船體型線較為復雜,可以基于NURBS曲線的優良特性,更準確的表達。船體橫剖線對于艏部尾部線型比較復雜的情況,可采用自由曲線、直線段、圓弧等組合的NURBS曲線表達(見圖1a)、b));對于有平行中體,且平行中體處舭部為圓弧的船型,將橫剖線表達為由1/4圓與直線段組合NURBS曲線(見圖1c))。對于有平行中體的船型,半寬水線由首尾圓弧(方尾尾部除外),自由曲線,以及平行中體處的直線段構成,見圖2。

圖1 用拼接的NURBS曲線表達橫剖線

圖2 半寬水線的NURBS表達

有些船型的首部輪廓在設計吃水與結構吃水之間為直線段,因而將其首部輪廓由直線和自由曲線拼接組成,見圖3b),方尾船型的尾部輪廓由直線與自由曲線拼接組成,見圖3a)。

圖3 艏艉輪廓線的NURBS表達

將各船體型線統一用NURBS表達以后,在對船體的計算時不用考慮是否間斷或曲線的具體形狀,因而更利于計算機程序實現。此外這樣表示的型線更易應用于靜水力、艙容、穩性插值曲線等的計算。

2 交互式三向光順的程序實現

2.1 生成AutoCAD的NURBS曲線

ObjectARX提供了函數setNurbsData(),該函數的參數為NURBS的節點矢量(knots)、控制頂點(control points)、權值(weights)、節點數以及曲線的次數等[3]。創建AcDbSpline對象,調用該函數給實體賦值,并將該AcDbSpline對象添加到AutoCAD的當前數據庫中,即可在AutoCAD里創建一條NURBS曲線。程序中定義了樣條類class vacNurbs, 各種算法通過該類實現,將該類的節點矢量,控制頂點,權值等信息通過setNurbsData()函數傳遞給AutoCAD,由AutoCAD實現型線的交互式光順。通過ObjectARX提供的函數getNurbsData()得到AutoCAD中的曲線信息,實現自己定義的樣條與AutoCAD之間的數據交換。

2.2 實現三向光順

三向光順就是要在改變一個視圖的時候,另外兩個視圖自動作相應的變化,即將3個視圖聯系起來,保持數據的統一。首先由ObjectARX的數據庫反映者類(AcDbDatabaseReactor)派生出一個新類vacAcDbDatabaseReactor, 重載該類的objectModified()、objectAppended()以及objectEraserd()3個虛函數,用以響應數據庫中實體被修改、添加與刪除的消息。在程序初始化階段將該反映者類的一個對象添加到當前數據庫中,用于跟蹤用戶對AutoCAD的數據庫的各項操作。

以修改橫剖線為例。首先根據objectModified()的參數dbObj(被修改實體的ID)判斷是哪條線被修改(假設為ST1,其縱向位置為stPos),給定精度為ESP=1e-6,然后根據由dbObj對應的曲線(修改后的橫剖線)與原橫剖線各型值點對比,判斷哪些水線處的型值點變化量大于ESP(設為WL0~WL1),則這些水線需要重算。將對應的半寬水線WL0~WL1在stPos處的型值點替換為新的型值,重新反算生成新的半寬水線??v剖線的變化與橫剖線相似。這樣就可以實現在修改橫剖線時,半寬水線與縱剖線的自動變化。

同理,可以實現修改半寬水線時,橫剖線與縱剖線隨修改的自動變化。綜上所述,便可以實現在AutoCAD平臺上船體型線的三向光順。

2.3 型線光順性的檢驗方法

2.3.1 通過拐點數及位置判斷型線的光順性

如果船體的型線是光順的,則相應的拐點連線也應該是光順的,所以程序通過vacAcDbDatabaseReactor類的objectModified()函數在型線修改時計算出新的曲線的拐點所在位置,并繪制到型線圖上,用來實時檢驗修改是否使型線更為光順,見圖4,“”代表拐點位置。

圖4 某LNG運輸船橫剖線拐點示意

2.3.2 通過曲率曲線判斷型線的光順性

曲線的光順與否將直接反應在曲率上,所以可以用曲率來檢驗型線是否真正光順。圖5中上方圖形為型線,下方為該型線的曲率。

圖5 NURBS曲線的曲率

3 船體型線整體光順方法

型線整體光順的方法有很多,傳統的能量法和最小二乘法只能保證光順后的曲線比未光順的曲線曲率變化更均勻,而不易實現對曲線型值點位置、導數以及拐點的數目與位置的控制。這里在ObjectARX實現AutoCAD交互式三向光順程序的基礎上,引入一種可以控制曲線的型值點、一階導數、二階導數的型線光順方法,以提升型線光順效率。

3.1 三次樣條整體光順的思想

三次力學樣條具有簡潔的表達式,其二階導數為線性關系式[4]。用三次力學樣條可以很好的描述斜率變化不大的曲線。常規船型的半寬水線的斜率一般都不會太大,因而可以用三次樣條來描述?;谝陨显?,首先通過船體的半寬水線(NURBS曲線)形成一條三次樣條,對該三次樣條進行光順,最后將得到的三次樣條曲線的型值點作為新的半寬水線的型值點,反算得到光順后的半寬水線(NURBS曲線)的控制頂點,進而實現對半寬水線的光順。

采用單目標非線性約束優化的方法對三次樣條做優化計算。將曲線的橫坐標作為已知量,以各型值點的縱坐標和一階導數為自由變量,以能量為目標函數,約束條件分為兩部分,第一部分為固定約束,使得得到的縱坐標與一階導數值之間滿足三彎矩方程,另一部分為可變約束,用于控制曲線的型值點,一階導數,二階導數的值。

3.2 目標函數的建立

將三次樣條看成梁,因彎曲而產生的內力為

(1)

式中:EI為梁的剛度系數;κ為曲率。

一般認為,梁的彎曲內力越小,樣條越光順[5]。但是內力最小的時候顯然為1條直線,所以還要考慮因位移而產生的內力,即假定梁在每一節點處的受力與位移都滿足hooker定律,即

(2)

式中:βi為各節點處剛性系數;Pi為光順前的型值點;Qi為光順后的型值點。

假設三次樣條S(x)滿足

S(xi)=yii=0,1,…,n-1

(3)

將目標函數定為E=Ein+Edisp,其中自由變量最高次項為2,線性約束,所以程序中采用二次規劃對曲線進行優化,其目標函數為

s.t.

v=(y0,m0,y1,m1,…,yn-1,mn-1)

(4)

式中:nE與nI分別為等式和不等數約束個數;yi與mi分別對應各型值點處的縱坐標與一階導數值。

3.3 約束矩陣的建立

3.3.1 固定約束

約束矩陣的固定部分即為三次樣條的三彎矩方程組,是n-1個等式約束。三彎矩方程組為

(5)

將式(5)寫成Am=f的形式,把y向量插入到v′向量中對應位置得到v向量,即v=(y0,m0,y1,m1,…,yn-1,mn-1),同時在A陣中插入相應的行與列。然后將等式右邊向量移到等式左邊,將gk用yk,yk+1表示,把gk中yk,yk+1的系數加到A陣的相應位置,形成約束矩陣R0v=b0,此時b0為零向量(即該約束為等式約束)。該約束矩陣保證生成的曲線為過點(xk,yk),并且在(xk,yk)處導數為mk。

3.3.2 可變約束

將約束矩陣添加一行,該行除了第2k列為1外全部為0,將向量b的與該約束對應的元素設為Y,并修改等式約束的個數,這樣就可以使樣條通過點(Xk,Y)。

若將該行除了第2k+1列為1外全部為0,將向量b的與該約束對應的元素設為D,并修改等式約束的個數,這樣就可以使樣條在點(Xk,Yk)處導數為D。

在xk處,二階導數滿足

(6)

以上為加入等式約束的方法。加入不等式的方法與之類似,但要將大于號改為小于號(兩邊同乘-1)。將生成的約束矩陣交換行,使前nE個為等式約束,后nI個為不等式約束。

3.3.3 初始解的計算

二次規劃要求初始解可行,因而不可以簡單地將原樣條對應的向量做為初始解。這里通過二階段法求得。

3.4 在船體型線光順中的應用

在光順半寬水線時,首先要求輸入期望的拐點位置。端點處要求型值不變,平行中體處要求導數為零,指定權值(用于調整光順后曲線與原曲線的偏離程度)后程序就可以對所選的半寬水線進行光順計算。只要輸入正確的約束條件以及恰當的選取權值,該算法在滿足光順性的前提下可以很好的滿足設計要求。對于多數的橫剖線,只要將其x與y坐標轉置,該算法也適用。圖6、7為2個光順實例。圖中上方為型線,下方為曲率,其中變化緩和的為光順后的型線的曲率。

圖6 曲線中無指定拐點

3.5 算法的特點

若將型值點的權值設為一個相對較小的數,可以得到非常光順的曲線,但是實際中的船體型線并非曲率變化越均勻越好,所以應當綜合考慮,調整權值使得曲線在光順后不會與原船體型線相差太大。對于有拐點的曲線,如果要求光順后的曲線在某點處的曲率方向與原方向相反。優化的目標為彎曲內能與變形內能的和最小,此時優化的結果將是使該點處的二階導數為零。如圖7所示,通過下方的曲率圖可以看出,中間豎線表示的期望拐點位置,曲線右端的曲率與期望的曲率方向相反,光順后的曲線在此處曲率接近于零。如果在約束中指定這些點處的二階導數的值可以控制曲率線的形狀,但是事先難以估計該點處的二階導數的值。

圖7 期望的曲率方向與原方向相反

實踐證明,上述方法能夠快速、準確的實現船體型線的三向光順,這不僅可以提高的型線設計的效率,而且可以保證精度要求。實船型線光順的實例見圖8~11,圖中“”代表拐點位置。通過拐點數及拐點的位置,可以看出曲線的光順程度。

圖8 某LNG運輸船光順前的艏部型線

圖9 某LNG運輸船光順后的艏部型線

圖10 某LNG運輸船光順前的艉部型線

圖11 某LNG運輸船光順后的艉部型線

4 結論

1)采用拼接NURBS曲線表達船體型線不僅使得計算簡單,易于程序實現,而且可以較為精確的描述船體型線,有利于對船體做進一步計算。

2)AutoCAD平臺提供了有效的二次開發方法,通過對AutoCAD二次開發可以實現船體型線數據的三示圖聯動,并形成基于拐點和曲率曲線的光順性檢驗方法。

3)以三次力學樣條為工具,可以很好的實現對NURBS曲線的光順,提升型線光順效率,解決型線光順繁瑣的調整問題。

主站蜘蛛池模板: 亚洲六月丁香六月婷婷蜜芽| 欧美日韩在线第一页| 伊人成人在线视频| 国产真实乱了在线播放| 国产在线98福利播放视频免费| 天堂在线亚洲| 国模极品一区二区三区| 亚洲综合经典在线一区二区| 在线观看视频99| 亚洲欧洲一区二区三区| 性喷潮久久久久久久久| 美女啪啪无遮挡| 免费无码网站| 波多野结衣爽到高潮漏水大喷| 亚洲av色吊丝无码| 精品撒尿视频一区二区三区| 天天干天天色综合网| 精品一區二區久久久久久久網站| 免费人成视频在线观看网站| 国产精品成人AⅤ在线一二三四| 久久精品最新免费国产成人| 国产系列在线| 日韩毛片免费| 无遮挡国产高潮视频免费观看| 成人福利在线观看| 亚洲欧美日本国产专区一区| 亚洲成网777777国产精品| 幺女国产一级毛片| 国产成人精品无码一区二 | 超清无码熟妇人妻AV在线绿巨人| 97久久超碰极品视觉盛宴| 欧美精品伊人久久| 亚洲精品免费网站| 国产不卡网| 国产福利观看| 日韩久草视频| av免费在线观看美女叉开腿| 国产精品女同一区三区五区| 色综合手机在线| 日本尹人综合香蕉在线观看| 91精品国产丝袜| 99青青青精品视频在线| 免费又黄又爽又猛大片午夜| 国产精品视频观看裸模| 成年人久久黄色网站| 亚洲成人www| 中文字幕 欧美日韩| 久久黄色免费电影| 99热免费在线| 免费全部高H视频无码无遮掩| 亚洲精品人成网线在线 | 91视频区| 国产精品免费电影| 欧美日本二区| 伊人狠狠丁香婷婷综合色| yy6080理论大片一级久久| 人妻21p大胆| AV在线麻免费观看网站| 国产区在线看| 国产精品欧美日本韩免费一区二区三区不卡| 国产理论一区| 国产精品lululu在线观看| 成人在线观看一区| 亚洲另类色| 国产在线第二页| 在线免费无码视频| 久久毛片免费基地| AⅤ色综合久久天堂AV色综合| 国产黄色免费看| 日本AⅤ精品一区二区三区日| 国产美女叼嘿视频免费看| 小13箩利洗澡无码视频免费网站| 亚洲日本韩在线观看| 亚洲国产精品不卡在线| 亚洲人成网7777777国产| 国产一级裸网站| 在线视频精品一区| 日韩欧美国产综合| 国产一级裸网站| 国产亚洲精久久久久久久91| 亚洲精品欧美日本中文字幕| 亚洲无码91视频|