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處的型值點替換為新的型值,重新反算生成新的半寬水線。縱剖線的變化與橫剖線相似。這樣就可以實現在修改橫剖線時,半寬水線與縱剖線的自動變化。

同理,可以實現修改半寬水線時,橫剖線與縱剖線隨修改的自動變化。綜上所述,便可以實現在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曲線的光順,提升型線光順效率,解決型線光順繁瑣的調整問題。

主站蜘蛛池模板: 美女裸体18禁网站| 手机永久AV在线播放| 一本大道在线一本久道| www.youjizz.com久久| 欧美成人免费午夜全| 在线观看无码av五月花| 婷婷亚洲最大| 国内精品一区二区在线观看| 亚洲国产日韩一区| 国产91蝌蚪窝| 久久国产乱子| 久久福利网| 国产黄在线免费观看| 精品一區二區久久久久久久網站| 十八禁美女裸体网站| 成人噜噜噜视频在线观看| 国产成人毛片| 又爽又大又光又色的午夜视频| 广东一级毛片| 国产又粗又猛又爽| 高清色本在线www| 国产精品真实对白精彩久久| 国产亚洲精品精品精品| 欧美成人一级| 日韩精品毛片| 精品一区二区三区波多野结衣 | 91国内视频在线观看| 午夜精品久久久久久久无码软件| 伊人丁香五月天久久综合 | 欧美中文字幕在线视频| 精品国产网站| 日韩成人午夜| 欧美a在线| 欧美区一区| 一本大道在线一本久道| 97视频在线观看免费视频| 亚洲AV无码精品无码久久蜜桃| 激情在线网| 玖玖免费视频在线观看| 玖玖精品在线| 日本三级欧美三级| 久久精品嫩草研究院| 91丝袜乱伦| 国产真实乱人视频| 国产精品白浆无码流出在线看| 国产精品思思热在线| 成人午夜久久| 影音先锋丝袜制服| 老司机久久99久久精品播放| 精品欧美日韩国产日漫一区不卡| 全午夜免费一级毛片| 中文字幕啪啪| 亚洲熟女偷拍| 99视频国产精品| 日韩123欧美字幕| 亚洲天堂视频在线观看免费| 中字无码精油按摩中出视频| 成人亚洲国产| 亚洲中文字幕在线一区播放| 亚洲无码A视频在线| 亚洲精品成人7777在线观看| 91麻豆精品国产高清在线| yjizz视频最新网站在线| 国产69精品久久| 人禽伦免费交视频网页播放| 精品亚洲欧美中文字幕在线看| 国产女主播一区| 中文字幕久久波多野结衣| 三上悠亚在线精品二区| www欧美在线观看| 天天色综合4| 男人天堂伊人网| 国产成人综合日韩精品无码不卡| 亚洲成人免费看| 日韩成人在线一区二区| 国产成人午夜福利免费无码r| 中文一区二区视频| www.狠狠| 国内熟女少妇一线天| 又爽又大又黄a级毛片在线视频 | 亚洲国产成人自拍| www亚洲天堂|