




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PAGEPAGE3摘要船舶運(yùn)動(dòng)數(shù)學(xué)模型是船舶運(yùn)動(dòng)仿真與控制問題的核心。目前,船舶運(yùn)動(dòng)數(shù)學(xué)模型建模中主要有兩大流派:以Abkowite為代表的整體型結(jié)構(gòu)模型和日本拖曳水池委員會(huì)(JTTC)提出的分離型結(jié)構(gòu)模型,簡稱MMG模型。本文主要是對(duì)于船舶的回轉(zhuǎn)運(yùn)動(dòng)進(jìn)行研究,采用的是MMG模型。根據(jù)13000T散貨船的主要參數(shù),通過計(jì)算求出所需的相關(guān)量,建立了船舶的線性響應(yīng)型模型。在此模型的基礎(chǔ)上,利用MATLAB中的Simulink模塊將此數(shù)學(xué)模型在該軟件中建立一個(gè)仿真模型。在Simulink中對(duì)建立的仿真模型進(jìn)行運(yùn)行得到船舶運(yùn)動(dòng)參數(shù)。通過Simulink的外部模式將仿真結(jié)果變成實(shí)時(shí)輸出數(shù)據(jù),利用RS232發(fā)送并接受數(shù)據(jù),用VisualC++連接數(shù)據(jù)庫和RS232的數(shù)據(jù)提取,再利用VisualC++與SQL的接口讀取數(shù)據(jù),并通過OSG進(jìn)行實(shí)現(xiàn)船舶回轉(zhuǎn)運(yùn)動(dòng)的可視化虛擬仿真。關(guān)鍵詞:船舶回轉(zhuǎn)運(yùn)動(dòng);數(shù)學(xué)模型;Simulink;視覺仿真;OSGAbstractTheshipmotionmathematicalmodelistheproblem’scoreabouttheshipmotionsimulationandcontrol.Currently,therearetwomajorschoolsintheshipmotionmathematicalmodel’smodeling:theoverallstructuremodelrepresentedbyAbkowiteandtheseparationofstructuremodelreferredtoastheMMGmodelproposedbytheJapanTowingTankCommittee(JTTC).Thisarticlemainlyresearchontherotarymovementoftheship,usingtheMMGmodel.Basedonthe13000Tbulkcarrier’smainparameters,weobtaintherequiredrelevantamountbycalculating.Thenweestablishthelinearresponsemodeloftheship.Onthebasisofthismodel,wetransferthismathematicalmodelintoasimulationmodelwiththeSimulinkmoduleofMATLAB.InSimulink,wegettheshipmotionparametersthroughrunningthesimulationmodel.ThroughSimulink’sexternalmode,weconversethesimulationresultsintoreal-timeoutputdata,usingastandardserialportRS232tosendandreceivedata.ThenweuseVisualC++toconnectthedatabasewithRS232dataextraction.UsingVisualC++interfacewithSQLtoreaddatabase,andconductedbyOSGtoenablevisualizationoftheshipturningmotionofthevirtualsimulation.Keywords:shipturningmotion;mathematicalmodel;Simulink;visualsimulation;OSG目錄TOC\o"1-3"\u第一章緒論 11.1課題研究現(xiàn)狀 11.2本課題的意義 2第二章響應(yīng)型船舶運(yùn)動(dòng)數(shù)學(xué)模型的建立 42.1線性響應(yīng)模型 42.1.1線性船舶運(yùn)動(dòng)數(shù)學(xué)模型的建立 42.1.2線性響應(yīng)模型 112.2船舶運(yùn)動(dòng)的風(fēng)、流干擾力數(shù)學(xué)模型 122.2.1風(fēng)的干擾力數(shù)學(xué)模型 132.2.2水流的干擾力數(shù)學(xué)模型 142.2.3風(fēng)和流共同作用下船舶的操縱模型 152.3模型參數(shù)的計(jì)算 152.3.1船舶質(zhì)量與轉(zhuǎn)動(dòng)慣量的計(jì)算 162.3.2流體動(dòng)力及流體動(dòng)力導(dǎo)數(shù)的計(jì)算 162.3.3、、的計(jì)算 192.3.4風(fēng)、流模型中的參數(shù)計(jì)算 19第三章基于Simulink的船舶運(yùn)動(dòng)模型的建立與仿真 213.1Simulink的簡介 213.2線性響應(yīng)型船舶運(yùn)動(dòng)模型的建立 223.2.1流體動(dòng)力模型的建立 233.2.2操縱性指數(shù)K、T模型的建立 293.2.3線性響應(yīng)型船舶運(yùn)動(dòng)模型的建立 303.3風(fēng)、流模型的建立 313.3.1風(fēng)力模型的建立 313.3.2流力模型的建立 343.3.3附加舵角模型的建立 343.4模型的整合 353.4.1壓縮子系統(tǒng) 353.4.2模型的組合 363.5仿真試驗(yàn) 383.5.1回轉(zhuǎn)試驗(yàn) 383.5.2風(fēng)對(duì)船舶運(yùn)動(dòng)影響 403.5.3流對(duì)船舶運(yùn)動(dòng)的影響 413.5.4結(jié)論 42第四章Simulink與數(shù)據(jù)庫的連接及視覺仿真的實(shí)現(xiàn) 444.1Simulink模型仿真結(jié)果的實(shí)時(shí)輸出 444.2利用VC++連接數(shù)據(jù)庫與RS232的數(shù)據(jù)提取 454.3利用0SG實(shí)現(xiàn)視覺仿真 48第五章結(jié)論 525.1存在的問題及解決方案 525.2發(fā)展前景 52致謝 54參考文獻(xiàn) 55附錄I 56江蘇科技大學(xué)畢業(yè)論文(論文)第一章緒論1.1課題研究現(xiàn)狀船舶運(yùn)動(dòng)控制以其重要性和復(fù)雜性仍然是國內(nèi)外研究的熱點(diǎn)領(lǐng)域。船舶動(dòng)態(tài)具有大慣性的特點(diǎn),萬噸級(jí)油輪的時(shí)間常數(shù)可達(dá)百秒以上,對(duì)動(dòng)舵的響應(yīng)緩慢,且操舵伺服子系統(tǒng)中存在著時(shí)滯和繼電器特性等非線性因素,船速的變化和裝載增減造成船舶質(zhì)量、慣性矩、重心坐標(biāo)發(fā)生變化,引起各種流體動(dòng)力導(dǎo)數(shù)相應(yīng)改變,最終導(dǎo)致船舶運(yùn)動(dòng)數(shù)學(xué)模型的參數(shù)甚至結(jié)構(gòu)產(chǎn)生攝動(dòng),這就是讓現(xiàn)研究者感到棘手的不確定性;同時(shí),風(fēng)、浪、流的存在也造成對(duì)船舶運(yùn)動(dòng)的附加干擾動(dòng)力(風(fēng)的低頻干擾動(dòng)力和浪的高頻干擾動(dòng)力),實(shí)質(zhì)上這些干擾最終也轉(zhuǎn)換成船舶模型的參數(shù)和結(jié)構(gòu)的攝動(dòng),即干擾同樣引起不確定性。這正是當(dāng)前船舶運(yùn)動(dòng)控制研究面臨的主要問題之一:船舶運(yùn)動(dòng)控制系統(tǒng)表現(xiàn)出大干擾、時(shí)變、不確定,非線性的特點(diǎn)和隨機(jī)的環(huán)境干擾。另一方面,在對(duì)船舶運(yùn)動(dòng)進(jìn)行閉環(huán)控制時(shí),獲得反饋信息的測(cè)量手段也不可能是完善的,一些重要的量測(cè)數(shù)據(jù)例如航向、船位等都有一定的誤差,這就成為了船舶運(yùn)動(dòng)控制研究的另一主要問題:測(cè)量信息的不精確性,無強(qiáng)魯棒性,傳統(tǒng)控制策略的效果不能令人滿意??刂撇呗允谴斑\(yùn)動(dòng)控制科學(xué)的主要研究對(duì)象。從20世紀(jì)20年代到70年代,自動(dòng)舵的PID算法延續(xù)了50年;70年代~80年代出現(xiàn)自適應(yīng)控制并在自動(dòng)舵商品化方面獲得了成功,產(chǎn)生了明顯的經(jīng)濟(jì)效益;90年代始,控制論的全面繁榮為船舶運(yùn)動(dòng)控制系統(tǒng)設(shè)計(jì)提供了諸多的新控制算法,如神經(jīng)網(wǎng)絡(luò)控制、模糊控制、多模態(tài)仿人智能控制、混合智能控制、H魯棒控制等都被不同程度地引入到自動(dòng)舵研制之中,目前主要有以下幾種控制策略:1、PID控制2、自適應(yīng)控制3、變結(jié)構(gòu)控制4、當(dāng)前流行的船舶運(yùn)動(dòng)控制算法,分為兩類,一類為神經(jīng)網(wǎng)絡(luò)控制、模糊邏輯控制、混合智能控制;另一類為魯棒控制。船舶控制目標(biāo)由航向控制到航跡控制,再到航速、航姿和航跡聯(lián)和控制等,以實(shí)現(xiàn)復(fù)雜環(huán)境下的自動(dòng)航行、自動(dòng)靠泊等,要求越來越高。在自動(dòng)操舵儀產(chǎn)品設(shè)計(jì)開發(fā)和調(diào)試過程中,需要對(duì)新的控制算法以及相應(yīng)的硬件電路的綜臺(tái)性能反復(fù)試驗(yàn),不斷改進(jìn),最終通過實(shí)船試驗(yàn)驗(yàn)證。開發(fā)船舶運(yùn)動(dòng)控制仿真平臺(tái),模擬船舶操縱運(yùn)動(dòng)和各種海況,對(duì)控制算法和自動(dòng)舵整體性能進(jìn)行綜合檢驗(yàn),無疑能顯著加快開發(fā)速度,降低試驗(yàn)成本。船舶運(yùn)動(dòng)控制的仿真有三種模式,即單機(jī)仿真、雙機(jī)仿真(半物理仿真)和物理仿真。前面兩種都是先建立起船舶運(yùn)動(dòng)的數(shù)學(xué)模型,再對(duì)其進(jìn)行控制仿真,成本較低,容易實(shí)現(xiàn);而物理仿真則是利用縮尺模型代替實(shí)船進(jìn)行各種實(shí)時(shí)控制實(shí)驗(yàn),要求較大的資金投入,且不易實(shí)現(xiàn)。而船舶運(yùn)動(dòng)數(shù)學(xué)模型是船舶運(yùn)動(dòng)仿真與控制問題的核心??梢詮牟煌慕嵌葘?duì)系統(tǒng)數(shù)學(xué)模型加以分類,如下所示:1、靜態(tài)模型和動(dòng)態(tài)模型2、確定性模型和不確定性模型3、連續(xù)模型和離散化模型4、線性模型和非線性模型。但是從實(shí)際應(yīng)用上來看,以線性模型或非線性模型的區(qū)別為主要線索進(jìn)行討論是方便和有益的。嚴(yán)格地說,任何一個(gè)實(shí)際系統(tǒng)都或多或少存在著非線性,不過從控制器設(shè)計(jì)的角度看,在大多數(shù)情況下都可以應(yīng)用線性模型,因?yàn)殚]環(huán)反饋控制能使系統(tǒng)的各種時(shí)間變量對(duì)于它們的平衡狀態(tài)僅有較小的偏離。船舶運(yùn)動(dòng)非線性模型用途廣泛,實(shí)質(zhì)都是基于這種模型可精確預(yù)報(bào)船舶操縱運(yùn)動(dòng)特性這一點(diǎn)。船舶運(yùn)動(dòng)控制問題的兩個(gè)重點(diǎn)研究領(lǐng)域是船舶運(yùn)動(dòng)控制器設(shè)計(jì)和船舶動(dòng)態(tài)模型建立。建立一個(gè)復(fù)雜程度適宜、精度滿足要求的數(shù)學(xué)模型對(duì)于進(jìn)行系統(tǒng)閉環(huán)性能研究是至關(guān)重要的。太復(fù)雜和精細(xì)的模型可能包含難于估計(jì)的參數(shù),也不便于分析.過于簡單的模型不能描述系統(tǒng)的重要性能。近年來,Mathworks公司推出Matlab軟件包被越來越多地運(yùn)用于工程系統(tǒng)的仿真領(lǐng)域,尤其是其Simulink模塊具有超強(qiáng)仿真能力,引起了工程界廣泛興趣。本文在狀態(tài)空間型的船舶運(yùn)動(dòng)數(shù)學(xué)模型的基礎(chǔ)上,給出了基于輸入—輸出信息構(gòu)造的響應(yīng)型船舶運(yùn)動(dòng)數(shù)學(xué)模型的系統(tǒng)性方法,這種響應(yīng)型模型僅考慮了過程線性影響。然后建立基于Matlab/Simulink的船舶運(yùn)動(dòng)模型,在此基礎(chǔ)上對(duì)船舶的操縱性能進(jìn)行仿真計(jì)算。再通過VisualC++將得到的實(shí)時(shí)數(shù)據(jù)與數(shù)據(jù)庫連接,利用VisualC++與SQL的接口讀取數(shù)據(jù),并通過OSG進(jìn)行船舶運(yùn)動(dòng)的視覺仿真實(shí)驗(yàn)。1.2本課題的意義船舶運(yùn)動(dòng)控制是一個(gè)重要的研究領(lǐng)域,其最終目的是提高船舶自動(dòng)化、智能化水平,保證航行的安全性、經(jīng)濟(jì)性和舒適性。而船舶操縱性是船舶航行的重要性能之一,對(duì)航運(yùn)安全有非常大的影響。特別是近年來,隨著海運(yùn)的發(fā)展,船舶的噸位急劇增大,航速提高,航運(yùn)頻繁,使船舶航運(yùn)安全成為一個(gè)突出的問題。許多國家都要求新建造的船舶及進(jìn)入該國水域的船舶提交操縱性計(jì)算書和相關(guān)的試驗(yàn)報(bào)告。國際海事組織(IMO)和各國政府都在致力于“船舶操縱性標(biāo)準(zhǔn)”的制定。隨著人們對(duì)船舶操縱性的日益關(guān)注,準(zhǔn)確計(jì)算船舶操縱性已經(jīng)提上了議事日程?;谏鲜瞿康谋疚姆治隽孙L(fēng)和水流對(duì)船舶操縱性能的影響,研究船舶對(duì)操舵的動(dòng)態(tài)響應(yīng)。建立了在風(fēng)和流共同作用下船舶操縱系統(tǒng)的動(dòng)力學(xué)模型,用于模擬船舶在操舵后的運(yùn)行狀況。同時(shí)通過回轉(zhuǎn)性實(shí)驗(yàn)對(duì)該模型進(jìn)行了驗(yàn)證。通過建立船舶的動(dòng)態(tài)響應(yīng)型運(yùn)動(dòng)模型,并對(duì)其運(yùn)動(dòng)進(jìn)行仿真,旨在研究Simulink環(huán)境下船舶運(yùn)動(dòng)控制的單機(jī)仿真,為船舶的操縱性能和船舶運(yùn)動(dòng)控制規(guī)律的研究提供方便手段。能夠使我們了解船舶對(duì)于操舵的動(dòng)態(tài)響應(yīng),操舵對(duì)于船舶的航跡改變的具體影響,也能起到預(yù)報(bào)船舶操縱特性的作用。通過引入風(fēng)與水流的動(dòng)力模型,可以分析風(fēng)速、風(fēng)舷角、流速、流舷角對(duì)于船舶運(yùn)動(dòng)的大致影響,讓大家了解在大風(fēng)流下如何對(duì)船舶進(jìn)行操縱才能保持船舶運(yùn)動(dòng)的穩(wěn)定性。對(duì)于船舶的回轉(zhuǎn)運(yùn)動(dòng)的仿真,可以加深對(duì)船舶回轉(zhuǎn)運(yùn)動(dòng)特征的認(rèn)識(shí),對(duì)于定常回轉(zhuǎn)運(yùn)動(dòng)的特征參數(shù)(定?;剞D(zhuǎn)直徑、定?;剞D(zhuǎn)周期等)有進(jìn)一步的了解,在仿真過程中也能夠讓我們了解到影響船舶回轉(zhuǎn)運(yùn)動(dòng)的一些因素。判斷一個(gè)船舶的回轉(zhuǎn)性的好壞可以從其相對(duì)回轉(zhuǎn)直徑看出。將Simulink模型中仿真的數(shù)據(jù)通過其外部模式變成實(shí)時(shí)輸出數(shù)據(jù),用標(biāo)準(zhǔn)串行端口RS232發(fā)送并接受數(shù)據(jù),再通過C++編寫程序連接數(shù)據(jù)庫和RS232的數(shù)據(jù)提取,利用VisualC++與SQL的接口讀取數(shù)據(jù),并通過OSG實(shí)現(xiàn)實(shí)船的運(yùn)動(dòng)視覺仿真。這樣可以讓我們更形象的觀察操舵、風(fēng)流對(duì)于船舶在航行中影響,航跡的具體改變,有助于我們形象具體的進(jìn)一步認(rèn)識(shí)。第二章響應(yīng)型船舶運(yùn)動(dòng)數(shù)學(xué)模型的建立響應(yīng)型模型是船舶運(yùn)動(dòng)數(shù)學(xué)模型的另一種表達(dá)形式。50年代末野(Nomoto)從控制工程的觀點(diǎn)將船舶看成為一個(gè)動(dòng)態(tài)系統(tǒng),舵角為系統(tǒng)的輸入、首向角或首搖角速度為系統(tǒng)的輸出。首先從簡捷的物理考察上,建立了系統(tǒng)輸入輸出的響應(yīng)關(guān)系的一階響應(yīng)模型。后來又從狀態(tài)空間型的線性船舶運(yùn)動(dòng)數(shù)學(xué)模型出發(fā),建立了二階響應(yīng)模型。以后根據(jù)不同的需要,建立了非線性響應(yīng)型模型。這些模型的一個(gè)重要特點(diǎn)是:模型參數(shù)可直接從規(guī)定的實(shí)船試驗(yàn)中獲得,從而避免了狀態(tài)空間型的模型(如MMG模型)參數(shù)需用模型試驗(yàn)獲得的缺陷,這就自動(dòng)消除了尺度效應(yīng)。因此,響應(yīng)型船舶運(yùn)動(dòng)數(shù)學(xué)模型在船舶操縱性的研究領(lǐng)域中及在船舶航向、航跡自動(dòng)控制研究中,在早期的航海模擬器、操縱模擬器研制中都得到了廣泛的應(yīng)用。它實(shí)質(zhì)上為船舶運(yùn)動(dòng)數(shù)學(xué)模型的研究開辟了一個(gè)新領(lǐng)域。2.1線性響應(yīng)模型建立一個(gè)系統(tǒng)的數(shù)學(xué)模型主要有兩方面的工作要做:一是根據(jù)物理意義在一定的簡化條件下建立模型的結(jié)構(gòu);二是根據(jù)系統(tǒng)的特征數(shù)據(jù),確定模型的參數(shù)。線性響應(yīng)模型的結(jié)構(gòu),一般是通過對(duì)狀態(tài)空間型的線性船舶運(yùn)動(dòng)數(shù)學(xué)模型進(jìn)行一定的推導(dǎo)獲得。線性響應(yīng)模型的參數(shù),一方面可通過實(shí)船或自航船模進(jìn)行規(guī)定試驗(yàn)的結(jié)果求得,另一方面也可由線性船舶運(yùn)動(dòng)數(shù)學(xué)模型中的流體動(dòng)力導(dǎo)數(shù)計(jì)算而得。本節(jié)首先介紹線性船舶運(yùn)動(dòng)數(shù)學(xué)模型,再建立響應(yīng)性模型,最后給出由流體動(dòng)力導(dǎo)數(shù)求響應(yīng)型模型參數(shù)的計(jì)算公式。2.1.1線性船舶運(yùn)動(dòng)數(shù)學(xué)模型的建立建立線性船舶運(yùn)動(dòng)數(shù)學(xué)模型一般有兩種途徑:一種途徑是利用整體建模思想直接對(duì)作用于船舶(包括船體、舵、槳)上的流體動(dòng)力和力矩進(jìn)行泰勒級(jí)數(shù)展開,取一階項(xiàng),再根據(jù)船舶的幾何特征進(jìn)行整理而得。但是,由于目前可利用的整體性模型流體動(dòng)力導(dǎo)數(shù)資料有限,從而使響應(yīng)模型的參數(shù)計(jì)算受到了限制。另一種途徑是根據(jù)MMG模型,由船舶運(yùn)動(dòng)的特點(diǎn),簡化成線性船舶運(yùn)動(dòng)數(shù)學(xué)模型。該方法利用MMG分離建模的優(yōu)點(diǎn),能直接有船型參數(shù)計(jì)算流體動(dòng)力導(dǎo)數(shù),在此基礎(chǔ)上響應(yīng)模型參數(shù)的計(jì)算也相當(dāng)方便了。本節(jié)我們采用后一種方法。MMG模型取附體坐標(biāo)系原點(diǎn)在船舶重心G,則采用如下船舶運(yùn)動(dòng)方程式(2-1-1)式(2-1-1)中的第三個(gè)方程右端出現(xiàn)了,其原因是模型試驗(yàn)時(shí)測(cè)量流體動(dòng)力矩是相對(duì)于船舶中心進(jìn)行的,因此需要將修正到相對(duì)于重心的力矩故而作項(xiàng)變動(dòng),是船舶中心在坐標(biāo)系中軸坐標(biāo)值。按MMG建模的基本要求,將作用于船體上流體動(dòng)力和力矩分解為(2-1-2)其中,、、分別為裸船體、槳和舵上單獨(dú)作用的流體動(dòng)力和力矩,其余為它們之間相互干涉的流體動(dòng)力和力矩,如表示槳對(duì)船體干涉的流體動(dòng)力等。這樣的分解意義明確。但試驗(yàn)時(shí)求取有些項(xiàng)會(huì)有一定的困難,因?yàn)檫@些項(xiàng)數(shù)量級(jí)不大可以忽略。另外,為了表示簡潔,一般可表示成下式(2-1-3)我們進(jìn)一步將作用于裸船體上的流體動(dòng)力和力矩按產(chǎn)生的性質(zhì)分解為慣性類和粘性類流體動(dòng)力和力矩,所以式(2-1-3)可改寫為(2-1-4)其中,下標(biāo)表示為慣性類,表示粘性類流體動(dòng)力和力矩。將式(2-1-4)代入式(2-1-1)可得(2-1-5)一般假設(shè)坐標(biāo)系原點(diǎn)與船舶中心和重心重合,同時(shí)將慣性類的力與力矩轉(zhuǎn)換為船舶沿、軸的附加質(zhì)量和繞軸的附加質(zhì)量慣性矩。則式(2-1-5)變?yōu)橄率剑簩?duì)于船舶前進(jìn)對(duì)于船舶橫移 (2-1-6)對(duì)于船舶轉(zhuǎn)頭式中:、、為作用于裸船體上的流體動(dòng)力,、、為螺旋槳推力,、、為舵力;、為船舶運(yùn)動(dòng)的加速度分量;為轉(zhuǎn)首角加速度;為船舶質(zhì)量;、為船舶沿軸和軸的附加質(zhì)量;為船舶繞軸的質(zhì)量慣性矩;為船舶繞軸的附加質(zhì)量慣性矩?,F(xiàn)將式(2-1-6)中有關(guān)各項(xiàng)的計(jì)算總結(jié)如下:作用于船體流體動(dòng)力的計(jì)算裸船體流體動(dòng)力== (2-1-7)=式中的、是非線性流體動(dòng)力,相對(duì)于線性流體動(dòng)力來說為高階小量可以略去。螺旋槳推力==(2-1-8)這里僅考慮船舶的前進(jìn)運(yùn)動(dòng),螺旋槳橫向力和力矩應(yīng)為零,即==0。舵力, (2-1-9)其中 (2-1-10)二、作用于船體流體動(dòng)力的線性化所謂線性船舶,是指船舶受到的外界干擾較小,它的運(yùn)動(dòng)始終在平衡狀態(tài)附近。作用于船舶上的各種流體動(dòng)力是線性項(xiàng)取支配地位,二階以上項(xiàng)的數(shù)量級(jí)相對(duì)較小可以忽略不計(jì)。一般把船舶的勻速直線運(yùn)動(dòng)作為初始平衡狀態(tài)。假設(shè),,,,為船舶的初始縱向速度。船舶受到外界干擾后,運(yùn)動(dòng)狀態(tài)變化量分別為,,和,從而運(yùn)動(dòng)狀態(tài)為,,,。下面討論由擾動(dòng)運(yùn)動(dòng)產(chǎn)生的作用于船舶上的流體動(dòng)力。裸船體流體動(dòng)力保留一階小量、、和,略去二階以及上的高階小量,得== (2-1-11)=其中為船舶直航阻力,可表示為=-,為船舶的總阻力系數(shù),它也是船速的函數(shù),則上式可展示為=-(2-1-12)為船速時(shí)的總阻力系數(shù)。對(duì)上式作對(duì)的線性化處理,并令-- (2-1-13)為船舶在初始狀態(tài)時(shí)的直航阻力,則(2-1-14)螺旋槳推力由于(2-1-8)中為進(jìn)速系數(shù)J的函數(shù),而又是的函數(shù),則展開為=(2-1-15)其中,為船舶初始航行狀態(tài)時(shí)的推力系數(shù),且=(2-1-16)令則式(2-1-15)變?yōu)椋?-1-17)舵力舵處來流的沖角=()中,考慮到小擾動(dòng)時(shí),()為小量,可用近似,且=,故有=+(2-1-18)因此(2-1-19)其中為小量,≈,得(2-1-20)將式(2-1-20)代入式(2-1-18),并考慮到為小量,有≈,≈1,則(2-1-21)++≈++(2-1-22)++≈++(2-1-23)由于小擾動(dòng),上面討論中最后假設(shè)≈1,且采用了下列簡化符號(hào)分別將上述結(jié)果代入式(2-1-6)可得△+++(2-1-24)++在式(2-1-24)中,考慮以下幾個(gè)問題:在初始狀態(tài)時(shí),船舶阻力應(yīng)與螺旋槳推力平衡,即(2-1-25)2)忽略二階量和并令(2-1-26)則式(2-1-24)為△+(2-1-27)由式(2-1-27)可見,在線性運(yùn)動(dòng)時(shí)第一方程與第二、三方程解耦,即船舶縱向運(yùn)動(dòng)與橫向和旋轉(zhuǎn)運(yùn)動(dòng)互無影響,可以分別考慮。假設(shè)我們暫不考慮縱向速度變化的影響設(shè)船舶受外界小擾動(dòng)時(shí),縱向速度不變,則式(2-1-27)中的第一式可以除去,其余兩式可以改為(2-1-28)式(2-1-28)即為線性船舶運(yùn)動(dòng)數(shù)學(xué)模型,它和由整體模型觀點(diǎn)而得到的線性船舶運(yùn)動(dòng)方程的形式完全相同。 2.1.2線性響應(yīng)模型一、二階線性響應(yīng)模型由式(2-1-28)推導(dǎo)的響應(yīng)模型一般由兩種方法,一種直接消去法,另一種是拉普拉斯變換法,我們采用后一種方法。為使問題簡化,假設(shè)初始狀態(tài)為勻速直線運(yùn)動(dòng),則所有運(yùn)動(dòng)變量具有零初值,這樣,經(jīng)拉普拉斯變換后,方程組(2-1-28)為一代數(shù)方程組(2-1-29)其中,,,。由此可解得舵角到轉(zhuǎn)首角速度的傳遞函數(shù)為(2-1-30)其中,;;;。同理可得舵角到橫漂速度的傳遞函數(shù),但在實(shí)際應(yīng)用中,在技術(shù)上人們對(duì)轉(zhuǎn)首運(yùn)動(dòng)要比對(duì)橫向速度考慮得多。這在另一方面也是因?yàn)樵趯?shí)船或自航船模試驗(yàn)中,航向或轉(zhuǎn)首角速度的測(cè)量比較容易,而對(duì)橫向速度到目前為止還沒有足夠精確的測(cè)量設(shè)備。特別是對(duì)于實(shí)船,更是如此。所以我們僅考慮轉(zhuǎn)首運(yùn)動(dòng)。二、一階線性模型船舶運(yùn)動(dòng)時(shí)呈現(xiàn)出非常大的慣性,并且操舵機(jī)構(gòu)的能量有限,能提供的舵葉運(yùn)動(dòng)速度通常低于,因此船舶運(yùn)動(dòng)具有低頻特征。傳遞函數(shù)式(2-1-30)在低頻下可降階為一階模型(2-1-31)其中,與式(2-1-30)中的相同,且。相應(yīng)地,二階轉(zhuǎn)首響應(yīng)方程也可近似簡化為一階轉(zhuǎn)首響應(yīng)方程,即(2-1-32)其暫態(tài)響應(yīng)方程如下(2-1-33)通過前面的計(jì)算求出操縱性指數(shù)、,給出舵角則可計(jì)算出時(shí)間后的轉(zhuǎn)頭角。將式(2-1-32)積分求解,可得到(2-1-34)式中:為積分常數(shù)。若在正舵直進(jìn)中開始操舵,在初始條件時(shí),,可得到操舵開始后的變化為:(2-1-35)因此船舶操舵以后的旋回角速度將取決于和的值。2.2船舶運(yùn)動(dòng)的風(fēng)、流干擾力數(shù)學(xué)模型無論是研究船舶操縱運(yùn)動(dòng)仿真還是船舶運(yùn)動(dòng)的閉環(huán)控制,都要求有相當(dāng)準(zhǔn)確地描述自然環(huán)境、海況和氣象環(huán)境造成的作用于船體上的干擾力的數(shù)學(xué)模型。本文僅考慮風(fēng)與流對(duì)船舶運(yùn)動(dòng)的影響。由于風(fēng)、流的干擾具有明顯的隨機(jī)性,故建立風(fēng)、流的干擾力模型較對(duì)船舶本身的動(dòng)態(tài)研究困難更大。本節(jié)就從比較實(shí)用的角度介紹風(fēng)、流干擾的物理本質(zhì),干擾力的計(jì)算方法不是那么的精確,只是想讓大家認(rèn)識(shí)到風(fēng)、流對(duì)于船舶運(yùn)動(dòng)的大致影響。2.2.1風(fēng)的干擾力數(shù)學(xué)模型船舶在海上或港內(nèi)航行時(shí),其上層建筑將受風(fēng)力的作用,致使船舶偏離航向或引起操船困難。特別是在港內(nèi)低速航行時(shí),風(fēng)力對(duì)操縱性的影響尤為顯著。了解船舶在風(fēng)中的操縱運(yùn)動(dòng)性能,可避免產(chǎn)生事故,還可以利用風(fēng)力的作用來增加船舶操縱的靈活性。風(fēng)作用在船體上層建筑以上造成流體動(dòng)力和力矩,在船舶平面運(yùn)動(dòng)情況下,具有分量、和。在船舶上感受的風(fēng),風(fēng)速和風(fēng)向與實(shí)際的不同,原因在于船速的影響。我們將實(shí)際風(fēng)速、風(fēng)向稱為絕對(duì)風(fēng)速、絕對(duì)風(fēng)向;將船舶上感受到的風(fēng)速、風(fēng)向稱為相對(duì)風(fēng)速、相對(duì)風(fēng)向。下面介紹作用于船體上的平均風(fēng)壓力和力矩的計(jì)算。船體上的風(fēng)壓力和力矩的計(jì)算作用于船舶的風(fēng)力其值可用Hughes公式予以估算:(2-2-1)式中:為水線上船體所受風(fēng)力;為空氣密度;為風(fēng)力系數(shù);為相對(duì)風(fēng)速,;為相對(duì)風(fēng)舷角;為水線上船體正面投影面積;為水線上船體側(cè)面投影面積。相對(duì)風(fēng)速和風(fēng)舷角可用船上的風(fēng)速儀測(cè)得,受風(fēng)面積可以從該船資料中根據(jù)不同吃水求得。風(fēng)力系數(shù)、風(fēng)動(dòng)力作用點(diǎn)至船首的距離以及風(fēng)動(dòng)力角等值,根據(jù)船體上層建筑的形狀、布局的不同及風(fēng)向的不同而有差異,一般用實(shí)船風(fēng)洞試驗(yàn)獲得。表1是根據(jù)各個(gè)船舶風(fēng)洞試驗(yàn)結(jié)果得到的。表1、、和變化關(guān)系00.45~0.95201.20~1.450.25~0.4045~75401.40~1.750.30~0.4570~82601.25~1.500.35~0.4570~82801.05~1.250.40~0.5085~87901.05~1.250.45~0.5587~951201.25~1.500.55~0.7092~1051401.40~1.800.58~0.80100~1151601.25~1.500.60~0.85105~1301800.60~0.90(注:為船舶垂線間長,)當(dāng)船舶處于運(yùn)動(dòng)狀態(tài)時(shí),以重心為支點(diǎn),則風(fēng)動(dòng)壓力轉(zhuǎn)船力矩為:(2-2-2)式中:為重心至船首的距離,(為船舶垂線間長,)。2.2.2水流的干擾力數(shù)學(xué)模型通常來說,流從時(shí)間上分為定常和非定常,從地理位置上分為均勻和非均勻的假設(shè),即流速度的數(shù)值和方向不隨時(shí)間和空間點(diǎn)的位置變化而變化。這種流的干擾模型只適用于海洋上的操縱模擬,在港灣、航道、近海航道等處的流一般會(huì)因時(shí)因地發(fā)生變化。而本文僅考慮均勻流的干擾模型。實(shí)用中在考慮水動(dòng)力時(shí),常將其分為首尾向分力和橫向分力加以處理,而首尾向水動(dòng)力在操縱中可通過用車予以克服,一般商船可不予以考慮。這樣,只考慮橫向分力:(2-2-3)式中:為水動(dòng)力系數(shù);為流壓力橫向分力系數(shù);為船舶吃水;為船舶兩柱間長;為相對(duì)流速(水流對(duì)船速度),。流壓力圍繞船舶重心所產(chǎn)生的流壓力轉(zhuǎn)船力矩可用下式估算:(2-2-4)式中:為重力加速度,;為船舶水線長,;為流壓力轉(zhuǎn)船力矩系數(shù)。表2列出了不同水深/吃水下,與流舷角的關(guān)系。力矩系數(shù)20406080901001201401600.010.080.070.000.040.080.120.110.020.100.200.150.010.080.180.300.320.120.280.480.380.050.150.300.600.600.38表2不同水深/吃水下與流舷角的關(guān)系當(dāng)為表中某兩值之間時(shí),可用插值法求得。2.2.3風(fēng)和流共同作用下船舶的操縱模型將風(fēng)和水流的影響轉(zhuǎn)換為產(chǎn)生同樣大小力矩的舵角的變化,這個(gè)附加舵角用表示。在式(2-1-33)的基礎(chǔ)上,通過計(jì)算可得到系統(tǒng)暫態(tài)方程為:(2-2-5)將舵轉(zhuǎn)船力矩替換為風(fēng)和水流產(chǎn)生的轉(zhuǎn)船力矩,則附加舵角可表示為:(2-2-6)這樣我們就建立了有外界干擾力的響應(yīng)型船舶運(yùn)動(dòng)數(shù)學(xué)模型。即輸入控制量為舵角,輸出量為船舶的首向角或首搖角速度。但是對(duì)于該系統(tǒng)我們還需要大量的計(jì)算,利用已知的船型參數(shù)求出該模型中的參數(shù),我們將在下面的一節(jié)中給出詳細(xì)的參數(shù)計(jì)算過程。2.3模型參數(shù)的計(jì)算由于我們模擬是13000DWT散貨船,根據(jù)提供的船體的基本參數(shù)和主機(jī)的基本參數(shù)(詳細(xì)見附錄),可以對(duì)模型的參數(shù)進(jìn)行一系列的計(jì)算。但是由于計(jì)算過程繁瑣,具體分為三個(gè)部分來敘述。2.3.1船舶質(zhì)量與轉(zhuǎn)動(dòng)慣量的計(jì)算1、船舶在運(yùn)行中其質(zhì)量為空船質(zhì)量與其載重量之和,即,由已知條件求出為:2、由阿基米德原理知船舶的浮力即為船舶的質(zhì)量,即可以求出其排水量為(我們?cè)O(shè)為淡水,密度為)3、方型系數(shù)的計(jì)算通過查閱書籍知方形系數(shù),代入數(shù)據(jù)求出4、附加質(zhì)量、的計(jì)算從實(shí)用計(jì)算的角度來看,到目前為止,計(jì)算附加質(zhì)量和附加慣性矩有兩種方法,一是周昭明等人的回歸公式;另一個(gè)是Clarke等人的回歸公式。在這里主要采用Clarke的回歸公式。便于下面計(jì)算我們先用周昭明回歸公式計(jì)算。=2\*GB2⑵根據(jù)Clarke回歸公式~,代入數(shù)據(jù)得,5、轉(zhuǎn)動(dòng)慣量和附加轉(zhuǎn)動(dòng)慣量計(jì)算=1\*GB2⑴查閱書籍知=2\*GB2⑵根據(jù)Clarke回歸2.3.2流體動(dòng)力及流體動(dòng)力導(dǎo)數(shù)的計(jì)算1、基礎(chǔ)量的計(jì)算=1\*GB2⑴螺旋槳處的來流速度查閱資料,對(duì)于單螺旋槳船其伴流系數(shù),則,代入數(shù)據(jù)求出=2\*GB2⑵流入舵的有效縱向速度根據(jù)藤井提出的公式,其中為槳的增速量,為試驗(yàn)系數(shù),為,為螺旋槳的失滑。取螺距比為,則。而,代入數(shù)據(jù)可以求出(為螺旋槳的轉(zhuǎn)速)=3\*GB2⑶整流系數(shù)可由下式求出=4\*GB2⑷可視為舵的縱向坐標(biāo),概念上應(yīng)為,但是大量的模型試驗(yàn)結(jié)果表明,約為的倍,取=5\*GB2⑸、為計(jì)入操舵誘導(dǎo)船體橫向力后關(guān)于舵力的修正因子,可用下面的擬合式:;為操舵誘導(dǎo)船體橫向力作用中心到船舶重心的距離,,實(shí)用上約為(~),取為,計(jì)算結(jié)果如下:,=6\*GB2⑹是舵升力系數(shù)在時(shí)的斜率,在船舶操縱性研究中,對(duì)可采用Prandtl公式,其中為展弦比,根據(jù)資料查閱單槳貨船,代入求出=7\*GB2⑺舵面積查閱得知其計(jì)算公式為,其中對(duì)于單槳單舵海洋貨船~,取為;為垂線間長,將數(shù)據(jù)代入公式求得2、流體動(dòng)力導(dǎo)數(shù)的計(jì)算在第一節(jié)建模的過程中我們已經(jīng)給出了一些公式,利用這些公式將上面求得一些基本量代入公式可求得=1\*GB2⑴=2\*GB2⑵=3\*GB2⑶=4\*GB2⑷由于、是關(guān)于、的函數(shù),故、、、可通過、的偏導(dǎo)求得。下面給出、的表達(dá)式:(2-3-1)其中,;,而;是處橫截面的附加慣性系數(shù)的最大值,對(duì)于船體而言,一般有>,通過查閱資料令。在求、、、時(shí)我們將看作,則計(jì)算結(jié)果如下:=5\*GB2⑸=6\*GB2⑹=7\*GB2⑺=8\*GB2⑻3、流體動(dòng)力的計(jì)算=1\*GB2⑴=2\*GB2⑵=3\*GB2⑶=4\*GB2⑷=5\*GB2⑸=6\*GB2⑹2.3.3、、的計(jì)算由于、、的值的計(jì)算公式在第一節(jié)中已給出計(jì)算公式,因計(jì)算結(jié)果表達(dá)式較為復(fù)雜,我們將通過Simulink給出計(jì)算公式的模擬,從而求出這些值。2.3.4風(fēng)、流模型中的參數(shù)計(jì)算1、風(fēng)力模型中的力與力矩的計(jì)算由公式(2-2-1)、(2-2-2)我們知道式中:為水線上船體所受風(fēng)力;為空氣密度;為風(fēng)力系數(shù);為相對(duì)風(fēng)速,;為相對(duì)風(fēng)舷角;為水線上船體正面投影面積;為水線上船體側(cè)面投影面積;為重心至船首的距離,(為船舶垂線間長,)。=1\*GB2⑴取空氣密度=2\*GB2⑵由船體的參數(shù)我們可以計(jì)算出、大約為,=3\*GB2⑶由第二節(jié)中的表1知、、與相對(duì)風(fēng)舷角有關(guān),但是具體的數(shù)學(xué)關(guān)系不是很清楚,基于這點(diǎn),這三個(gè)量的計(jì)算我們將在Simulink中利用其模塊進(jìn)行插值從而求出任意一個(gè)下對(duì)應(yīng)的、、的值。從而2、流模型中的力與力矩的計(jì)算因?yàn)閺墓剑?-2-6)我們發(fā)現(xiàn)只需計(jì)算流力矩,而由公式(2-2-4)式中:為重力加速度,;為船舶水線長,;為船舶吃水;為流壓力轉(zhuǎn)船力矩系數(shù)。=1\*GB2⑴為與前面的計(jì)算保持一致我們令=2\*GB2⑵由前面的分析知與流舷角和不同水深有關(guān),我們?nèi)?duì)應(yīng)的值在Simulink中進(jìn)行數(shù)值插值,從而得出不同流舷角對(duì)應(yīng)的因此3、附加舵角的計(jì)算由公式(2-2-6)知公式中,其中為有效沖角,由于其計(jì)算表達(dá)式中、與風(fēng)速、風(fēng)舷角、流速、流舷角有關(guān),與柴油機(jī)轉(zhuǎn)速和船舶縱向速度有關(guān),所以我們?cè)谶@不給出的展開表達(dá)式,同樣將在Simulink中給出模擬,在模擬時(shí)由于難以求得,我們令其為。接下來我們將在下一章詳細(xì)介紹數(shù)學(xué)模型在Simulink中的建模過程。第三章基于Simulink的船舶運(yùn)動(dòng)模型的建立與仿真3.1Simulink的簡介Simulink是一種用來實(shí)現(xiàn)計(jì)算機(jī)仿真的軟件工具。它是MATLAB的一個(gè)附加組件,用來提供一個(gè)系統(tǒng)級(jí)的建模與動(dòng)態(tài)仿真工作平臺(tái)。它一般可以附在MATLAB上同時(shí)安裝,也有獨(dú)立安裝版。Simulink是用模塊組合的方法來使用戶能夠快速、準(zhǔn)確地創(chuàng)建動(dòng)態(tài)系統(tǒng)的計(jì)算機(jī)模型的,特別是對(duì)于復(fù)雜的非線性系統(tǒng),它的效果更為明顯。Simulink是一種基于MATLAB的框圖設(shè)計(jì)環(huán)境,支持線性系統(tǒng)和非線性系統(tǒng),可以用連續(xù)采樣時(shí)間、離散采樣時(shí)間或兩種混合的采樣時(shí)間進(jìn)行建模,它也支持多速率系統(tǒng),也就是系統(tǒng)中的不同部分具有不同的采樣速率。為了創(chuàng)建動(dòng)態(tài)系統(tǒng)模型,Simulink提供了一個(gè)建立模型方塊圖的圖形用戶接口(GUI),這個(gè)創(chuàng)建過程只需要單擊和拖動(dòng)鼠標(biāo)操作就能完成。利用這個(gè)接口,用戶可以像用筆在草紙上繪制一樣,只要構(gòu)建出系統(tǒng)的方塊圖即可,這與以前的仿真軟件包要求解算微分方程和編寫算法語言程序不同,它提供的是一種更快捷、更直接明了的方式,而且用戶可以立即看到系統(tǒng)的仿真結(jié)果。Simulink沒有單獨(dú)的語言,但它提供了S函數(shù)規(guī)則。所謂的S函數(shù)可以是一個(gè)M文件、FORTRAN程序、C或C++語言程序等,通過特殊的語言規(guī)則使之能夠被Simulink模型或模塊調(diào)用。S函數(shù)使Simulink更加充實(shí)、完備、具有更大的處理能力。同MATLAB一樣,Simulink也不是封閉的,它允許用戶可以很方便的定制自己的模塊或模塊庫。Simulink中包括了許多實(shí)現(xiàn)不同功能的模塊庫,如Sources(輸入源模塊庫)、Sinks(輸出模塊庫)、連續(xù)模塊庫、MathOperations(數(shù)學(xué)模塊庫),以及線性模塊和非線性模塊等各種組件模塊庫。用戶可以自定義和創(chuàng)建自己的模塊,利用這些模塊,用戶可以創(chuàng)建層次化系統(tǒng)模型,可以自上而下或自下而上地閱讀模型,這不僅方便工程人員的設(shè)計(jì),而且可以使用自己的模型方塊圖功能更清晰,結(jié)構(gòu)更合理。創(chuàng)建了系統(tǒng)模型后,用戶可以利用Simulink菜單或在MATLAB命令的方式選擇不同的積分方法來仿真系統(tǒng)模型。對(duì)于交互式的仿真過程,使用菜單是非常方便的,如果要運(yùn)行大量的仿真,使用命令行方法則非常有效。例如,執(zhí)行蒙卡洛仿真,或想要掃描某一范圍的參數(shù)值,可以在命令行輸入變參數(shù)值,觀察參數(shù)值改變后的系統(tǒng)輸出。此外,利用示波器顯示模塊或其他顯示模塊,用戶可以在仿真的同時(shí)觀察仿真結(jié)果,而且還可經(jīng)在仿真運(yùn)行期間改變仿真參數(shù),并同時(shí)觀察改變后的結(jié)果,最后的結(jié)果數(shù)據(jù)也可以輸出到MATLAB工作區(qū)進(jìn)行處理,或利用命令行命令在圖形窗口中繪制仿真曲線。Simulink中的模型分析工具包括線性化工具和調(diào)整工具,這可以從MATLAB命令行獲取。MATLAB及其工具箱內(nèi)還有許多其他的適用于不同工程領(lǐng)域的分析工具,由于MATLAB與Simulink是集成在一起的因此任何時(shí)候用戶都可以在這兩個(gè)環(huán)境中仿真、分析和修改模型。Simulink系統(tǒng)建模的主要特性是:=1\*GB3①框圖式建模。Simulink提供了一個(gè)圖形化的建模環(huán)境,通過鼠標(biāo)單擊和拖拉操作進(jìn)行框圖式建模;=2\*GB3②支持非線性系統(tǒng);=3\*GB3③支持混合系統(tǒng)仿真,即系統(tǒng)中包含連續(xù)采樣時(shí)間和離散采樣時(shí)間;=4\*GB3④支持多速率系統(tǒng)仿真,即系統(tǒng)中存在以不同速率運(yùn)行的組件;=5\*GB3⑤MATLAB與Simulink是集成在一起,因此,無論何時(shí)在任何環(huán)境下都可以建模、分析和仿真用戶模型3.2線性響應(yīng)型船舶運(yùn)動(dòng)模型的建立要在Simulink中建立一個(gè)模型,首先我們需要先啟動(dòng)Simulink,但由于Simulink是MATLAB中的一個(gè)附加組件,所以需先啟動(dòng)MATLAB。在MATLAB窗口中單擊按鈕或在命令窗口中輸入命令Simulink,將會(huì)進(jìn)入Simulink庫模塊瀏覽界面,如圖3-1所示。單擊窗口左上方的按鈕,Simulink會(huì)打開一個(gè)名為untitled的模型窗口,如圖3-2所示。圖3-1Simulink的主界面—庫模塊瀏覽器圖3-2空的模塊窗口下面即可在新創(chuàng)建的空模塊窗口進(jìn)行模型的創(chuàng)建。3.2.1流體動(dòng)力模型的建立1、流體動(dòng)力表達(dá)式的分析我們?cè)诘诙乱呀?jīng)將流體動(dòng)力的表達(dá)式給出,如下所示:=1\*GB2⑴=2\*GB2⑵=3\*GB2⑶=4\*GB2⑷=5\*GB2⑸=6\*GB2⑹下面只需要根據(jù)得到的公式進(jìn)行模型的建立,觀察得知有三個(gè)輸入量即、、,且、、、中都含有相同的一個(gè)表達(dá)式即(3-2-1),所以我們先將建立這個(gè)表達(dá)式的模型。2、表達(dá)式(3-2-1)模型的建立=1\*GB2⑴添加模塊=1\*alphabetica、雙擊Simulink庫塊瀏覽器窗口中的源圖標(biāo),打開源模塊庫(Sources),如圖3-3所示。圖3-3打開源模塊庫從源模塊庫(Sources)中把常數(shù)模塊(Constant)拖曳到模型窗口,用鼠標(biāo)右鍵點(diǎn)中此模塊不放并移動(dòng)鼠標(biāo),則完成了此模塊的復(fù)制,再次重復(fù)這樣的操作,即得到三個(gè)常數(shù)模塊,如圖3-4所示。圖3-4添加常數(shù)模塊=2\*alphabeticb、打開數(shù)學(xué)模塊庫(MathOperations),將增益模塊(Gain)、除法模塊(Divide)、開方模塊(Sqrt)拖到窗口中;再打開用戶自定義函數(shù)模塊庫(User-DefinedFunctions),將自定義函數(shù)模塊(Fcn)拖至窗口中。根據(jù)公式(3-2-1)中的運(yùn)算符號(hào)把相應(yīng)的模塊按上述方法進(jìn)行復(fù)制,并將各模塊移動(dòng)至適當(dāng)位置,如圖3-5所示。 圖3-5添加剩余所需模塊=3\*alphabeticc、各模塊參數(shù)的設(shè)置只需雙擊各模塊即會(huì)彈出其參數(shù)設(shè)置界面。將Constant當(dāng)作V,Constant1當(dāng)作u,Constant2當(dāng)作n。Gain中的值不變?yōu)?,F(xiàn)cn中的參數(shù)項(xiàng)的表達(dá)式變?yōu)閡^2,如圖3-6所示。圖3-6Fcn參數(shù)的設(shè)置將Gain1中的值變?yōu)?.651,Gain2中的值變?yōu)?,F(xiàn)cn1中的表達(dá)式改為1+6.3*(1-u)^1.5,如圖3-7所示。圖3-7Fcn1參數(shù)的設(shè)置改變Divide1的參數(shù)輸入個(gè)數(shù),只需將輸入個(gè)數(shù)項(xiàng)變?yōu)?//,即實(shí)現(xiàn)輸入量為三,如圖3-8所示。圖3-8Divide1輸入量的設(shè)置=2\*GB2⑵改變模塊注釋如將Constant改為V,雙擊Constant字樣即可以進(jìn)行操作,如圖3-9所示。下面按此方法依次將Constant1改為u,Constant2改為n。當(dāng)想改變模塊大小時(shí)需先選中模塊,模塊四角出現(xiàn)了小方塊。單擊一個(gè)角上的小方塊,并按住鼠標(biāo)鍵,拖曳鼠標(biāo),如圖3-10所示。圖3-9改變標(biāo)簽的操作圖3-10改變模塊大小的操作=3\*GB2⑶連接模塊一般模塊左邊的“>”符表示輸入,右邊的“>”符表示輸出。將鼠標(biāo)指針放到Constant模塊的輸出口處,則鼠標(biāo)指針即變?yōu)槭植嫘?,拖曳鼠?biāo)從輸出口到Gain的輸入口,當(dāng)放開鼠標(biāo)按鍵后,信號(hào)線就變成了帶有指向信號(hào)輸入方向箭頭的有向線段。當(dāng)遇到需要引信號(hào)線的分支時(shí),如在Gain1和Divide1之間,可在信號(hào)線某處按下鼠標(biāo)右鍵,則指針變?yōu)槭植嫘?。按住鼠?biāo)并拖曳到Divide的乘法輸入端端口處,則十字叉變?yōu)殡p十字叉形。放開鼠標(biāo)按鍵,新的分支信號(hào)線形成了。接下來用同樣的方法完成剩余模塊的連接,如圖3-11所示。圖3-11表達(dá)式(3-2-1)的模型圖3、流體動(dòng)力模型的建立=1\*GB2⑴按照公式將所需的模塊按照上述的方法拖入到模型窗口中=2\*GB2⑵設(shè)置各模塊的參數(shù)值,并改變模塊的標(biāo)簽=3\*GB2⑶連接模塊,結(jié)果如圖3-12所示。圖3-12流體動(dòng)力模型3.2.2操縱性指數(shù)K、T模型的建立我們從K、T的計(jì)算公式可以看出其與上節(jié)的流體動(dòng)力以及質(zhì)量和轉(zhuǎn)動(dòng)慣量有關(guān),故在上述流體動(dòng)力模型的基礎(chǔ)上來建立K、T的模型。方法同上面的相似。=1\*GB2⑴從模塊庫中添加所需的模塊到模型窗口中=2\*GB2⑵改變模塊的參數(shù)以及標(biāo)簽名=3\*GB2⑶連接模塊。結(jié)果如圖3-13所示。圖3-13K、T模型的建立3.2.3線性響應(yīng)型船舶運(yùn)動(dòng)模型的建立由于在上一小節(jié)我們已經(jīng)將操縱性指數(shù)K、T模型建好,現(xiàn)在只需要將表達(dá)式(2-1-33)的模型建立好即可實(shí)現(xiàn)以舵角為輸入,轉(zhuǎn)首角為輸出的響應(yīng)型船舶運(yùn)動(dòng)模型。=1\*GB2⑴添加模塊因?yàn)橐浑A轉(zhuǎn)首響應(yīng)方程為(其中),其積分求解后為,所以在建立的模型上再進(jìn)行一次積分即可求出轉(zhuǎn)首角的變化。根據(jù)分析從連續(xù)模塊庫(Continuous)中拖一個(gè)積分模塊(Integrator)到模型窗口中;從源模塊庫(Sources)中拖一個(gè)仿真時(shí)間模塊(Clock)到模型窗口中;再從輸出顯示模塊庫(Sink)中拖示波器模塊(Scope)、顯示模塊(Display)至窗口中,以便在運(yùn)行仿真過程中觀察所需數(shù)值的變化和航跡的變化。其余的所需模塊通過在內(nèi)部進(jìn)行復(fù)制。=2\*GB2⑵設(shè)置模塊參數(shù)以及改變模塊標(biāo)簽=3\*GB2⑶連接模塊連接好后的模型見圖3-14。我們?cè)O(shè)置V=5,u=5,n=500,δ=35,進(jìn)行運(yùn)行仿真,過程中沒有報(bào)錯(cuò),所以模型建立基本正確。至于仿真結(jié)果我們?cè)谙旅鏁?huì)進(jìn)行詳細(xì)分析。圖3-14線性響應(yīng)型船舶運(yùn)動(dòng)模型3.3風(fēng)、流模型的建立由于剛建好的線性響應(yīng)型船舶運(yùn)動(dòng)模型的界面空間不是很大,考慮到Simulink中有創(chuàng)建子系統(tǒng)的功能,所以我們考慮新創(chuàng)建一個(gè)Simulink模型來創(chuàng)建風(fēng)、流模型,然后將創(chuàng)建好的模型壓縮為子系統(tǒng),最后全部復(fù)制到圖3-14中。3.3.1風(fēng)力模型的建立方法同上面的相似,分析公式可知輸入量為相對(duì)風(fēng)速和風(fēng)舷角,而、、和變化關(guān)系見第二章的表1。通過計(jì)算模擬、和的關(guān)系大致可以如下式表達(dá):,則通過查表模塊進(jìn)行擬合。=1\*GB2⑴添加模塊對(duì)于常用的模塊我們?cè)诖瞬辉儋樖?,?duì)于,從查表模塊庫(LookupTables)中將LookupTable模塊添加到窗口中;從數(shù)學(xué)模塊庫(MathOperations)中將特殊數(shù)學(xué)函數(shù)(MathFunctions)模塊加入到窗口中。=2\*GB2⑵設(shè)置模塊參數(shù)依照表1我們將LookupTable模塊中的Main項(xiàng)內(nèi)的參數(shù)改為圖3-15所示;對(duì)于MathFunctions模塊,其參數(shù)設(shè)置模塊界面中的Function后有一個(gè)下拉符號(hào),點(diǎn)擊將公式變?yōu)閟quare,如圖3-16所示。圖3-15的擬合圖3-16MathFunctions模塊公式的設(shè)置=3\*GB2⑶連接模塊由于在Simulink中三角函數(shù)的默認(rèn)輸入是弧度,所以在sin(u)前需要將弧度轉(zhuǎn)化為角度,連接后的見圖3-17。圖3-17風(fēng)力模型3.3.2流力模型的建立同樣根據(jù)公式分析輸入量,由于與流舷角有關(guān),且研究方法同的一樣,參數(shù)設(shè)置見圖3-18??芍斎肓繛榱骶€角和相對(duì)流速。因?yàn)榻⒌姆椒ㄍL(fēng)力模型相似,所以就不再敘述,結(jié)果如圖3-19。圖3-18的擬合圖3-19流力模型3.3.3附加舵角模型的建立根據(jù)公式,可知與有關(guān),而與線性響應(yīng)型船舶運(yùn)動(dòng)模型的相關(guān)量有關(guān),所以在這我們先把當(dāng)作常數(shù)輸入。結(jié)果如圖3-20所示。圖3-20風(fēng)、流引起的附加舵角模型3.4模型的整合通過上幾節(jié)的操作已經(jīng)將所需的模型建好,但是并不在一個(gè)文件中,所以需要將這幾個(gè)分散的模型整合到一個(gè)模型中。我們知道只需要將風(fēng)、流引起的附加舵角的模型加入到線性響應(yīng)型船舶運(yùn)動(dòng)模型中即可。但是由于操作界面尺寸的限制,同時(shí)為了模型簡潔化,將采用Simulink中的壓縮子系統(tǒng)的方法。3.4.1壓縮子系統(tǒng)隨著模型變得越來越大、越來越復(fù)雜,人們很難輕易地讀懂它們。在這種情況下,子系統(tǒng)通過把大的模型分割成幾個(gè)小的模型系統(tǒng)以使得整個(gè)模型更簡捷、可讀性更高,而且這種操作并不復(fù)雜。創(chuàng)建Simulink子系統(tǒng)共有兩種方法:第一種是對(duì)已存在的模型的某些部分或全部使用菜單命令【Edit〉CreateSubsystem】進(jìn)行壓縮轉(zhuǎn)化,使之成為子系統(tǒng);另一種方法是使用Connections模塊庫中的Subsystem模塊直接創(chuàng)建子系統(tǒng)。我們采用第一種方法將附加舵角模型壓縮為子系統(tǒng)。1、首先使用范圍框?qū)⒁獕嚎s成子系統(tǒng)的部分選中,包括模塊和信號(hào)線;也可以通過shift鍵逐一添加。如圖3-21所示。圖3-21選中要壓縮的模塊2、在模塊窗口菜單選項(xiàng)中選擇【Edit〉CreateSubsystem】,Simulink將會(huì)用一個(gè)子系統(tǒng)模塊代替被選中的模塊組,將模塊位置適當(dāng)調(diào)整,結(jié)果如圖3-22所示。圖3-22壓縮后的模型圖3、若想查看子系統(tǒng)的內(nèi)容或?qū)ψ酉到y(tǒng)進(jìn)行再編輯,可以雙擊子系統(tǒng)模塊。3.4.2模型的組合1、將壓縮后的子系統(tǒng)整體復(fù)制到線性響應(yīng)型船舶運(yùn)動(dòng)模型中,由于圖3-22模型中的Vr與圖3-14中的量有關(guān),所以根據(jù)關(guān)系將兩者進(jìn)行連接。結(jié)果如圖3-23所示。圖3-23組合后的模型2、由于這樣不容易觀察輸入量和輸出量,故采用相同的方法壓縮子系統(tǒng),將圖3-23的模塊進(jìn)行壓縮,壓縮后的模塊見圖3-24。圖3-24壓縮后的船舶運(yùn)動(dòng)模型3、運(yùn)行模型在過程中沒有發(fā)現(xiàn)任何問題,但是將所有輸入量值設(shè)為零時(shí),系統(tǒng)報(bào)錯(cuò),由于模塊中存在除法且為零項(xiàng)位于分母位置,故將其做稍微修改,修改處見圖3-25。在后面的仿真過程中表明對(duì)原系統(tǒng)的精確度影響甚小。 圖3-25對(duì)于原模型的修改處3.5仿真試驗(yàn)由于在建立船舶運(yùn)動(dòng)數(shù)學(xué)模型和隨后確定流體動(dòng)力及其導(dǎo)數(shù)等參數(shù)時(shí),引用了一系列的簡化和假設(shè),從而得到的結(jié)果只能是近似的。而這種方法本身不能證實(shí)它自己的近似程度,故我們將對(duì)其作一些典型的試驗(yàn)來進(jìn)行分析和比較。同時(shí)還通過試驗(yàn)來觀察風(fēng)與流對(duì)船舶運(yùn)動(dòng)的影響。船舶在實(shí)際操作中可能遇到的操縱情況是各種各樣的,不可能一一進(jìn)行試驗(yàn),因此只進(jìn)行幾個(gè)典型的試驗(yàn)。3.5.1回轉(zhuǎn)試驗(yàn)船舶的回轉(zhuǎn)運(yùn)動(dòng)是船舶最基本的操縱運(yùn)動(dòng)。船舶作回轉(zhuǎn)運(yùn)動(dòng)時(shí),其重心G的運(yùn)動(dòng)軌跡稱為回轉(zhuǎn)圈。船舶的回轉(zhuǎn)圈是衡量船舶操縱性優(yōu)劣的方法之一?;剞D(zhuǎn)試驗(yàn)的目的是評(píng)價(jià)回轉(zhuǎn)的迅速程度和所需要的水域大小?;剞D(zhuǎn)圈可用下列參數(shù)表征:進(jìn)距;正橫距;戰(zhàn)術(shù)回轉(zhuǎn)直徑;定常回轉(zhuǎn)直徑。船舶在滿舵回轉(zhuǎn)時(shí)的定?;剞D(zhuǎn)直徑稱為最小回轉(zhuǎn)直徑,它是評(píng)價(jià)船舶回轉(zhuǎn)性的重要指標(biāo)。定?;剞D(zhuǎn)直徑與船長的比值(D/L)稱為相對(duì)回轉(zhuǎn)直徑,常用此比值來衡量船舶的回轉(zhuǎn)性能。為了檢驗(yàn)本模型是否能達(dá)到操縱的基本要求,做了如下船舶回轉(zhuǎn)性實(shí)驗(yàn)。由于本模型的限制,回轉(zhuǎn)試驗(yàn)的操作步驟大致如下:設(shè)置船速和柴油機(jī)轉(zhuǎn)速(都設(shè)為額定值),并保持不變。先設(shè)舵角為,暫不考慮風(fēng)、流的影響。開始運(yùn)行模塊,待船舶回轉(zhuǎn)一圈時(shí)立馬將變?yōu)?;再等船舶以此舵角航行一圈時(shí),將舵角變?yōu)?。在此過程中記錄航行軌跡見圖3-26。圖3-26船舶回轉(zhuǎn)性試驗(yàn)圖回轉(zhuǎn)圈由大到小,依次為操舵、、時(shí)所劃軌跡。計(jì)算可知對(duì)于時(shí)的相對(duì)回轉(zhuǎn)直徑為8.25,而一般大型貨船的相對(duì)回轉(zhuǎn)直徑為3.5~7.5,相對(duì)回轉(zhuǎn)直徑越小則回轉(zhuǎn)性越好,即船舶操縱性能越好。并且從航向圖(見圖3-27)讀出船舶以額定航速、轉(zhuǎn)速、最大舵角回轉(zhuǎn)一圈的時(shí)間是10分鐘左右。由上述分析知,本型的操縱性不是很好。圖3-27船首轉(zhuǎn)向角隨時(shí)間的變化3.5.2風(fēng)對(duì)船舶運(yùn)動(dòng)影響風(fēng)對(duì)船舶的主要影響是:相對(duì)風(fēng)速作用在船體水線上產(chǎn)生風(fēng)動(dòng)力及風(fēng)動(dòng)力的縱向分力,使船舶的航跡和沖程增加或降低;風(fēng)動(dòng)力的橫向分力,使船舶向下風(fēng)方向漂移;風(fēng)動(dòng)力與船舶重心形成的風(fēng)動(dòng)力轉(zhuǎn)船力矩,使船舶發(fā)生偏轉(zhuǎn)運(yùn)動(dòng)。為了使我們對(duì)影響有形象的了解做如下幾個(gè)試驗(yàn)。舵角,航速為額定航速,相對(duì)風(fēng)速,風(fēng)舷角。船舶的運(yùn)動(dòng)軌跡見圖3-28。(風(fēng)向?yàn)樽员毕蚰希﹫D3-28,的航跡2、舵角,航速為額定航速,相對(duì)風(fēng)速,風(fēng)舷角。船舶航跡如圖3-29所示。(風(fēng)向?yàn)樽员毕蚰希﹫D3-29,時(shí)的航跡有此圖可見,船舶運(yùn)動(dòng)時(shí)受到風(fēng)力的作用會(huì)發(fā)生漂移。3.5.3流對(duì)船舶運(yùn)動(dòng)的影響船舶在均勻水流的水域中航行,其航速等于船速與流速的矢量和,同時(shí)船舶受水流的影響易產(chǎn)生偏轉(zhuǎn)、漂移和橫傾。同樣試驗(yàn)如下:舵角,航速為額定航速,流舷角,相對(duì)流速。船舶航跡如圖3-30所示。(流向?yàn)樽员毕蚰希﹫D30,時(shí)的船舶航跡2、舵角,航速為額定航速,流舷角,相對(duì)流速。船舶航跡見圖3-31。(流方向?yàn)樽晕飨驏|)圖3-31,時(shí)的船舶航跡3、舵角,航速為額定航速,流舷角從,相對(duì)流速。船舶航跡如圖3-32所示。圖3-32,時(shí)的航跡從上面幾個(gè)試驗(yàn)可知在恒流值的作用下,船舶進(jìn)行回轉(zhuǎn)運(yùn)動(dòng)時(shí),船仍進(jìn)行回轉(zhuǎn),但是航跡沿流作用的方向發(fā)生了漂移。3.5.4結(jié)論本模型是建立船舶對(duì)舵響應(yīng)的操縱模型。在模擬操舵后,船舶航向就會(huì)發(fā)生變化,雖然每種船舶航向變化大小不同,但其基本規(guī)律是相同的。在回轉(zhuǎn)試驗(yàn)中,由于每艘船的操縱性指數(shù)不同,故其進(jìn)入回轉(zhuǎn)時(shí)間和回轉(zhuǎn)圈大小就會(huì)不同,但它們的軌跡基本都是在做圓周運(yùn)動(dòng);當(dāng)考慮風(fēng)、流影響時(shí),船舶的航向就會(huì)發(fā)生改變,風(fēng)、流的作用效果有點(diǎn)相似,都會(huì)使船舶發(fā)生漂移,風(fēng)還會(huì)使船舶的航跡和沖程增加或降低。對(duì)于本模型仿真來說,由于它能夠進(jìn)行回轉(zhuǎn)操作,說明模型基本正確,但是D/L值大于一般同類型的船舶范圍,說明模型計(jì)算時(shí)有些參數(shù)的計(jì)算還存在一點(diǎn)問題;風(fēng)、流對(duì)船舶的影響也只是一個(gè)大致描述,還需要進(jìn)一步研究。第四章Simulink與數(shù)據(jù)庫的連接及視覺仿真的實(shí)現(xiàn)為了實(shí)現(xiàn)仿真的實(shí)時(shí)性,模型產(chǎn)生的數(shù)據(jù)必須要與數(shù)據(jù)庫連接實(shí)時(shí)更新,再通過一定的函數(shù)讀取數(shù)據(jù)庫中的數(shù)據(jù)從而實(shí)現(xiàn)視覺仿真。4.1Simulink模型仿真結(jié)果的實(shí)時(shí)輸出輸出方法是利用Simulink的外部輸出模式即:在模型窗口的菜單欄點(diǎn)擊Simulation,再點(diǎn)擊ConfigurationParameters,彈出如圖4-1的對(duì)話框。將SolverOptions下的Type類型改為Fixed-step,再點(diǎn)擊左邊Select的Real-TimeWorkshop,出現(xiàn)如圖4-2所示的對(duì)話框。將Language改為C++,確定后按Build進(jìn)行編譯,最終編譯成一個(gè)實(shí)時(shí)輸出文件。同時(shí)需要在MATLAB窗口中需要說明下文件的路徑。圖4-1ConfigurationParameters對(duì)話框圖4-2利用標(biāo)準(zhǔn)串行端口RS232將編譯文件中的數(shù)據(jù)發(fā)送到另一臺(tái)計(jì)算機(jī)中,且用RS232接受數(shù)據(jù)。4.2利用VC++連接數(shù)據(jù)庫與RS232的數(shù)據(jù)提取進(jìn)行VC++編程連接數(shù)據(jù)庫的過程與代碼如下:進(jìn)行串口設(shè)置,并打開串口:voidCCommWizardDlg::OpenPort(){ if(m_Com.GetPortOpen()) m_Com.SetPortOpen(FALSE); m_Com.SetCommPort(m_nPort);//選擇com1 if(!m_Com.GetPortOpen()) m_Com.SetPortOpen(TRUE);//打開串口 else AfxMessageBox("cannotopenserialport"); m_Com.SetSettings(m_strSettings);//波特率9600,無校驗(yàn),8個(gè)數(shù)據(jù)位,1個(gè)停止位 m_Com.SetRThreshold(1);//參數(shù)1表示每當(dāng)串口接收緩沖區(qū)中有多于或等于1個(gè)字符時(shí)將引發(fā)一個(gè)接收數(shù)據(jù)的OnComm事件 m_Com.SetInputMode(1); m_Com.SetInputLen(0);//設(shè)置當(dāng)前接收區(qū)數(shù)據(jù)長度為0 m_Com.GetInput();//先預(yù)讀緩沖區(qū)以清除殘留數(shù)據(jù)}接收數(shù)據(jù),將其存入緩存區(qū),并進(jìn)行分類,之后存入數(shù)據(jù)庫,并清除緩存區(qū)的數(shù)據(jù):voidCCommWizardDlg::OnOnCommCommctrl(){ //TODO:Addyourcontrolnotificationhandlercodehere VARIANTvariant_inp; COleSafeArraysafearray_inp; LONGlen,k; BYTErxdata[2048];//設(shè)置BYTE數(shù)組An8-bitintegerthatisnotsigned. CStringstrtemp; if(bReceive) { if(m_Com.GetCommEvent()==2)//事件值為2表示接收緩沖區(qū)內(nèi)有字符 { variant_inp=m_Com.GetInput();//讀緩沖區(qū) safearray_inp=variant_inp;//VARIANT型變量轉(zhuǎn)換為ColeSafeArray型變量 len=safearray_inp.GetOneDimSize();//得到有效數(shù)據(jù)長度 for(k=0;k<len;k++) safearray_inp.GetElement(&k,rxdata+k);//轉(zhuǎn)換為BYTE型數(shù)組 for(k=0;k<len;k++)//將數(shù)組轉(zhuǎn)換為Cstring型變量 { BYTEbt=*(char*)(rxdata+k);//字符型 if(m_nInputMode==2) strtemp.Format("%02X",bt);//將字符以十六進(jìn)制方式送入臨時(shí)變量strtemp存放,注意這里加入一個(gè)空隔 else strtemp.Format("%c",bt);//將字符送入臨時(shí)變量strtemp存放 if(strtemp=="s")//檢測(cè)數(shù)據(jù)開始位 { m_strReceive=""; check=1; } if(check>=1&&check<checklast) { if(check==1) { strtemp=""; } if(check==2) { name=strtemp; strtemp=""; } if(check==3) { if(strtemp=="-") { checklast=17; } else { checklast=16; } }m_strReceive=m_strReceive+strtemp; check=check+1; } if(check==(checklast-1)) { updataparameters(m_strReceive,name);//更換 UpdateData(FALSE); }} } }//更新編輯框內(nèi)容重復(fù)接收數(shù)據(jù)并分類進(jìn)行存儲(chǔ)實(shí)現(xiàn)實(shí)時(shí)更新。4.3利用0SG實(shí)現(xiàn)視覺仿真利用VisualC++與SQL的接口讀取數(shù)據(jù),并通過OSG進(jìn)行視景仿真,主要程序如下:class
Mytransformcallback1
:public
osg::NodeCallback{public://構(gòu)造函數(shù),傳入一個(gè)角度,這個(gè)角度為計(jì)算移動(dòng)值用的,移動(dòng)的原理是,每一次時(shí)間變化乘以這個(gè)角度的量綱Mytransformcallback1(float
angularVelocity){m_angularVelocity=angularVelocity;HRESULT
hr;try
{
hr=m_pConnection.CreateInstance(__uuidof(Connection));if(SUCCEEDED(hr)){m_pConnection->ConnectionString="File
Name=testData.udl";m_pConnection->ConnectionTimeout=20;hr=m_pConnection->Open("","","",adConnectUnspecified);if(FAILED(hr)){AfxMessageBox("open
fail!");;
}
}else{AfxMessageBox("createinstance
of
Connection
fail!");}}catch
(_com_error
e){//_bstr_t
bstrSource(e.Source());//_bstr_t
bstrDescription(e.Description());AfxMessageBox("
數(shù)據(jù)庫連接失敗!");
}m_pRecordset.CreateInstance(__uuidof(Recordset));try{m_pRecordset->Open("SELECT
*
FROM
dataupdata",
//
查詢DemoTable表中所有字段m_pConnection.GetInterfacePtr(),
//
獲取庫接庫的IDispatch指針adOpenDynamic,adLockOptimistic,adCmdText);}catch(_com_error
*e){AfxMessageBox(e->ErrorMessage());}m_tankPosistion=osg::Vec3(0,0,0);m_tankPosistion1=osg::Vec3(0,0,0);angle=0;}virtual
void
operator()(osg::Node
*node,osg::NodeVisitor*
nv){//驗(yàn)證得到的點(diǎn)是不是MatrixTransformosg::MatrixTransform
*transform=dynamic_cast<osg::MatrixTransform*
>(node);//如果是的if
(nv&&transform&&nv->getFrameStamp()){//得到參考時(shí)間與當(dāng)前時(shí)間差,用來計(jì)算cos然后改變移動(dòng)值double
time=nv->getFrameStamp()->getReferenceTime();m_pRecordset->MoveFirst();
_variant_tvar
=
m_pRecordset->GetCollect("hengyao");//
_variant_tvar1
=
m_pRecordset->GetCollect("speed");//
_variant_tvar2
=
m_pRecordset->GetCollect("addangle");
hengyao=var;//
speed=var1;//
addangle=var2;//
angle=addangle;//
m_tankPosistion+=osg::Vec3(speed*cosf(osg::DegreesToRadians(angle+90)),speed*sinf(osg::DegreesToRadians(angle+90)),0);//同時(shí)計(jì)算速度和轉(zhuǎn)彎角度//
m_tankPosistion1+=osg::Vec3(0.0/*speed*cosf(osg::DegreesToRadians(0.5*angle+180))*/,speed/**sinf(osg::DegreesToRadians(angle+90))*/,0);/
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年自動(dòng)檢票驗(yàn)票機(jī)項(xiàng)目合作計(jì)劃書
- 拱橋:拱圈節(jié)段的預(yù)制工程現(xiàn)場(chǎng)質(zhì)量檢驗(yàn)報(bào)告單(一)
- 2025年四氫苯酐合作協(xié)議書
- 葡萄胎病理診斷
- 智能照度計(jì)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 嬰幼兒食品類罐頭企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 氣體滲透性測(cè)試儀行業(yè)跨境出海戰(zhàn)略研究報(bào)告
- 機(jī)制糖企業(yè)ESG實(shí)踐與創(chuàng)新戰(zhàn)略研究報(bào)告
- 生鮮零售企業(yè)數(shù)字化轉(zhuǎn)型與智慧升級(jí)戰(zhàn)略研究報(bào)告
- 機(jī)場(chǎng)快餐區(qū)企業(yè)制定與實(shí)施新質(zhì)生產(chǎn)力戰(zhàn)略研究報(bào)告
- 2025年共青科技職業(yè)學(xué)院單招職業(yè)適應(yīng)性測(cè)試題庫完整版
- 2025年上半年潛江市城市建設(shè)發(fā)展集團(tuán)招聘工作人員【52人】易考易錯(cuò)模擬試題(共500題)試卷后附參考答案
- 統(tǒng)編版語文二年級(jí)下冊(cè)15古詩二首 《曉出凈慈寺送林子方》公開課一等獎(jiǎng)創(chuàng)新教學(xué)設(shè)計(jì)
- 旅游電子商務(wù)(第2版) 課件全套 周春林 項(xiàng)目1-8 電子商務(wù)概述-旅游電子商務(wù)數(shù)據(jù)挖掘
- 創(chuàng)新創(chuàng)業(yè)項(xiàng)目計(jì)劃書撰寫
- 2024年上海市楊浦區(qū)復(fù)旦大學(xué)附中自主招生數(shù)學(xué)試卷
- 2025年安徽警官職業(yè)學(xué)院單招職業(yè)適應(yīng)性測(cè)試題庫帶答案
- 廣東廣東省錢幣學(xué)會(huì)招聘筆試歷年參考題庫附帶答案詳解
- 2025年福建省中職《英語》學(xué)業(yè)水平考試核心考點(diǎn)試題庫500題(重點(diǎn))
- 【課件】自然環(huán)境課件-2024-2025學(xué)年七年級(jí)地理下冊(cè)人教版
- 2025年河北省職業(yè)院校技能大賽智能節(jié)水系統(tǒng)設(shè)計(jì)與安裝(高職組)考試題庫(含答案)
評(píng)論
0/150
提交評(píng)論