導航:首頁 > 源碼編譯 > 遺忘因子一次完成演算法

遺忘因子一次完成演算法

發布時間:2023-09-23 03:50:31

1. 基於RLS演算法和LMS的自適應濾波器的MATLAB程序

% RLS演算法
randn('seed', 0) ;
rand('seed', 0) ;
NoOfData = 8000 ; % Set no of data points used for training
Order = 32 ; % 自適應濾波權數
Lambda = 0.98 ; % 遺忘因子
Delta = 0.001 ; % 相關矩陣R的初始化
x = randn(NoOfData, 1) ;%高斯隨機系列
h = rand(Order, 1) ; % 系統隨機抽樣
d = filter(h, 1, x) ; % 期望輸出
% RLS演算法的初始化
P = Delta * eye ( Order, Order ) ;%相關矩陣
w = zeros ( Order, 1 ) ;%濾波系數矢量的初始化
% RLS Adaptation
for n = Order : NoOfData ;
u = x(n:-1:n-Order+1) ;%延時函數
pi_ = u' * P ;%互相關函數
k = Lambda + pi_ * u ;
K = pi_'/k;%增益矢量
e(n) = d(n) - w' * u ;%誤差函數
w = w + K * e(n) ;%遞歸公式
PPrime = K * pi_ ;
P = ( P - PPrime ) / Lambda ;%誤差相關矩陣
w_err(n) = norm(h - w) ;%真實估計誤差
end ;
% 作圖表示結果
figure ;
plot(20*log10(abs(e))) ;%| e |的誤差曲線
title('學習曲線') ;
xlabel('迭代次數') ;
ylabel('輸出誤差估計') ;
figure ;
semilogy(w_err) ;%作實際估計誤差圖
title('矢量估計誤差') ;
xlabel('迭代次數') ;
ylabel('誤差權矢量') ;

%lms 演算法
clear all
close all
hold off%系統信道權數
sysorder = 5 ;%抽頭數
N=1000;%總采樣次數
inp = randn(N,1);%產生高斯隨機系列
n = randn(N,1);
[b,a] = butter(2,0.25);
Gz = tf(b,a,-1);%逆變換函數
h= [0.0976;0.2873;0.3360;0.2210;0.0964;];%信道特性向量
y = lsim(Gz,inp);%加入雜訊
n = n * std(y)/(10*std(n));%雜訊信號
d = y + n;%期望輸出信號
totallength=size(d,1);%步長
N=60 ; %60節點作為訓練序列
%演算法的開始
w = zeros ( sysorder , 1 ) ;%初始化
for n = sysorder : N
u = inp(n:-1:n-sysorder+1) ;% u的矩陣
y(n)= w' * u;%系統輸出
e(n) = d(n) - y(n) ;%誤差
if n < 20
mu=0.32;
else
mu=0.15;
end
w = w + mu * u * e(n) ;%迭代方程
end
%檢驗結果
for n = N+1 : totallength
u = inp(n:-1:n-sysorder+1) ;
y(n) = w' * u ;
e(n) = d(n) - y(n) ;%誤差
end
hold on
plot(d)
plot(y,'r');
title('系統輸出') ;
xlabel('樣本')
ylabel('實際輸出')
figure
semilogy((abs(e))) ;% e的絕對值坐標
title('誤差曲線') ;
xlabel('樣本')
ylabel('誤差矢量')
figure%作圖
plot(h, 'k+')
hold on
plot(w, 'r*')
legend('實際權矢量','估計權矢量')
title('比較實際和估計權矢量') ;
axis([0 6 0.05 0.35])

2. 基於RLS演算法和LMS的自適應濾波器的MATLAB程序是什麼

% RLS演算法 x0dx0arandn('seed', 0) ; x0dx0arand('seed', 0) ; x0dx0aNoOfData = 8000 ; % Set no of data points used for training x0dx0aOrder = 32 ; % 自適應濾波權數 x0dx0aLambda = 0.98 ; % 遺忘因子 x0dx0aDelta = 0.001 ; % 相關矩陣R的初始化 x0dx0ax = randn(NoOfData, 1) ;%高斯隨機系列 x0dx0ah = rand(Order, 1) ; % 系統隨機抽樣 x0dx0ad = filter(h, 1, x) ; % 期望輸出 x0dx0a% RLS演算法的初始化 x0dx0aP = Delta * eye ( Order, Order ) ;%相關矩陣 x0dx0aw = zeros ( Order, 1 ) ;%濾森卜波系數芹前矢量的初始化 x0dx0a% RLS Adaptation x0dx0afor n = Order : NoOfData ; x0dx0au = x(n:-1:n-Order+1) ;%延時函數 x0dx0api_ = u' * P ;%互相關函數 x0dx0ak = Lambda + pi_ * u ; x0dx0aK = pi_'/k;%增益矢量 x0dx0ae(n) = d(n) - w' * u ;%誤差函數 x0dx0aw = w + K * e(n) ;%遞歸公式 x0dx0aPPrime = K * pi_ ; x0dx0aP = ( P - PPrime ) / Lambda ;%誤差相關矩陣 x0dx0aw_err(n) = norm(h - w) ;%真實估計誤差 x0dx0aend ; x0dx0a% 作圖表示結果 x0dx0afigure ; x0dx0aplot(20*log10(abs(e))) ;%| e |的誤差曲線 x0dx0atitle('學習曲線') ; x0dx0axlabel('迭代次數') ; x0dx0aylabel('輸出誤差估計') ; x0dx0afigure ; x0dx0asemilogy(w_err) ;%作實際此首穗估計誤差圖 x0dx0atitle('矢量估計誤差') ; x0dx0axlabel('迭代次數') ; x0dx0aylabel('誤差權矢量') ; x0dx0ax0dx0a%lms 演算法 x0dx0aclear all x0dx0aclose all x0dx0ahold off%系統信道權數 x0dx0asysorder = 5 ;%抽頭數 x0dx0aN=1000;%總采樣次數 x0dx0ainp = randn(N,1);%產生高斯隨機系列 x0dx0an = randn(N,1); x0dx0a[b,a] = butter(2,0.25); x0dx0aGz = tf(b,a,-1);%逆變換函數 x0dx0ah= [0.0976;0.2873;0.3360;0.2210;0.0964;];%信道特性向量 x0dx0ay = lsim(Gz,inp);%加入雜訊 x0dx0an = n * std(y)/(10*std(n));%雜訊信號 x0dx0ad = y + n;%期望輸出信號 x0dx0atotallength=size(d,1);%步長 x0dx0aN=60 ; %60節點作為訓練序列 x0dx0a%演算法的開始 x0dx0aw = zeros ( sysorder , 1 ) ;%初始化 x0dx0afor n = sysorder : N x0dx0au = inp(n:-1:n-sysorder+1) ;% u的矩陣 x0dx0ay(n)= w' * u;%系統輸出 x0dx0ae(n) = d(n) - y(n) ;%誤差 x0dx0aif n < 20 x0dx0amu=0.32; x0dx0aelse x0dx0amu=0.15; x0dx0aend x0dx0aw = w + mu * u * e(n) ;%迭代方程 x0dx0aend x0dx0a%檢驗結果 x0dx0afor n = N+1 : totallength x0dx0au = inp(n:-1:n-sysorder+1) ; x0dx0ay(n) = w' * u ; x0dx0ae(n) = d(n) - y(n) ;%誤差 x0dx0aend x0dx0ahold on x0dx0aplot(d) x0dx0aplot(y,'r'); x0dx0atitle('系統輸出') ; x0dx0axlabel('樣本') x0dx0aylabel('實際輸出') x0dx0afigure x0dx0asemilogy((abs(e))) ;% e的絕對值坐標 x0dx0atitle('誤差曲線') ; x0dx0axlabel('樣本') x0dx0aylabel('誤差矢量') x0dx0afigure%作圖 x0dx0aplot(h, 'k+') x0dx0ahold on x0dx0aplot(w, 'r*') x0dx0alegend('實際權矢量','估計權矢量') x0dx0atitle('比較實際和估計權矢量') ; x0dx0aaxis([0 6 0.05 0.35])

3. 迭代學習控制的學習因子怎麼確定

迭代學習管控計算分析及在機械臂之應用
作者:lgg
本文是機械工程論文,目前,ILC的研究已經取得了很多成果,本文在此基礎上對ILC作了進一步的探討和研究,針對如何提高迭代學習的收斂速度設計了新的學習演算法,理論分析了演算法的

第 1 章 緒 論

1.1 引言
隨著科學技術的發展以及生產力水平的提高,人們對一些復雜的、不確定的系統的控制要求不斷提高。我們在生產實際中遇到的系統大多存在著非線性、強耦合以及不確定性等特點,從而導致系統的精確模型無從獲取。因此,採用傳統的基於模型的控制方法不能很好的對這些系統進行控制。智能控制應運而生,自 20 世紀 70年代形成至今不過 40 多年的時間,但其發展勢頭卻異常迅猛。學習控制是智能控制的一個高級分支,相對於傳統的智能控制方法而言,它具備了自己學習的能力。1978 年 Uchiyama[1]提出了一種控制高速運行的機械手的思想,此思想描述為:重復地對同一個運動軌跡進行跟蹤控制,與此同時不斷地調節控制律,依此便可以達到較好的控制效果。1984 年,Arimoto 等人在 Uchiyama 對機器人控制研究的基礎之上,提出了迭代學習控制(ILC)的概念。迭代學習控制方法是利用控制系統之前得到的控制經驗,並根據系統以往的控制輸入信號、實際輸出信號以及期望信號來尋找理想的控制輸入信號。這里我們把以往的信息看成一種經驗,迭代學習是利用經驗知識使得被控對象產生期望的運動,由此不僅削弱了對模型的依賴,還改進了跟蹤控制的性能。由於迭代學習控制自身的特點,比如要求系統較少的先驗知識以及較少的計算量,並且一般情況下無需辨識系統的參數,因此能處理未知參數以及不確定性等復雜問題,同時還具備了很好的魯棒性。這些特點使得迭代學習控制方法適用於一類機器人或其它機械裝置系統,為其基於自主學習來調整運動性能提供了一種較好的方法。因此,它的研究對像機器人那樣有著高度的非線性、難建模、強耦合等特點的系統實現高精度軌跡跟蹤控制有著非常重要的實際意義。
………………

1.2 課題的研究背景及意義
迭代學習控制理論的提出是以工業機器人的跟蹤控制為背景的,在實際的生產過程中,各種不確定因素的存在導致我們無法獲得系統的精確數學模型,因此傳統的以系統的數學模型為基礎的分析方法便無法較好的解決這些實際問題。隨著科技的發展和生產的需要,人們越來越關注如何採用合適的方法來處理實際中存在的不確定性問題,以期達到較好的跟蹤控制效果。在實際的生產過程中,普遍存在著不斷重復的控制過程,如包裝機的包裝過程,零部件批量生產的過程,機械手重復完成某種操作的過程等等。以包裝機的工作過程為例,其包裝過程就是一個典型的不斷重復操作的過程,如果被包裝物品的重量、尺寸以及其它相關參數都相同,就相當於假設了每次運行時的初始條件相同,那麼整個包裝機的運動軌跡就會基本上是完全一致。對於這樣一類具有重復運動性質的被控對象,運用迭代學習控制能起到很好的控制效果。迭代學習控制不要求已知系統的精確模型,而是利用已有的先驗知識不斷地進行學習,也就是說,它是利用在重復中學習的方法,最終實現在有限時間區間上對期望軌跡的完全跟蹤。它較為簡單的形式以及廣泛的實用價值引起了人們的大量關注。與此同時,怎樣解決迭代學習演算法的初始狀態問題以及如何加快迭代學習的收斂速度成為很多學者研究的熱點問題。如果系統能在較短的時間內實現對期望軌跡的跟蹤有著較高的實用價值。
……………

第 2 章 迭代學習控制的理論基礎

2.1 迭代學習控制的基本原理
機器人的誕生有著劃時代的意義,它的發展為人類文明的進步作出了卓越的貢獻,人們對機器人技術的研究也形成了一門新的學科——機器人學。它是一門綜合性學科,其發展離不開機械電子學、仿生學、控制理論、信息科學、人工智慧等學科。機器人的發展過程可以分為三個階段,1959 年世界上第一台工業機器人問世,它是美國人英格伯格和德沃爾共同研製的成果,它的誕生標志著機器人歷史的開始,同時它也是機器人成長的第一個階段。第一批工業機器人被稱為「尤尼梅特」,具有「萬能自動」的含義。1962 年生產出的工業機器人,命名為「沃爾薩特蘭」,有著「萬能搬動」的意思。「尤尼梅特」和「沃爾薩特蘭」也因此被認為是世界上最早的工業機器人,並且沿用至今。1970 年左右,第二代機器人產生,他們開始了外界環境的實用階段,同時得到了較好的普及。隨著智能控制等學科的發展,機器人不僅具備了「感知」能力,還具有獨立判斷和行動的能力,與此同時,它們還具備了記憶、推理和決策的能力,從而能夠完成一些復雜的動作。這些機器人被稱為第三代機器人,即智能機器人。如今,智能機器人被廣泛應用於各行各業,不僅節約了大量的人力物力,同時提高了作業效率。機器人的應用情況體現了一個國家的綜合國力。工業機器人在我國僅有 20 多年的發展歷史,我國曾研發並製造出一系列工業機器人,如噴塗機器人、氬弧焊機器人、裝卸載機器人等,並成功投入使用。雖然我國對機器人的研究起步晚,但現在也已走上了進步和發展的道路,與此同時我們也應該看到,與國外機器人的研究相比我們還有很長的路要走。今後我們要加深基礎學科的研究,開展跨國區域交流合作,理論聯系實際應用,爭取早日躋身於世界先進之列。
……………

2.2 迭代學習控制過程的表述
本章主要對迭代學習控製作了理論上的介紹,詳細介紹了迭代學習的基本原理,迭代學習控制過程的表述以及迭代學習演算法的流程。最後,為迭代學習收斂性分析所用理論及數學知識作了介紹,迭代學習演算法在收斂性證明時常用到 Banach 空間,向量和矩陣范數,λ 范數,Bellman-Gronwall 引理以及 Lipschitz 條件。這些理論知識都為後續學習律的設計,收斂性分析以及模擬研究等工作奠定了理論基礎。目前,智能控制在機器人控制中應用最多的是神經網路控制和模糊控制。神經網路具有容錯性、自學習和自適應等特點,因此在控制機器人時不要求機器人的精確數學模型,從而引起學者們的極大關注。模糊控制是以模糊數學、模糊語言形式以及模糊邏輯規則推理為基礎的控制科學,模糊控制系統是利用計算機控制技術構成閉環結構的一種智能控制系統。它亦不需要建立被控對象的精確數學模型,因此能對具有高度非線性,無精確數學模型的機器人系統進行有效控制。
……………

第 3 章 機器人指數變增益快速迭代學習控制........20
3.1 引言 ....... 20
3.2 系統描述 ..... 21
3.3 主要結果 ..... 22
3.3.1 新演算法的提出 ........ 22
3.3.2 考慮機械臂轉角限位時演算法的改進 ........ 22
3.4 收斂性分析 ....... 23
3.5 模擬研究 ..... 26
3.6 本章小結 ..... 29
第 4 章 帶擾動的非線性系統的快速迭代學習控制......31
4.1 引言 ....... 31
4.2 問題的描述 ....... 32
4.3 主要結果 ..... 33
4.4 收斂性證明 ....... 34
4.5 模擬研究 ..... 36
4.6 本章小結 ..... 38
第 5 章 具有可變遺忘因子的迭代學習演算法.....39
5.1 引言 ....... 39
5.2 新演算法的提出 ......... 39
5.3 主要結果 ..... 41
5.4 可變遺忘因子的設計 ......... 44
5.5 系統模型轉換 ......... 45
5.6 模擬研究 ..... 46
5.7 本章小結 ..... 48

第5章 具有可變遺忘因子的迭代學習演算法及在機械臂中的應用

5.1 引言
ILC 演算法自 1984 年由 Arimoto 等人提出以來就一直受到控制界的廣泛關注。它適用於一類具有重復運動特性的被控對象,其任務是尋找最優的控制輸入,使得被控系統的實際輸出軌跡在有限時間區間上實現與期望輸出軌跡的完全跟蹤[66]。文獻[67]對於重復運行的被控系統,設計了開環 P 型以及閉環 P 型迭代學習控制器,實現了在有限時間區間內對期望軌跡的跟蹤。文獻[68]中採用的開閉環 PD 型迭代學習律,與 P 型學習律相比增加了誤差信息量,提高了收斂速度,但因導數信號的引入增加了測量難度。文獻[67,68]的學習律都是因果型迭代學習律,即利用前一次迭代的t時刻的誤差信息來調節下一次t時刻的學習律。文獻[55]中綜述了因果型迭代學習律與非因果型迭代學習律的區別,即非因果型學習律是利用前一次迭代中未來時刻的誤差信息來調節學習律,非因果型學習律由於利用了前次迭代的未來時刻的誤差信息,使得控制器具有提前補償未來擾動的功能。文獻[69]提出了帶有遺忘因子的迭代學習律,削弱了系統模型不確定部分和非重復干擾對系統收斂性的影響,但文獻中引入的遺忘因子被設為固定常數,從而不能隨系統特性的變化而實時調整,使得迭代學習律無法得到令人滿意的收斂效果。針對以上問題,本文提出了具有可變遺忘因子的非因果型迭代學習演算法。該演算法不要求迭代初態與期望初態一致,並且能利用前一次迭代控制中未來時刻的誤差信息來調整下一次的控制律,既增加了信息量又避免了導數信號的使用;同時,引入的可變遺忘因子能根據系統特性的變化自行調節學習律,很好的處理了跟蹤速度和穩態誤差的矛盾。本文所提新演算法兼備了 D 型控制演算法的超前性和 P 型控制演算法易於執行的特性。
………………

結 論

ILC 不要求已知被控對象的精確數學模型,並且只需系統較少的先驗知識,從而引起學者們的廣泛關注和探討。本文對迭代學習控制的收斂速度問題進行了深入研究,主要開展了以下工作:
(1)對於含有初始誤差的機器人的軌跡跟蹤問題,首先將機器人系統的動力學方程轉化為狀態方程,然後採用指數變增益的非因果型迭代學習演算法對其進行控制。學習增益在迭代過程中有效的變化,從而加快了迭代學習的收斂速度。
(2)由於迭代學習演算法不需要精確的數學模型,且對未建模的系統有一定的魯棒性,由此本文針對具有狀態擾動和輸出干擾的一類非線性系統的軌跡跟蹤問題,採用了帶角度修正的 ILC 演算法。用輸出向量的角度關系作為反饋系數,用來判斷控制輸入好壞,依此對學習律的變化趨勢做出「獎懲」,因此收斂速度得到了有效提高。
(3)對於一般的非線性系統,採用了一種具有可變遺忘因子的非因果型迭代學習演算法。非因果型迭代學習律相比於因果型學習律在迭代過程中使用了未來時刻的誤差信息,不僅增加了信息量還使得控制器具有提前補償未來擾動的功能;引入可變的遺忘因子可以根據系統所處的狀態有效的調節控制輸入同時沿迭代方向進行濾波,從而加快了收斂速度,並削弱了系統的不確定部分對收斂性的影響。最後將此方法應用於機械臂的軌跡跟蹤控制,達到了較好的收斂效果。
……………
參考文獻(略)

4. 最小二乘法原理及應用

最小二乘法是一種數學優化技術,它通過最小化誤差的平方和找到一組數據的最佳函數匹配。
最小二乘法是用最簡的方法求得一些絕對不可知的真值,而令誤差平方之和為最小。
最小二乘法通常用於曲線擬合。很多其他的優化問題也可通過最小化能量或最大化熵用最小二乘形式表達。
比如從最簡單的一次函數y=kx+b講起
已知坐標軸上有些點(1.1,2.0),(2.1,3.2),(3,4.0),(4,6),(5.1,6.0),求經過這些點的圖象的一次函數關系式.
當然這條直線不可能經過每一個點,我們只要做到5個點到這條直線的距離的平方和最小即可,這這就需要用到最小二乘法的思想.然後就用線性擬合來求.講起來一大堆。

閱讀全文

與遺忘因子一次完成演算法相關的資料

熱點內容
明日之後安卓太卡怎麼辦 瀏覽:502
如何使用命令方塊找到村莊 瀏覽:766
泛函壓縮映像原理 瀏覽:521
win10清除文件夾瀏覽記錄 瀏覽:964
如何查看伺服器域中所有服務 瀏覽:384
學mastercam91編程要多久 瀏覽:999
如何查伺服器地址和埠 瀏覽:911
教學雲平台app怎麼下載 瀏覽:389
單片機510教學視頻 瀏覽:624
陝西信合app怎麼查看自己的存款 瀏覽:663
風冷冰箱有壓縮機 瀏覽:274
android實現wifi連接wifi 瀏覽:669
飛豬app怎麼幫別人值機 瀏覽:924
筆記本開我的世界伺服器地址 瀏覽:546
怎樣隱藏bat命令 瀏覽:127
android開發創意 瀏覽:138
京劇貓為什麼進不去伺服器 瀏覽:784
怎麼自己免費製作一個手機app 瀏覽:582
python同時迭代兩個變數 瀏覽:740
好分數app家長版怎麼刪除孩子 瀏覽:426