基于BP神经网络的PID控制

在经典增量PID的算法中需要调试的参数为kp,ki,kd。通过BP神经网络调节这三个参数,以x(i)为输入层,中间层为simoid函数:

f(x) = tanh(x)=(exp(x)-exp(-x))/(exp(x)+exp(-x)).并且通过梯度下降法修改参数


关键代码:

%Output layer
for j=1:1:Out
    dK(j)=2/(exp(K(j))+exp(-K(j)))^2;
end
for l=1:1:Out
    delta3(l)=error(k)*dyu(k)*epid(l)*dK(l);
end

for l=1:1:Out
   for i=1:1:H
       d_wo=xite*delta3(l)*Oh(i)+alfa*(wo_1-wo_2);
   end
end
    wo=wo_1+d_wo+alfa*(wo_1-wo_2);
%Hidden layer
for i=1:1:H
    dO(i)=4/(exp(I(i))+exp(-I(i)))^2;
end
    segma=delta3*wo;
for i=1:1:H
   delta2(i)=dO(i)*segma(i);
end

d_wi=xite*delta2'*xi;
wi=wi_1+d_wi+alfa*(wi_1-wi_2);


基于BP神经网络PID控制是一种使用反向传播算法训练的神经网络来实现PID控制器的方法。PID控制器是一种常用的控制器类型,可以用于调节系统的输出以使其达到期望值。 在使用BP神经网络实现PID控制时,首先需要设计一个多层前馈神经网络,其中输入层接收系统的状态信息,输出层对应于控制器的输出。中间的隐藏层可以根据需要设置多个。 训练神经网络的过程包括以下几个步骤: 1. 收集训练数据:通过将系统输入和输出的组合作为训练样本,收集一系列系统的输入输出数据。 2. 数据预处理:对训练数据进行归一化或标准化处理,以便提高训练效果。 3. 网络初始化:初始化神经网络的权重和偏置。 4. 前向传播:将输入样本通过神经网络前向传播,得到网络的输出。 5. 计算误差:将网络的输出与期望输出进行比较,计算误差。 6. 反向传播:使用误差进行反向传播,更新网络的权重和偏置。 7. 重复以上步骤:重复进行训练过程,直到达到预定的训练停止条件。 训练完成后,可以使用BP神经网络作为PID控制器的一部分,根据系统的状态信息输入到网络中,通过网络的输出得到控制器的输出,从而实现对系统的控制。 需要注意的是,BP神经网络的训练过程可能需要大量的数据和计算资源,并且需要合适的网络结构和参数设置,以获得良好的控制效果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值