原始问题:
用C语言实现BP神经网络pid算法
include<stdio.h>
include<math.h>
define N 3 //输入层神经元个数,即输入变量个数
define M 2 //隐含层神经元个数
define K 1 //输出层神经元个数,即输出变量个数
/定义BP神经网络的参数*/
double p[N+1]={0,0.15,0.2};//输入层的权重wi,i表示上一层的序号,j表示本层的序号
double q[M+1]={0,0.25,0.3};//隐含层的权重wi,i表示上一层的序号,j表示本层的序号
double r[K+1]={0,0.4};//输出层的权重wi,i表示上一层的序号,j表示本极大化或极小化目标函数时用到。例如极大化目标函数f(x)时尽量使得f(x)尽量大。而在PID中常常会用到这样 的思想。例如在PID中控制误差e=y-y尽量接近于零。因此这是一个最优化问题。 其核心思想是通过不断修正权重使得误差e=y-y尽 力去实 现最优化目标。 其整体流 程是通过不断修正权 重使得误差e=y-y* 逐 渐靠 近于零从而实 现对 PID 性能 的优 化。
Prev:BP神经网络模型的学习速率怎么设置初始值