序列中未被選取的粒子數量不足Nf個,則返回上述S100,以改變為各 粒子初始設置的位置和速度,并利用重新設置的各粒子的位置和速度進行迭代。
[0067] 由上述描述可知,本實施例使用了多個不同的激勵響應數據組對粒子的鄰域歷史 最優位置進行誤差評價,對于陷入了局部極小值而非全局極小值的粒子而言,該局部極小 值總會針對某些具有較大差異的激勵響應數據組表現出較大的誤差,從而不會根據該局部 極小值產生參數辨識的結果;從而充分驗證了"真的假不了"這一樸素的物理內涵。
[0068] 實施例二、復雜對象的參數辨識方法。
[0069] 本實施例以航天器中安裝的機械臂為復雜對象為例,對本實施例的參數辨識過程 進行說明。
[0070] 值得注意的是,在復雜對象表現為其他形式的情況下,本實施例提供的參數辨識 方法同樣適用。
[0071] 航天器中設置的機械臂通常具有多個臂節,航天器和機械臂之間通常形成星臂耦 合系統,例如,機械臂包含有q-Ι個臂節(如包含有連桿和關節的臂節),且這q-Ι個臂節分 別通過其上的關節(總共q_l個關節,也可以稱為旋轉關節)依次連接(如鉸接),并最終 接續固定在航天器上,從而形成具有q_l個臂節的星臂耦合系統。
[0072] 在機械臂抓取到待辨識目標(即未知目標)的情況下,可以將末端臂節與待辨識 目標看做是剛性連接,從而可以將航天器、機械臂以及待辨識目標看作一個多剛體系統。在 忽略地球扁率、大氣阻尼、太陽光壓以及地球磁場等影響因素的情況下,該多剛體系統滿足 多剛體系統的角動量守恒原理。另外,可以設定星臂耦合系統處于無軌控推力以及無姿 控力矩作用下的在軌飛行狀態,即設定主星的位置和姿態均不受助推器或者其他外力的控 制。
[0073] 在該應用場景中,本實施例中的待辨識的參數可以為待辨識目標的慣性參數,BP 待辨識目標的質量、質心位置及轉動慣量;然而,由于待辨識目標的轉動慣量可以表示為關 于待辨識目標的質量和質心位置的函數,因此,本實施例中的待辨識的參數可以轉化為待 辨識目標的質量和質心位置,而待辨識目標的質心位置通常為質心的三維坐標,這樣,該應 用場景中的待辨識的參數被轉化為待辨識目標的質量和質心位置這四個標量,也就是說, 本實施例的待辨識參數組包含四個標量。
[0074] 本實施例的復雜對象的參數辨識方法主要包括兩部分內容,一部分為迭代計算部 分,另一部分為復合評價部分,下面結合圖2對本實施例的方法進行詳細說明。
[0075] 圖2中,S10、初始化所有粒子的位置Xl⑹和速度Vl (0),如利用上述公式⑴和 公式(2)初始化所有粒子的位置和速度。
[0076] S11、判斷當前迭代次數是否為6"的整數倍,并判斷當前表現較差的粒子的數量 是否不小于K"N,如果當前迭代次數為的整數倍,且當前表現較差的粒子的數量不小于 KraN,則到S12 ;而如果當前迭代次數不為的整數倍或者當前表現較差的粒子的數量小于 KraN,則到S13。
[0077] 本實施例中的粒子是否表現較差可以根據該粒子的誤差是否達到一定的誤差值 來判斷,如在第一次進行迭代過程中,可以將各粒子的表現均設置為較好,而在后續的迭代 過程中,可以利用下述的公式(8)計算出來的各粒子的誤差來識別出表現較差的粒子。
[0078] S12、將表現較差的粒子隨機分布到當前表現較好的粒子周圍,并更新該粒子的鄰 域歷史最優位置以及該粒子的個體歷史最優位置。
[0079] S13、使用各粒子各自對應的一個激勵響應數據組對該粒子的表現進行評價,即利 用各粒子各自對應的一個激勵響應數據組計算各粒子的誤差,到S14。
[0080] 具體的,可以利用下述公式(8)來計算各粒子的誤差:
[0081]
[0082] 在上述公式(8)中,i(x")表示使用\(即粒子η)計算獲得的航天器姿態角α的 角速度值,表示粒子η對應的航天器姿態角α的角速度觀測值,表示使用 算獲得的航天器姿態角β的角速度值,表示粒子η對應的航天器姿態角β的角速度 觀測值,;表示使用\計算獲得的航天器姿態角γ的角速度值,汽.〇表示表示粒子η對 應的航天器姿態角γ的角速度觀測值,|*|表示歐式距離平方的計算符號。
[0083] 需要特別說明的是,上述公式(8)中的是利用下述公式(9) 計算獲得的:
[0084]
[0085] 在上述公式(9)中,[*]τ表示*的轉置矩陣,f[*]表示復雜對象計算動力學模型 函數,表示1時刻對應的激勵(即各臂節的角速度矩陣),且4 …4Γ4表示 對應臂節的轉角角速度,4(0表示1時刻對應的機械臂狀態(即各臂節的角度矩陣),φM =[Φ^Φ2, . . .,<i>q]T,Φ;為臂節i的轉角,<4〇")表示tn時刻對應的航天器姿態角狀態, Φ5=[α,β,γ]τ,α,β,γ分別為航天器的3軸姿態角度值,xn (g)表示第g代的粒子η 的位置,1時刻對應的機械臂狀態、航天器姿態角狀態以及激勵即為粒子η所使用的激勵響 應數據組。
[0086]S14、根據S13的計算結果更新各粒子的鄰域歷史最優位置以及各粒子的個體歷 史最優位置,到S15。
[0087] S15、判斷是否存在誤差達到預定誤差要求的粒子以及是否達到預定迭代次數,如 果存在誤差達到預定誤差要求的粒子或者已經達到預定迭代次數,則到S20,否則,到S16。
[0088]S16、進行下一次迭代計算,如更新各粒子的速度,并利用更新的速度計算獲得粒 子的下一代的位置等,到S11。
[0089]S20、按照鄰域歷史最優位置由優到劣的順序對各粒子的鄰域歷史最優位置進行 排序,取前Nf個粒子的鄰域歷史最優位置,到S21。
[0090]S21、利用基于不同構型的多個激勵響應數據組對選取的Nf個粒子分別進行誤差 計算,到S22。
[0091] 本實施例可以利用下述公式(10)來進行誤差計算:
[0092]
[0093] 在上述公式(10)中,En表示誤差計算結果,^表示多個激勵響應數據組的組數, |*| |2表示表示歐式距離平方的計算符號,f[*]表示復雜對象計算動力學模型函數, 表示tu時刻對應的激勵(即各臂節的角速度矩陣),也=[44…捫^為對應的角速度, 表示tu時刻對應的機械臂狀態(各關節角角度矩陣)φΜ=[ΦDφ2,···,φ」τ, 為臂節i的轉角,戎(V)表示tu時刻對應的航天器姿態角狀態,Φ[α,β,γ] \且 α,β,γ分別為航天器的3軸姿態角度值,x^G)表示當前選取的第u個粒子在截止到 第g代為止時的鄰域歷史最優位置,表G,;)表示\時刻對應的航天器姿態角角速度狀態觀測 值。
[0094]S22、判斷計算獲得的NffEn中的min(En)是否達到預定要求,如果達到預定要求, 到S25,否則,到S23。
[0095]S23、判斷排好序的序列中未被選取的粒子的數量是否達到Nf個,如果達到Nf個, 則到S24,否則,到S10。
[0096]S24、按照順序從排好序的序列中繼續選取后續的Nf個粒子的鄰域歷史最優位置, 并到S22。
[0097] S25、將min(En)對應的粒子的鄰域歷史最優位置所表示的參數值作為最終的辨識 結果,并輸出該參數辨識結果。
[0098] 由上述描述可知,本實施例采用了分層次進行粒子篩選的設計方案,在迭代計算 過程中使用單個激勵響應數據組對粒子的表現進行評價,使迭代計算過程并不要求分辨局 部極小值和全局最小值,而是能夠遍歷與全局最小值表現相當的極小值點即可;而在復合 評價過程中,利用了多個激勵響應數據組對由迭代計算過程篩選出的粒子的誤差進行計 算,由于由迭代計算過程篩選出的粒子相對于待辨識參數空間來說是非常有限的,因此,雖 然利用了多個激勵響應數據組進行誤差計算,但是,其計算量的增長幅度是非常有限的,由 于迭代計算過程遍歷了與全局最小值表現相當的極小值點,因此,復合評價過程是可以快 速的篩選到全局最小值的;從而本實施例在有效控制了參數辨識過程中的計算量以及復雜 度的同時,提高了參數辨識的精度。
[0099] 下面是針對本實施例的方法以及現有的辨識方法的一個實際仿真實驗:
[0100] 在該仿真實驗中,使用了改進的粒子群算法,且改進的粒子群算法中的相關參數 的定義如下:粒子總數量N為500,迭代總次數G= 50,鄰域粒子比例(即鄰域內的粒子占 粒子總數量的比例)Knb為10%,間隔迭代次數6"為10,重啟粒子比例KJ% 20%。
[0101] 在該仿真實驗中,辨識實驗次數為115次,在沒有使用本實施例的方法而使用現 有的參數辨識方法進行參數辨識時,辨識結果如圖3所示,且參數辨識的歸一化誤差如圖4 所示;在使用本實施例的方法進行參數辨識時,在設定Nf= 20,且?'! 30的情況下,復合 評價可以僅進行一次Nf各粒子的鄰域歷史最優位置的選取,就可以獲得最終的參數辨識結 果,且質心位置bt和質量心的辨識結果如圖5所示,且參數辨識的歸一化誤差如圖6所示。
[0102] 仿真實驗所獲得的各參數的誤差對比如下述表1所示。
[0103]表1
[0104]
[0105] 通過對比表1