📄 pβ_bp.frm
字号:
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form Pβ_BP
Caption = "BP神经网络实验平台-输出幅值可调S型激励函数"
ClientHeight = 8310
ClientLeft = 2115
ClientTop = 1785
ClientWidth = 11880
LinkTopic = "Form1"
ScaleHeight = 9000
ScaleMode = 0 'User
ScaleWidth = 11880
StartUpPosition = 2 '屏幕中心
Begin VB.CommandButton Command3
Caption = "返 回"
Height = 375
Left = 10560
TabIndex = 8
Top = 6840
Width = 855
End
Begin VB.CommandButton Command2
Caption = "刷新屏幕"
Height = 375
Left = 10560
TabIndex = 7
Top = 6240
Width = 855
End
Begin VB.CommandButton Command1
Caption = "开始训练"
Height = 375
Left = 10560
TabIndex = 6
Top = 5640
Width = 855
End
Begin MSComDlg.CommonDialog CommonDialog1
Left = 2280
Top = 1920
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
Begin VB.TextBox Text1
BeginProperty Font
Name = "宋体"
Size = 12
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 3255
Left = 2040
MultiLine = -1 'True
ScrollBars = 3 'Both
TabIndex = 0
Text = "Pβ_BP.frx":0000
Top = 5040
Width = 8295
End
Begin VB.Label Label13
Alignment = 1 'Right Justify
Caption = "输入样本取值范围:"
Height = 255
Left = 360
TabIndex = 19
Top = 6600
Width = 1695
End
Begin VB.Label Label10
Alignment = 1 'Right Justify
Caption = "PID控制参数:"
Height = 255
Left = 600
TabIndex = 18
Top = 6840
Width = 1455
End
Begin VB.Label Label9
Alignment = 1 'Right Justify
Caption = " 输入 输出样本2:"
Height = 255
Left = 240
TabIndex = 17
Top = 7320
Width = 1815
End
Begin VB.Label Label8
Alignment = 1 'Right Justify
Caption = ":::"
Height = 615
Left = 1200
TabIndex = 16
Top = 7560
Width = 255
End
Begin VB.Label Label7
Alignment = 1 'Right Justify
Caption = " 输入 输出样本1:"
Height = 255
Left = 240
TabIndex = 15
Top = 7080
Width = 1815
End
Begin VB.Label Label6
Alignment = 1 'Right Justify
Caption = " 要求精度δ:"
Height = 255
Left = 600
TabIndex = 14
Top = 6120
Width = 1455
End
Begin VB.Label Label5
Alignment = 1 'Right Justify
Caption = " 迭代次数N:"
Height = 255
Left = 600
TabIndex = 13
Top = 5880
Width = 1455
End
Begin VB.Label Label4
Alignment = 1 'Right Justify
Caption = "输出幅值:"
Height = 255
Left = 600
TabIndex = 12
Top = 6360
Width = 1455
End
Begin VB.Label Label3
Caption = " 输出样本维数:"
Height = 255
Left = 600
TabIndex = 11
Top = 5640
Width = 1455
End
Begin VB.Label Label2
Alignment = 1 'Right Justify
Caption = "神经元个数:"
Height = 255
Left = 240
TabIndex = 10
Top = 5400
Width = 1815
End
Begin VB.Label Label1
Alignment = 1 'Right Justify
Caption = " 输入样本维数:"
Height = 255
Left = 600
TabIndex = 9
Top = 5160
Width = 1455
End
Begin VB.Line Line16
X1 = 600
X2 = 480
Y1 = 2209.386
Y2 = 2209.386
End
Begin VB.Line Line14
X1 = 600
X2 = 480
Y1 = 1169.675
Y2 = 1169.675
End
Begin VB.Line Line13
X1 = 600
X2 = 480
Y1 = 1689.531
Y2 = 1689.531
End
Begin VB.Line Line12
X1 = 600
X2 = 480
Y1 = 649.819
Y2 = 649.819
End
Begin VB.Label Label24
Caption = "5"
Height = 255
Left = 360
TabIndex = 5
Top = 2400
Width = 135
End
Begin VB.Line Line10
X1 = 600
X2 = 480
Y1 = 3249.097
Y2 = 3249.097
End
Begin VB.Line Line9
X1 = 600
X2 = 480
Y1 = 4288.809
Y2 = 4288.809
End
Begin VB.Line Line8
X1 = 600
X2 = 480
Y1 = 3768.953
Y2 = 3768.953
End
Begin VB.Line Line3
X1 = 600
X2 = 480
Y1 = 2729.242
Y2 = 2729.242
End
Begin VB.Line Line11
X1 = 11400
X2 = 600
Y1 = 5328.52
Y2 = 5328.52
End
Begin VB.Line Line6
X1 = 11160
X2 = 11400
Y1 = 5198.556
Y2 = 5328.52
End
Begin VB.Line Line7
X1 = 11160
X2 = 11400
Y1 = 5458.484
Y2 = 5328.52
End
Begin VB.Label Label16
Caption = "N"
Height = 255
Left = 11280
TabIndex = 4
Top = 4560
Width = 135
End
Begin VB.Line Line1
X1 = 600
X2 = 480
Y1 = 4808.664
Y2 = 4808.664
End
Begin VB.Line Line2
X1 = 600
X2 = 600
Y1 = 0
Y2 = 5328.52
End
Begin VB.Label Label15
Caption = "0"
Height = 255
Left = 360
TabIndex = 3
Top = 4920
Width = 135
End
Begin VB.Line Line4
X1 = 600
X2 = 480
Y1 = 0
Y2 = 259.928
End
Begin VB.Line Line5
X1 = 720
X2 = 600
Y1 = 259.928
Y2 = 0
End
Begin VB.Label Label12
Caption = "∑e^2"
Height = 255
Left = 0
TabIndex = 2
Top = 360
Width = 615
End
Begin VB.Label Label11
Caption = "误 差 曲 线"
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
Height = 255
Left = 5280
TabIndex = 1
Top = 0
Width = 1215
End
Begin VB.Menu 目录
Caption = "目录"
Begin VB.Menu 返回首页
Caption = "返回首页"
End
Begin VB.Menu SISO系统
Caption = "单变量系统"
End
Begin VB.Menu 多变量系统
Caption = "多变量系统"
End
Begin VB.Menu 最优控制
Caption = "最优控制"
End
Begin VB.Menu 人工智能
Caption = "人工智能"
End
Begin VB.Menu 数学2工具
Caption = "数学工具"
End
End
Begin VB.Menu 文件
Caption = "文件"
Begin VB.Menu 新建样本
Caption = "新建样本"
End
Begin VB.Menu 打开样本
Caption = "打开样本"
End
Begin VB.Menu 保存样本
Caption = "保存样本"
End
Begin VB.Menu 另存为
Caption = "显示样本"
End
Begin VB.Menu 保存权值
Caption = "保存权值"
End
End
Begin VB.Menu 算法
Caption = "算法"
Begin VB.Menu 基础BP
Caption = "P_β"
End
Begin VB.Menu 变步长
Caption = "变步长"
End
Begin VB.Menu PID
Caption = "跳变"
End
End
Begin VB.Menu 操作
Caption = "操作"
Begin VB.Menu 刷新屏幕
Caption = "刷新屏幕"
End
Begin VB.Menu 测试网络
Caption = "测试网络"
End
Begin VB.Menu ht
Caption = "绘 图"
End
Begin VB.Menu 测试绘图
Caption = "绘等高线"
End
Begin VB.Menu 退出
Caption = "退出"
End
End
Begin VB.Menu 帮助
Caption = "帮助"
End
End
Attribute VB_Name = "Pβ_BP"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Dim Xws '输入层维数
Dim Zws '隐层维数
Dim Yws '输出层维数
Dim Kzs '样本组数
Dim Ez, EM '总误差
Dim Ata, Bta '学习步长η
Dim Jd, Kp, Ki, Kd, Kpo '精度
Dim Ncs, ZNPID '迭代次数
Dim Wxz() '输入层→隐层连接权
Dim Wzy() '隐层层→输出层连接权
Dim Qz() '隐层阈值
Dim Qy() '输出层阈值
Dim Zsc() '隐层输出
Dim Ysc() '输出层输出
Dim Ey() '输出层误差
Dim Eyd() '输出层训练误差δy
Dim Ezd() '隐层训练误差δz
Dim Xyb() '输入样本
Dim Tyb() '输出样本,期望值
Dim Ybz(), Ei() '
Dim FC() '蜂巢信息
Dim KK() '巢中样本号
'J作为
Dim Hff '蜂房高度
Dim Gs '蜂房行、列数
Dim FFs '蜂房个数
Dim Mim, Max, BSht '输入样本区间
Dim ZJBL, K, W, U, G, D, I, J, N, M, Y, Z, X, A, B, C, E, F, L '中间变量
Dim tttt As String
Private Sub Command1_Click()
Call BP_Paint
End Sub
Private Sub Command2_Click()
Pβ_BP.Hide
Pβ_BP.Show
End Sub
Private Sub Command3_Click()
Pβ_BP.Hide
主界面.Show
End Sub
Private Sub ht_Click()
BSht = 1: Call 测试绘图_Click
End Sub
Private Sub 保存权值_Click()
Text1 = "隐层:" + Chr(13) + Chr(10)
'设置初始权值、阈值。。隐层
For J = 1 To Zws '隐层单元个数Zws
Text1 = Text1 + " Q" + CStr(Qz(J)) '取阈值为随机值
For I = 1 To Xws '输入层单元个数Xws
Text1 = Text1 + " W" + CStr(Wxz(J, I)) '取权值为随机值
Next I
Text1 = Text1 + Chr(13) + Chr(10)
Next J
Text1 = Text1 + "输出层:" + Chr(13) + Chr(10)
For J = 1 To Yws '隐层单元个数Zws
Text1 = Text1 + " Q" + CStr(Qy(J)) '取阈值为随机值
For I = 1 To Zws '输入层单元个数Xws
Text1 = Text1 + " W" + CStr(Wzy(J, I)) '取权值为随机值
Next I
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -