查看: 127|回复: 5|关注: 0

[已答复] 模糊神经网络问题

[复制链接]

新手

6 麦片

财富积分


050


14

主题

42

帖子

0

最佳答案
  • 关注者: 1
发表于 2018-11-8 21:44:43 | 显示全部楼层 |阅读模式
大家好,怎样确定模糊神经网络的初始参数呢,比如权值w,基宽b与中心c呢? 急急急,本人不胜感激



新手

5 麦片

财富积分


050


1

主题

13

帖子

0

最佳答案
发表于 7 天前 | 显示全部楼层
您好,有模糊神经网络的源程序没,有的话发我份,1340308145@qq.com

新手

6 麦片

财富积分


050


14

主题

42

帖子

0

最佳答案
  • 关注者: 1
 楼主| 发表于 6 天前 | 显示全部楼层
meckyzhang 发表于 2018-11-9 15:45
您好,有模糊神经网络的源程序没,有的话发我份,
  1. function [sys,x0,str,ts,simStateCompliance] = FNNNNNNNN_lianxi(t,x,u,flag)

  2. switch flag
  3.     case 0
  4.         [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes;
  5.     case 1
  6.         sys=mdlDerivatives(t,x,u);
  7.     case 2
  8.         sys=mdlUpdate(t,x,u);
  9.     case 3
  10.         sys=mdlOutputs(t,x,u);
  11.     case 4
  12.         sys=mdlGetTimeOfNextVarHit(t,x,u);
  13.     case 9
  14.         sys=mdlTerminate(t,x,u);
  15.     otherwise
  16.         DAStudio.error('Simulink:blocks:unhandledFlag', num2str(flag));
  17.         
  18. end

  19. function [sys,x0,str,ts,simStateCompliance]=mdlInitializeSizes
  20. sizes=simsizes;
  21. sizes.NumContStates=0;
  22. sizes.NumDiscStates=3;
  23. sizes.NumOutputs=4;
  24. sizes.NumInputs=7;
  25. sizes.DirFeedthrough=1;
  26. sizes.NumSampleTimes=1;
  27. sys=simsizes(sizes);
  28. x0=[0,0,0];
  29. str=[];
  30. ts=[0 0];
  31. simStateCompliance = 'UnknownSimState';

  32. function sys=mdlDerivatives(t,x,u)

  33. sys = [];
  34. function sys=mdlUpdate(t,x,u)

  35. x=[u(4)-u(3);u(4);u(4)-2*u(3)+u(7)];%e(k),e(k)求和,e(k)求微分            
  36. sys=[x(1);x(2);x(3)];                                                 %u(1)=yout(k-1)
  37.                                                                        %u(2)=yout(k)  
  38.                                                                        %u(3)=e(k-1)
  39. function sys=mdlOutputs(t,x,u)                                         %u(4)=e(k)
  40. % xite=0.2;                                                               %u(5)=uk(k-1)
  41. % alfa=0.05;                                                             %u(6)=uk(k)
  42.                                                                         %u(7)=e(k-2)
  43. %global c0 c c_1 c_2 b0 b  b_1 b_2 w0 w w_1 w_2 Kp Ki Kd u_1
  44. %%         初始化权值与吧b,c
  45. % if t==0
  46. % w0=rand(49,3);
  47. % c0=0.25*ones(2,7);
  48. % b0=0.35*ones(2,7);
  49. % end
  50. %%
  51. % w_2=w0;w_1=w0;
  52. % c_2=c0;c_1=c0;
  53. % b_2=b0;b_1=b0;
  54. %global w0
  55. global xic0 xib0 xiw0
  56. global u_1;

  57. w=xiw0*rand(49,3);
  58. c=xic0*rands(2,7);
  59. b=xib0*ones(2,7);
  60. %w=w0;



  61. net2=zeros(2,7);f2=zeros(2,7); m1=zeros(1,7); m2=zeros(1,7);ff3=zeros(7,7);
  62. %d_w=zeros(49,3);d_b=zeros(2,7);d_c=zeros(2,7);

  63. f1=[u(4),(u(4)-u(3))]';                   %输入偏差与偏差变化率      
  64. %epid=[x(1);x(2);x(3)];                %用于传给pid控制器的误差

  65. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%    layer2:fuzzation
  66. for i=1:1:2
  67.     for j=1:1:7
  68.         net2(i,j)=-((f1(i)-c(i,j))^2)/(b(i,j)^2);
  69.     end
  70. end

  71. for i=1:1:2
  72.     for j=1:1:7
  73.         f2(i,j)=exp(net2(i,j));
  74.     end
  75. end
  76. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   layer3:inference(49rule)
  77. for j=1:1:7
  78.     m1(j)=f2(1,j);
  79.     m2(j)=f2(2,j);
  80. end
  81. for i=1:1:7
  82.     for j=1:1:7
  83.         ff3(i,j)=m1(i)*m2(j);
  84.     end
  85. end
  86. f3=[ff3(1,:),ff3(2,:),ff3(3,:),ff3(4,:),ff3(5,:),ff3(6,:),ff3(7,:)];   %(1,49)矩阵

  87. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%   layer4:output

  88. f4=w'*f3';           %f4=(3,1)矩阵
  89. Kp=f4(1);
  90. Ki=f4(2);
  91. Kd=f4(3);
  92. %u_k=u_1+f4'*epid;
  93. % if Kp<0
  94. %     Kp=0;
  95. % end
  96. % if Ki<0
  97. %     Ki=0;
  98. % end
  99. % if Kd<0
  100. %     Kd=0;
  101. % end
  102. u_k=u_1+Kp*x(1)+Ki*x(2)+Kd*x(3);
  103. %   if(u_k>10)
  104. %          u_k=10;
  105. %   end
  106. %   if(u_k<-10)
  107. %          u_k=-10;
  108. %   end
  109.                               
  110. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  111. %%  在线调节权值与b和c的值
  112. % dyu=sign(u(2)-u(1))/(u(6)-u(5)+0.0001);
  113. %
  114. % for i=1:1:49
  115. %     for j=1:1:3
  116. %         d_w(i,j)=xite*u(4)*dyu*epid(j)*f3(i);
  117. %     end
  118. % end
  119. % w=w_1+d_w+alfa*(w_1-w_2);
复制代码

新手

6 麦片

财富积分


050


14

主题

42

帖子

0

最佳答案
  • 关注者: 1
 楼主| 发表于 6 天前 | 显示全部楼层

你在做吗,可以彼此交流

新手

5 麦片

财富积分


050


1

主题

17

帖子

0

最佳答案
发表于 4 天前 | 显示全部楼层
meckyzhang 发表于 2018-11-9 15:45
您好,有模糊神经网络的源程序没,有的话发我份,

你好 有相关资料吗   ,电力电子方向的,平时不接触这些,初学看这些有些吃力 ,e-mail   flyhgp@yeah.net

入门

55 麦片

财富积分


50500


7

主题

26

帖子

0

最佳答案
发表于 4 天前 | 显示全部楼层
楼主的建议很好
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表