美文网首页
2020-04-10

2020-04-10

作者: sonia的红猪猪 | 来源:发表于2020-04-17 21:19 被阅读0次

平头哥比赛之电机控制算法仿真

神经网络自适应pid算法

自适应模糊算法
自适应神经网络算法
自适应pid算法是在pid算法的基础上,使得pid算法的比例增益Kp,积分增益Ki,微分增益kd能够随着受控对象的状态变化自动变化的控制器,通常在pid控制器中串接受控对象的误差和误差的微分作为输入的调整器。

自适应pid示意图
传统的pid公式:
自适应pid公式

神经网络pid控制

神经网络pid控制是指运用单层神经网络,将Kp,Ki,Kd作为神经网络的偏置权重,通过梯度优先下降法更新神经网络的权重参数构成的。
X_{1} = e(n) X_{2} = e(n)-e(n-1) X_{3} = e(n) -2e(n-1)+e(n-2)
\varDelta u\left( k\right) \ = K\ \Sigma W_{i}X_{i}
W_{i}是神经网络的偏置 X_{i}是受控对象的系统误差。

单层感知器简单神经网络示意图
前向传递模型

神经网络的训练----即对于W_{i} 的实时更新

使用有监督学习的方法对于神经网络进行更新。


神经网络反向传递

W_{i\ }(k)=\ W_{i}(k-1)\ + \eta e(k)u(k)
其中\eta为学习率,可以调整算法梯度下降的速率,\eta设置的过小会导致收敛速度变慢,\eta设置的过大会导致跳过局部最优值,具体算法的实施过程如下:
U\left( k\right) \ =\ U\left( k-1\right) \ +\ K\sum^{3}_{i=1} W_{i}x_{i}(k)
W_{i}(k)\ =\ \frac{w_{i}}{\sum^{3}_{i=1} w_{i}}
W_{1}(k)\ =\ W_{1}(k-1)\ +\ \eta_{i} U(k)e(k)[e(k)+\Delta e(k)]
W_{2}(k)\ =\ W_{2}(k-1)\ +\ \eta_{p} U(k)e(k)[e(k)+\Delta e(k)]
W_{3}(k)\ =\ W_{3}(k-1)\ +\ \eta_{d} U(k)e(k)[e(k)+\Delta e(k)]

clear all;
clc
x = [0,0,0];  %定义输入矩阵
xiteP = 0.4;   %定义学习速率
xiteI = 0.35; 
xiteD = 0.4;

wkp_1 = 0.1; %初始化权重
wki_1 = 0.1;
wkd_1 = 0.1;

erro_1 = 0; %初始化误差
erro_2 = 0;
y_1 = 0;y_2 = 0;y_3 = 0; %初始化被控对象模型
u_1 = 0;u_2 = 0;u_3 = 0;

ts = 0.001; %定义时间步长

for k=1:1:1000 %循环迭代
    time(k) = k*ts; %时间为K*ts总时间也就是1
    yd(k) = 1; %目标值
if k==100
      y(k) = 0.368*y_1+0.264*y_2+0.1*u_1+0.632*u_2+0.2; %当迭代到100次加入扰动0.2
else
    y(k) = 0.368*y_1+0.264*y_2+0.1*u_1+0.632*u_2; %被控对象模型
end
erro(k) = yd(k)-y(k); %获取误差

wkp(k) = wkp_1+xiteP*erro(k)*u_1*x(1); %更新权重
wki(k) = wki_1+xiteI*erro(k)*u_1*x(2);
wkd(k) = wkd_1+xiteD*erro(k)*u_1*x(3);
K = 0.12; %定义比例系数

  x(1) = erro(k)-erro_1; %给输入矩阵赋值
  x(2) = erro(k);
  x(3) = erro(k)-2*erro_1+erro_2;

  wadd(k) = abs(wkp(k))+abs(wki(k))+abs(wkd(k)); %将权重求和
  w11(k) = wkp(k)/wadd(k); %得出P
  w22(k) = wki(k)/wadd(k); %I
  w33(k) = wkd(k)/wadd(k); %D
  w = [w11(k),w22(k),w33(k)];

  u(k) = u_1 + K*w*x; %增量式PID
  erro_2 = erro_1; %e(k-2)
  erro_1 = erro(k);%e(k-1)

  u_3 = u_2;u_2 = u_1;u_1 = u(k);
  y_3 = y_2;y_2 = y_1;y_1 = y(k);

  wkp_1 = wkp(k); %w1(k-1)
  wkd_1 = wkd(k); 
  wki_1 = wki(k);
end

figure(1);

plot(time,yd,'r',time,y,'k','linewidth',2);%显示被控模型曲线和设定曲线
xlabel('time(s)');ylabel('yd,y'); 
legend('ideal position','position tracking');
figure(2);
plot(time,u,'r','linewidth',2); %显示输入PID输出曲线
xlabel('time(s)');ylabel('Control input');
figure(3);
plot(time,w11,'g',time,w22,'r',time,w33,'b','linewidth',2); %显示PID参数调整曲线
xlabel('time(s)');ylabel('PID');
legend('P','I','D')

仿真结果:


被控模型状态曲线
pid调整量输出曲线
pid参数调整量

相关文章

  • 正则

    日期日期格式通常为:2020-04-10,2020-04-10 10:35:52,2020/04/40,2020/...

  • HP Pavilion Gaming 15-ak004TX 黑苹

    安装日期:2020-04-10 安装镜像: macOS Catalina 10.15.4(19E266) 链接: ...

  • 晚间日记2

    今天2020-04-10 起床:07:00 就寝:24:00 天气:阴天 心情:不错呀 任务清单 今天完成的任务,...

  • 《贫穷的本质》1

    Day25 2020-04-10 《贫穷的本质》第1-5章 【字数】 读了,看了,思考了,越觉得贫穷的本质种种原因...

  • 命自我立,福自我求NO.146

    2020-04-10 星期五 晴 事在人为,命自我立,任何人的命运,归根结底都是自己创造的。在命运面前...

  • 《虎面》:迷幻而又纯真的小镇记忆

    作者:何凯凯(2020-04-10《文艺报》) 2020年1月,“90后”陕西作家范墩子出版了他的新书《虎面》。该...

  • 梅梅的声音训练之路……

    2020-04-10 10:15 我是子涵声音私房课第19期学员梅梅,28天,我收获了幸会、幸运和幸福! 在加入私...

  • 学历真是个打不破的魔咒/浮躁

    2020-04-10 看到的一条,微博的热搜就是学历对找工作的影响。 于是可能今天自身关注的就是这些。评论有提到学...

  • 大黑的“乌鸡汤” 1. 怎么过好这一生

    来自专栏:美白乌鸡汤 共15篇 怎么过好这一生 2020-04-10 阅读 48万+ 这一篇算是综合性地和大家分享...

  • 2020-04-10 野心

    2020-04-10 野心 目前的工作,不是太理想。 首先是从事的工作内容过于枯燥和单调,一天天对着电脑整理一些产...

网友评论

      本文标题:2020-04-10

      本文链接:https://www.haomeiwen.com/subject/wrjrmhtx.html