版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 中 南 大 學(xué)</b></p><p> 基于Delphi的神經(jīng)網(wǎng)絡(luò)</p><p><b> 系統(tǒng)辨識(shí)</b></p><p> 學(xué) 院:信息科學(xué)與工程學(xué)院</p><p> 專業(yè)班級(jí):自 動(dòng) 化 ****</p><p> 姓
2、 名:********</p><p> 學(xué) 號(hào):**********</p><p> 指導(dǎo)老師:*********</p><p><b> 第一章 緒論</b></p><p><b> 1.1 訓(xùn)練目的</b></p><p> 能針對(duì)題目獨(dú)立
3、展開調(diào)研,查閱相關(guān)教材、論文和數(shù)字文獻(xiàn)資料,在此基礎(chǔ)上找到解決問(wèn)題的方法和思路,并做好實(shí)施方案;</p><p> 了解辨識(shí)系統(tǒng)的原理和基本方法,重點(diǎn)掌握基于神經(jīng)網(wǎng)絡(luò)非線性系統(tǒng)辨識(shí)方法;</p><p> 了解BP神經(jīng)網(wǎng)絡(luò)及其在系統(tǒng)辨識(shí)建模中的應(yīng)用;</p><p> 能設(shè)計(jì)理想的神經(jīng)網(wǎng)絡(luò)(結(jié)構(gòu)、隱層數(shù)及其節(jié)點(diǎn)數(shù)),分析其非線性映射能力如何保證及其在系統(tǒng)辨識(shí)中
4、具有良好的泛化能力;</p><p> 熟悉Delphi開發(fā)環(huán)境,能在該環(huán)境下實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)對(duì)不同的非線性系統(tǒng)的辨識(shí);</p><p> 神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)和分析過(guò)程中,設(shè)計(jì)者需融入自己的細(xì)想,發(fā)揮其主觀能動(dòng)性,尤其需適當(dāng)改進(jìn)神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法,以保證算法的收斂性和穩(wěn)定性;</p><p> 培養(yǎng)綜合運(yùn)用基礎(chǔ)理論知識(shí)獨(dú)立分析和解決問(wèn)題的能力;</p>
5、<p> 加深對(duì)基礎(chǔ)理論部分的理解的同時(shí),提高實(shí)踐能力。</p><p> 1.2 工程訓(xùn)練內(nèi)容和基本要求</p><p> 熟悉Delphi開發(fā)環(huán)境,實(shí)現(xiàn)BP神經(jīng)網(wǎng)絡(luò)的構(gòu)件,繪制仿真曲線;</p><p> 采用BP神經(jīng)網(wǎng)絡(luò)辨識(shí)非線性擴(kuò)展自回歸滑動(dòng)平均模型(NARMAX),模型的參數(shù)和結(jié)構(gòu)自行設(shè)置,最后具有代表性;</p><
6、;p> 設(shè)計(jì)可視化界面,能交互式地改變系統(tǒng)的階次和系統(tǒng)的參數(shù),并相應(yīng)地改變神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和算法,實(shí)時(shí)的顯示仿真曲線(輸入輸出數(shù)據(jù)的跟蹤曲線)和建模誤差曲線;</p><p> 根據(jù)仿真結(jié)果適當(dāng)修改或改進(jìn)神經(jīng)網(wǎng)絡(luò)的結(jié)果或?qū)W習(xí)算法,并分析各算法的收斂性和穩(wěn)定性;</p><p> 比較兩種或兩種以上的辨識(shí)方法(如采用不同的神經(jīng)網(wǎng)絡(luò)),根據(jù)系統(tǒng)辨識(shí)效果的好壞,分析造成實(shí)驗(yàn)結(jié)果的原因,闡
7、述自己對(duì)此的觀點(diǎn)和改進(jìn)建議;</p><p> 必須有完整的可視化界面,利用數(shù)據(jù)或曲線作為實(shí)驗(yàn)結(jié)果,具有一定的說(shuō)服力;</p><p> 根據(jù)實(shí)驗(yàn)結(jié)果, 分析你所采用的方法的合理性、優(yōu)越性和不足之處,要求體現(xiàn)自己的設(shè)計(jì)思想。</p><p> 1.3 工程訓(xùn)練的意義</p><p> 通過(guò)完成從用戶需求分析、Delphi界面設(shè)計(jì)到上機(jī)
8、編程、算法實(shí)現(xiàn)、調(diào)試和應(yīng)用等全過(guò)程,進(jìn)一步了解和掌握本書中所講解的內(nèi)容。</p><p><b> 程序設(shè)計(jì)流程</b></p><p><b> 程序設(shè)計(jì)流程如下:</b></p><p> 1、按照軟件工程學(xué)的方法,對(duì)需要開發(fā)的軟件進(jìn)行需求分析、可行性分析以及詳細(xì)的設(shè)計(jì)等;</p><p>
9、; 2、建立一個(gè)新的項(xiàng)目,根據(jù)需要建立所需要的窗體;</p><p> 3、根據(jù)需要向窗體中添加組件,設(shè)計(jì)窗體的外觀和組件的布局,即設(shè)計(jì)用戶界面;</p><p> 4、根據(jù)需要設(shè)置組件的相應(yīng)屬性;</p><p> 5、根據(jù)需要編寫事實(shí)響應(yīng)代碼;</p><p> 6、保存項(xiàng)目相關(guān)的所用文件,編譯、調(diào)試和運(yùn)行程序。</p&g
10、t;<p> 第三章 Delphi界面設(shè)計(jì)</p><p><b> 2.1 設(shè)計(jì)要求</b></p><p> 1、顯示與BP算法的相關(guān)參數(shù),并可以修改其參數(shù);</p><p> 2、顯示通過(guò)BP算法逼近的訓(xùn)練曲線以及誤差曲線:</p><p> 3、可以選擇不同類型的函數(shù)曲線以此來(lái)驗(yàn)證BP算
11、法。</p><p> 2.2 Delphi實(shí)現(xiàn)</p><p><b> 總的設(shè)計(jì)界面如下:</b></p><p><b> 具體相關(guān)代碼如下:</b></p><p> 此系統(tǒng)讀者可以手動(dòng)改變BP算法的相關(guān)參數(shù),例如:輸入節(jié)點(diǎn)、學(xué)習(xí)速率、動(dòng)量因子。界面如下圖:</p>&
12、lt;p> 界面顯示的相關(guān)代碼如下:</p><p> object Label1: TLabel</p><p><b> Left = 40</b></p><p><b> Top = 33</b></p><p> Width = 48</p><p>
13、; Height = 12</p><p> Caption = '輸入節(jié)點(diǎn)'</p><p> Font.Charset = ANSI_CHARSET</p><p> Font.Color = clWindowText</p><p> Font.Height = -12</p><p>
14、 Font.Name = '宋體'</p><p> Font.Style = []</p><p> ParentFont = False</p><p><b> end</b></p><p> object Label2: TLabel</p><p> Lef
15、t = 174</p><p><b> Top = 33</b></p><p> Width = 66</p><p> Height = 12</p><p> Caption = '學(xué)習(xí)速率η='</p><p> Font.Charset = ANSI_CHAR
16、SET</p><p> Font.Color = clWindowText</p><p> Font.Height = -12</p><p> Font.Name = '宋體'</p><p> Font.Style = []</p><p> ParentFont = False<
17、;/p><p><b> end</b></p><p> object Label3: TLabel</p><p> Left = 308</p><p><b> Top = 33</b></p><p> Width = 66</p><p&
18、gt; Height = 12</p><p> Caption = '動(dòng)量因子α='</p><p> Font.Charset = ANSI_CHARSET</p><p> Font.Color = clWindowText</p><p> Font.Height = -12</p><p
19、> Font.Name = '宋體'</p><p> Font.Style = []</p><p> ParentFont = False</p><p><b> End</b></p><p> 系統(tǒng)通過(guò)BP算法現(xiàn)實(shí)的曲線圖界面如下:</p><p><
20、;b> 相關(guān)代碼如下: </b></p><p> object Chart1: TChart</p><p><b> Left = -8</b></p><p><b> Top = 204</b></p><p> Width = 409</p>&l
21、t;p> Height = 293</p><p> BackWall.Brush.Color = clWhite</p><p> BackWall.Brush.Style = bsClear</p><p> BackWall.Color = clSilver</p><p> Foot.Text.Strings = (&
22、lt;/p><p><b> 'k')</b></p><p> MarginBottom = 0</p><p> MarginLeft = 0</p><p> MarginRight = 0</p><p> MarginTop = 2</p><p
23、> Title.Text.Strings = (</p><p> '期望輸出y(k)、模型輸出ym(k)')</p><p> BackColor = clSilver</p><p> LeftAxis.ExactDateTime = False</p><p> LeftAxis.Grid.Visible
24、 = False</p><p> LeftAxis.Increment = 0.500000000000000000</p><p> LeftAxis.MinorTicks.Visible = False</p><p> LeftAxis.TicksInner.Visible = False</p><p> LeftAxis.
25、Title.Caption = 'y(k)、ym(k)'</p><p> Legend.LegendStyle = lsSeries</p><p> View3D = False</p><p> BevelInner = bvLowered</p><p> TabOrder = 0</p><
26、;p> object Series1: TLineSeries</p><p> Marks.ArrowLength = 8</p><p> Marks.Visible = False</p><p> SeriesColor = clRed</p><p> Title = 'y(k)'</p>
27、<p> Pointer.InflateMargins = True</p><p> Pointer.Style = psRectangle</p><p> Pointer.Visible = False</p><p> XValues.DateTime = False</p><p> XValues.Name
28、 = 'X'</p><p> XValues.Multiplier = 1.000000000000000000</p><p> XValues.Order = loAscending</p><p> YValues.DateTime = False</p><p> YValues.Name = 'Y&
29、#39;</p><p> YValues.Multiplier = 1.000000000000000000</p><p> YValues.Order = loNone</p><p><b> end</b></p><p> object Series2: TLineSeries</p>
30、<p> Marks.ArrowLength = 8</p><p> Marks.Visible = False</p><p> SeriesColor = clBlue</p><p> Title = 'ym(k)'</p><p> LinePen.Style = psDot</p>
31、<p> Pointer.InflateMargins = True</p><p> Pointer.Style = psSmallDot</p><p> Pointer.Visible = False</p><p> XValues.DateTime = False</p><p> XValues.Name =
32、 'X'</p><p> XValues.Multiplier = 1.000000000000000000</p><p> XValues.Order = loAscending</p><p> YValues.DateTime = False</p><p> YValues.Name = 'Y
33、9;</p><p> YValues.Multiplier = 1.000000000000000000</p><p> YValues.Order = loNone</p><p><b> end</b></p><p><b> end</b></p><p&g
34、t; object Chart2: TChart</p><p> Left = 396</p><p><b> Top = 204</b></p><p> Width = 389</p><p> Height = 293</p><p> BackWall.Brush.Colo
35、r = clWhite</p><p> BackWall.Brush.Style = bsClear</p><p> Foot.Text.Strings = (</p><p><b> 'k')</b></p><p> MarginBottom = 0</p><p&g
36、t; MarginLeft = 0</p><p> MarginRight = 0</p><p> MarginTop = 2</p><p> Title.Text.Strings = (</p><p> '建模誤差e(k)')</p><p> LeftAxis.ExactDate
37、Time = False</p><p> LeftAxis.Grid.Visible = False</p><p> LeftAxis.Increment = 0.100000000000000000</p><p> LeftAxis.MinorTicks.Visible = False</p><p> LeftAxis.Ti
38、cksInner.Visible = False</p><p> LeftAxis.Title.Caption = 'e(k)'</p><p> Legend.LegendStyle = lsSeries</p><p> Legend.ShadowSize = 0</p><p> View3D = False&
39、lt;/p><p> BevelInner = bvLowered</p><p> TabOrder = 1</p><p> object Series3: TLineSeries</p><p> Marks.ArrowLength = 8</p><p> Marks.Visible = False<
40、;/p><p> SeriesColor = clBlue</p><p> Title = 'e(k)'</p><p> Pointer.InflateMargins = True</p><p> Pointer.Style = psRectangle</p><p> Pointer.Vi
41、sible = False</p><p> XValues.DateTime = False</p><p> XValues.Name = 'X'</p><p> XValues.Multiplier = 1.000000000000000000</p><p> XValues.Order = loAscend
42、ing</p><p> YValues.DateTime = False</p><p> YValues.Name = 'Y'</p><p> YValues.Multiplier = 1.000000000000000000</p><p> YValues.Order = loNone</p>
43、<p><b> end</b></p><p> 選擇函數(shù)類型的界面如下:</p><p><b> 相關(guān)代碼如下:</b></p><p> object Label4: TLabel</p><p><b> Left = 40</b></p&g
44、t;<p><b> Top = 80</b></p><p> Width = 48</p><p> Height = 13</p><p> Caption = '輸入數(shù)字'</p><p> Font.Charset = DEFAULT_CHARSET</p>
45、<p> Font.Color = clWindowText</p><p> Font.Height = -11</p><p> Font.Name = 'MS Sans Serif'</p><p> Font.Style = []</p><p> ParentFont = False</p
46、><p><b> end</b></p><p> object mEdit: TEdit</p><p> Left = 126</p><p><b> Top = 28</b></p><p> Width = 41</p><p>
47、Height = 24</p><p> TabOrder = 0</p><p> Text = 'mEdit'</p><p><b> end</b></p><p> object etaEdit: TEdit</p><p> Left = 258</p&
48、gt;<p><b> Top = 28</b></p><p> Width = 41</p><p> Height = 24</p><p> TabOrder = 1</p><p> Text = 'etaEdit'</p><p><b&g
49、t; end</b></p><p> object alphaEdit: TEdit</p><p> Left = 384</p><p><b> Top = 28</b></p><p> Width = 41</p><p> Height = 24</p&
50、gt;<p> TabOrder = 2</p><p> Text = 'alphaEdit'</p><p><b> end</b></p><p> object Button1: TButton</p><p> Left = 216</p><p&g
51、t;<b> Top = 104</b></p><p> Width = 113</p><p> Height = 25</p><p> Caption = '線性函數(shù)1'</p><p> Font.Charset = DEFAULT_CHARSET</p><p&g
52、t; Font.Color = clWindowText</p><p> Font.Height = -11</p><p> Font.Name = 'MS Sans Serif'</p><p> Font.Style = []</p><p> ParentFont = False</p>&l
53、t;p> TabOrder = 3</p><p><b> end</b></p><p> object Button2: TButton</p><p> Left = 376</p><p><b> Top = 104</b></p><p> W
54、idth = 113</p><p> Height = 25</p><p> Caption = '差分函數(shù)2'</p><p> Font.Charset = DEFAULT_CHARSET</p><p> Font.Color = clWindowText</p><p> Font
55、.Height = -11</p><p> Font.Name = 'MS Sans Serif'</p><p> Font.Style = []</p><p> ParentFont = False</p><p> TabOrder = 4</p><p><b> end
56、</b></p><p> object Edit1: TEdit</p><p><b> Left = 40</b></p><p><b> Top = 104</b></p><p> Width = 129</p><p> Height =
57、24</p><p> TabOrder = 5</p><p><b> end</b></p><p> object BitBtn1: TBitBtn</p><p> Left = 528</p><p><b> Top = 104</b></p&g
58、t;<p> Width = 113</p><p> Height = 25</p><p> Caption = '非線性函數(shù)3'</p><p> TabOrder = 6</p><p><b> end</b></p><p> 確定與退出設(shè)計(jì)界
59、面如下:</p><p><b> 相關(guān)代碼如下:</b></p><p> object OKBtn: TButton</p><p> Left = 128</p><p><b> Top = 512</b></p><p> Width = 73</p
60、><p> Height = 33</p><p> Caption = '確定'</p><p> Default = True</p><p> ParentShowHint = False</p><p> ShowHint = True</p><p> TabO
61、rder = 2</p><p> OnClick = OKBtnClick</p><p><b> end</b></p><p> object BitBtn2: TBitBtn</p><p> Left = 512</p><p><b> Top = 512<
62、/b></p><p> Width = 65</p><p> Height = 33</p><p> Caption = '退出'</p><p> TabOrder = 5</p><p><b> end</b></p><p>&
63、lt;b> BP算法的實(shí)現(xiàn)</b></p><p> 3.1 BP算法簡(jiǎn)介</p><p> BP算法又稱為誤差反向傳播算法,其學(xué)習(xí)過(guò)程可以描述如下:</p><p> 1、工作信號(hào)正向傳播:輸入信號(hào)從輸入層經(jīng)隱單元,傳向輸出層,在輸出端產(chǎn)生輸出信號(hào),這是工作信號(hào)的正向傳播。在信號(hào)的向前傳遞過(guò)程中網(wǎng)絡(luò)的權(quán)值是固定不變的,每一層神經(jīng)元的狀態(tài)只
64、影響下一層神經(jīng)元的狀態(tài)。如果在輸出層不能得到期望的輸出,則轉(zhuǎn)入誤差信號(hào)反向傳播。</p><p> 2、誤差信號(hào)反向傳播:網(wǎng)絡(luò)的實(shí)際輸出與期望輸出之間差值即為誤差信號(hào),誤差信號(hào)由輸出端開始逐層向前傳播,這是誤差信號(hào)的反向傳播。在誤差信號(hào)的反向傳播的過(guò)程中,網(wǎng)絡(luò)的權(quán)值由誤差信號(hào)反饋進(jìn)行調(diào)節(jié)。通過(guò)權(quán)值的不斷修改使網(wǎng)絡(luò)的實(shí)際輸出更接近期望輸出。</p><p><b> 3.2程序
65、實(shí)現(xiàn)如下</b></p><p><b> 相關(guān)參數(shù)定義</b></p><p><b> type</b></p><p> TForm1 = class(TForm)</p><p> Chart1: TChart;</p><p> Chart2:
66、 TChart;</p><p> Series1: TLineSeries;</p><p> Series2: TLineSeries;</p><p> Series3: TLineSeries;</p><p> OKBtn: TButton;</p><p> GroupBox1: TGroupBo
67、x;</p><p> Label1: TLabel;</p><p> mEdit: TEdit;</p><p> etaEdit: TEdit;</p><p> Label2: TLabel;</p><p> alphaEdit: TEdit;</p><p> Label
68、3: TLabel;</p><p> Button1: TButton;</p><p> Button2: TButton;</p><p> Label4: TLabel;</p><p> Edit1: TEdit;</p><p> Image1: TImage;</p><p&
69、gt; BitBtn1: TBitBtn;</p><p> ActionManager1: TActionManager;</p><p> MainMenu1: TMainMenu;</p><p> ImageList1: TImageList;</p><p> FileExit1: TFileExit;</p>
70、<p> ActionMainMenuBar1: TActionMainMenuBar;</p><p> BitBtn2: TBitBtn;</p><p> procedure OKBtnClick(Sender: TObject);</p><p> procedure ExitBtnClick(Sender: TObject);<
71、/p><p> procedure FormCreate(Sender: TObject);</p><p> procedure N3Click(Sender: TObject);</p><p><b> private</b></p><p> { Private declarations }</p>
72、;<p><b> public</b></p><p> { Public declarations }</p><p><b> end;</b></p><p> BP算法實(shí)現(xiàn),相關(guān)代碼如下:</p><p> procedure TForm1.OKBtnClick(S
73、ender: TObject);</p><p> const L=400;</p><p><b> var</b></p><p> u: array[-1..L]of real;</p><p> y: array[-2..L]of real;</p><p> ym, e: ar
74、ray[0..L]of real;</p><p> out1: array[1..3]of real; //輸入層輸出</p><p> wi, wik1, wik2, dwi: array of array of real; //輸入層至隱含層權(quán)值及其增量</p><p> wo, wok1, wok2, dwo: array of real; //隱含
75、層至輸出層權(quán)值及其增量</p><p> net2, out2, df: array of real; //隱含層輸入、輸出,df為S函數(shù)導(dǎo)數(shù)</p><p> k, i, j, m, n, v: integer;</p><p> Eta, alpha: real;</p><p> //學(xué)習(xí)速率、動(dòng)量項(xiàng)因子</p>
76、<p><b> begin</b></p><p> n:=3; m:=StrToInt(mEdit.Text); //輸入層節(jié)點(diǎn)數(shù)n、隱含層節(jié)點(diǎn)數(shù)m</p><p> setLength(wi,n,m); setLength(wik1,n,m); //動(dòng)態(tài)數(shù)組(下標(biāo)從0開始)</p><p> setLength(wik2
77、,n,m); setLength(dwi,n,m);</p><p> setLength(wo,m); setLength(wok1,m);</p><p> setLength(wok2,m); setLength(dwo,m);</p><p> setLength(net2,m); setLength(out2,m); setLength(df,m);
78、</p><p> eta:=StrToFloat(etaEdit.Text); //從界面提取數(shù)據(jù)</p><p> alpha:=StrToFloat(alphaEdit.Text);</p><p> u[-1]:=0; y[-2]:=0; y[-1]:=0;</p><p> for j:=0 to m-1 do //設(shè)定
79、初始權(quán)值</p><p><b> begin</b></p><p> wo[j]:=0.50*randG(0,1);</p><p> wok1[j]:=wo[j]; //wo(k-1)</p><p> wok2[j]:=wo[j]; //wo(k-2)</p><p> for
80、 i:=0 to n-1 do</p><p><b> begin</b></p><p> wi[i,j]:=0.50*randG(0,1);</p><p> wik1[i,j]:=wi[i,j]; //wi(k-1)</p><p> wik2[i,j]:=wi[i,j]; //wi(k-2)</p
81、><p><b> end;</b></p><p><b> end;</b></p><p> series1.Clear;</p><p> series2.Clear;</p><p> series3.Clear;</p><p>
82、//***************** 神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)過(guò)程 ****************</p><p> v:=strtoint(edit1.Text);</p><p> for k:=0 to L do</p><p><b> begin</b></p><p><b> if v=1<
83、/b></p><p><b> then</b></p><p><b> begin</b></p><p><b> u[k]:=k;</b></p><p> y[k]:=power(k,1); //系統(tǒng)實(shí)際輸出(即期望輸出)</p><
84、;p><b> end</b></p><p><b> else</b></p><p><b> if v=2</b></p><p><b> then</b></p><p><b> begin</b><
85、;/p><p> u[k]:=sin(0.005*2*pi*k);</p><p> y[k]:=power(u[k-1],5)+(0.8+power(y[k-1],3))/(1+sqr(y[k-1])+power(y[k-2],4));</p><p><b> end</b></p><p> else if v
86、=3 then</p><p><b> begin</b></p><p><b> u[k]:=k;</b></p><p> y[k]:=power(k,2)/10000;</p><p><b> end;</b></p><p> o
87、ut1[1]:=u[k-1]; out1[2]:=y[k-1];out1[3]:=y[k-2]; //確定網(wǎng)絡(luò)輸入量</p><p> //計(jì)算隱含層輸入輸出及S函數(shù)的導(dǎo)數(shù)</p><p> for j:=0 to m-1 do</p><p><b> begin</b></p><p> net2[j]:=
88、0;</p><p> for i:=0 to n-1 do</p><p> net2[j]:=net2[j]+wik1[i,j]*out1[i];</p><p> out2[j]:=1/(1+exp(-net2[j]));</p><p> df[j]:=exp(-net2[j])/sqr(1+exp(-net2[j]));&l
89、t;/p><p><b> end;</b></p><p> //計(jì)算輸出層輸出(即模型輸出) </p><p> ym[k]:=0; </p><p> for j:=0 to m-1 do</p><p> ym[k]:=ym[k]+wok1[j]*out
90、2[j];</p><p> e[k]:=y[k]-ym[k]; //輸出誤差</p><p> //隱含層至輸出層權(quán)值的學(xué)習(xí)</p><p> for j:=0 to m-1 do</p><p><b> begin</b></p><p> dwo[j]:=eta*e[k]*out
91、2[j];</p><p> wo[j]:=wok1[j]+dwo[j]+alpha*(wok1[j]-wok2[j]);</p><p><b> end;</b></p><p> //輸入層至隱含層權(quán)值的學(xué)習(xí)</p><p> for i:=0 to n-1 do</p><p>
92、 for j:=0 to m-1 do</p><p><b> begin</b></p><p> dwi[i,j]:=eta*e[k]*wok1[j]*df[j]*out1[i];</p><p> wi[i,j]:=wik1[i,j]+dwi[i,j]+alpha*(wik1[i,j]-wik2[i,j]);</p>
93、<p><b> end;</b></p><p><b> //更新數(shù)據(jù)</b></p><p> for j:=0 to m-1 do</p><p><b> begin</b></p><p> wok2[j]:=wok1[j]; //wo(k-2
94、)</p><p> wok1[j]:=wo[j]; //wo(k-1)</p><p> for i:=0 to n-1 do</p><p><b> begin</b></p><p> wik2[i,j]:=wik1[i,j]; //wi(k-2)</p><p> wik1[i
95、,j]:=wi[i,j]; //wi(k-1)</p><p><b> end;</b></p><p><b> end;</b></p><p> series1.AddXY(k,y[k]); //曲線繪制</p><p> series2.AddXY(k,ym[k]);</p&
96、gt;<p> series3.AddXY(k,e[k]);</p><p><b> end;</b></p><p><b> end;</b></p><p> procedure TForm1.ExitBtnClick(Sender: TObject);</p><p>
97、;<b> begin</b></p><p><b> close;</b></p><p><b> end;</b></p><p><b> 實(shí)驗(yàn)結(jié)果與分析</b></p><p> 4.1 線性函數(shù)逼近</p><p
98、> 輸入節(jié)點(diǎn):8 學(xué)習(xí)速率:0.3 動(dòng)量因子:0.05</p><p> 輸入節(jié)點(diǎn):8 學(xué)習(xí)速率:0.5 動(dòng)量因子:0.05</p><p> 分析:在進(jìn)行BP算法時(shí),學(xué)習(xí)速率并不是取越大越好,如果取得太大,系統(tǒng)逼近的曲線會(huì)產(chǎn)生振蕩。一般的說(shuō)來(lái)輸出單元的局部梯度比輸入端的大,可以使前者的學(xué)習(xí)速率小些。另外,有較多輸入端的神經(jīng)元其學(xué)習(xí)速率比有較少的輸入
99、端的神經(jīng)元其學(xué)習(xí)速率小些。</p><p> 4.2 非線性函數(shù)(平方函數(shù))逼近</p><p> 輸入節(jié)點(diǎn):10 學(xué)習(xí)速率:0.5 動(dòng)量因子:0.05</p><p> 輸入節(jié)點(diǎn):10 學(xué)習(xí)速率:0.5 動(dòng)量因子:0.02</p><p> 分析:在BP算法中,一定的范圍內(nèi)調(diào)整動(dòng)量因子α可以提高逼近函數(shù)的
100、精度。</p><p> 4.3 差分函數(shù)逼近</p><p><b> 差分函數(shù)模型:</b></p><p> u[k]:=sin(0.005*2*pi*k);</p><p> y[k]:=power(u[k-1],5)+(0.8+power(y[k-1],3))/(1+sqr(y[k-1])+power(
101、y[k-2],4));</p><p> 輸入節(jié)點(diǎn):10 學(xué)習(xí)速率:0.3 動(dòng)量因子:0.05</p><p> 輸入節(jié)點(diǎn):39 學(xué)習(xí)速率:0.3 動(dòng)量因子:0.05</p><p> 分析:在BP算法中,輸入節(jié)點(diǎn)不應(yīng)設(shè)置的太大,否則過(guò)大會(huì)引起振蕩即網(wǎng)絡(luò)不穩(wěn)定。</p><p><b> 總結(jié)<
102、;/b></p><p> 本設(shè)計(jì)使用Delphi 7作為前臺(tái)操作界面實(shí)現(xiàn)對(duì)辨識(shí)系統(tǒng)的功能操作。本辨識(shí)系統(tǒng)實(shí)現(xiàn)了BP算法逼近函數(shù)曲線的基本功能,經(jīng)過(guò)調(diào)試運(yùn)行,表明該系統(tǒng)具有可行性和可擴(kuò)充性。但系統(tǒng)還有待進(jìn)一步的完善與規(guī)劃,操作系統(tǒng)還有待于進(jìn)一步的改善,使系統(tǒng)更加高效,更加人性化。</p><p> 通過(guò)幾周的設(shè)計(jì)練習(xí),從系統(tǒng)的需求分析開始,到概念設(shè)計(jì),邏輯設(shè)計(jì),再到最后的系統(tǒng)實(shí)施
103、與維護(hù),一步步走下來(lái)雖然感覺(jué)有點(diǎn)累,但每一步都獲益匪淺。認(rèn)認(rèn)真真完成每一步,直到完成整個(gè)系統(tǒng)之后,忽然有一種破繭而出的感覺(jué)。從這個(gè)設(shè)計(jì)中,不僅僅從實(shí)踐中鞏固提高了數(shù)據(jù)庫(kù)的相關(guān)知識(shí),體會(huì)了設(shè)計(jì)一個(gè)系統(tǒng)的過(guò)程,更學(xué)到了一種設(shè)計(jì)分析的思想,一種能力。</p><p> 從系統(tǒng)的需求分析開始,到后來(lái)的每一步,都需要圍繞著一個(gè)整體的思路,一個(gè)工程的概念進(jìn)行,需要逐層的將系統(tǒng)一步步分解,細(xì)化。然后,分別實(shí)現(xiàn)每一個(gè)功能,每一
104、個(gè)模塊,最后將全部模塊整合起來(lái),系統(tǒng)便成型了。在這幾周的課程設(shè)計(jì)中,遇到了各種各樣的問(wèn)題,特別是delphi實(shí)現(xiàn)BP算法,以及與系統(tǒng)前臺(tái)的實(shí)現(xiàn)階段。由于第一次接觸相關(guān)的軟件,所以使用起來(lái)相當(dāng)?shù)某粤?,幾乎每一步都可能發(fā)生錯(cuò)誤。為了解決這樣那樣的問(wèn)題,我翻閱了不同的書籍,在網(wǎng)上搜索了大量的資料,一個(gè)一個(gè)的將問(wèn)題解決掉。在這期間,無(wú)形中鍛煉了我分析問(wèn)題,解決問(wèn)題的能里,鍛煉了我自主學(xué)習(xí)的能力。</p><p> 在工
105、程訓(xùn)練期間,我體會(huì)到了學(xué)習(xí)的樂(lè)趣,體會(huì)到了付出之后獲得回報(bào)的喜悅與欣慰。感謝老師的大力幫助和支持,感謝我的同學(xué)與朋友,在我遇到各種各樣復(fù)雜問(wèn)題的時(shí)候,給與我鼓勵(lì)和幫助。</p><p> 參考文獻(xiàn) (References)</p><p> [1]劉正元 《Delphi 程序設(shè)計(jì)與應(yīng)用教程》 中國(guó)水利水電出版社 2005</p><p> [2]許潔舟,林偉
106、鵬,林勝雄,來(lái)賓 《Delphi7 程序設(shè)計(jì)與實(shí)例》 冶金工業(yè)出版社 2003</p><p> [3]呂偉臣,霍言,高小山 《Delphi2005入門與提高》 清華大學(xué)出版社 2006</p><p> [4]周志德,張燕 《Delphi程序設(shè)計(jì)》 高等教育出版社 2004</p><p> [5]Fredrick M.Ham Ivica Kostanic
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫(kù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于delphi的神經(jīng)網(wǎng)絡(luò)系統(tǒng)辨識(shí)側(cè)重理論
- 基于神經(jīng)網(wǎng)絡(luò)系統(tǒng)參數(shù)辨識(shí)的自適應(yīng)控制方法研究.pdf
- 基于神經(jīng)網(wǎng)絡(luò)的系統(tǒng)辨識(shí)與控制.pdf
- 基于madaline的神經(jīng)網(wǎng)絡(luò)系統(tǒng)課程設(shè)計(jì)
- 基于神經(jīng)網(wǎng)絡(luò)的系統(tǒng)辨識(shí)方法研究.pdf
- 基于Elman神經(jīng)網(wǎng)絡(luò)的換熱器系統(tǒng)動(dòng)態(tài)辨識(shí).pdf
- 基于神經(jīng)網(wǎng)絡(luò)的智能白酒勾調(diào)網(wǎng)絡(luò)系統(tǒng).pdf
- 基于神經(jīng)網(wǎng)絡(luò)的磁懸浮軸承系統(tǒng)辨識(shí)研究.pdf
- 基于聯(lián)想記憶神經(jīng)網(wǎng)絡(luò)的系統(tǒng)辨識(shí)與控制.pdf
- 基于二型模糊神經(jīng)網(wǎng)絡(luò)的系統(tǒng)辨識(shí)算法研究.pdf
- 基于神經(jīng)網(wǎng)絡(luò)的磁軸承系統(tǒng)辨識(shí)和控制研究.pdf
- 基于神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)地震反應(yīng)仿真與系統(tǒng)辨識(shí).pdf
- 基于遞歸神經(jīng)網(wǎng)絡(luò)的非線性系統(tǒng)辨識(shí)研究.pdf
- 基于神經(jīng)網(wǎng)絡(luò)的系統(tǒng)辨識(shí)與控制方法的研究.pdf
- 幾類神經(jīng)網(wǎng)絡(luò)系統(tǒng)解的存在性研究.pdf
- 酸軋機(jī)組人工神經(jīng)網(wǎng)絡(luò)系統(tǒng).pdf
- 基于神經(jīng)網(wǎng)絡(luò)的木材干燥模型辨識(shí)研究.pdf
- 基于BP神經(jīng)網(wǎng)絡(luò)的中醫(yī)體質(zhì)辨識(shí)研究.pdf
- 基于人工神經(jīng)網(wǎng)絡(luò)的非線性時(shí)變系統(tǒng)辨識(shí)研究.pdf
- 投影神經(jīng)網(wǎng)絡(luò)系統(tǒng)的穩(wěn)定性研究.pdf
評(píng)論
0/150
提交評(píng)論