资源简介
这是一个基于Matlab语言s函数的RBF网络自适应控制器的设计,可以方便的移植到其他系统!
代码片段和文件信息
function [sysx0strts] = nnrbf_pid(txuflagTnnK_pideta_pidxitealfabeta0w0)
%
switch flag
case 0
[sysx0strts]=mdlInitializeSizes(Tnn);
case 2
sys=mdlUpdate(u);
case 3
sys=mdlOutputs(txuTnnK_pideta_pidxitealfabeta0w0);
case {149}sys = [];
otherwise
error([‘Unhandled flag = ‘num2str(flag)]);
end
%
function [sysx0strts] = mdlInitializeSizes(Tnn)
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 3;
sizes.NumOutputs = 4+5*nn;
sizes.NumInputs = 9+15*nn;
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1;
sys = simsizes(sizes);
x0 = zeros(31);
str = [];
ts = [T 0];
%
function sys=mdlUpdate(u)
sys = [u(1)-u(2);u(1);u(1)+u(3)-2*u(2)];
function sys=mdlOutputs(txuTnnK_pideta_pidxitealfabeta0w0)
%
ci_3=reshape(u(7:6+3*nn)3nn);
ci_2=reshape(u(7+5*nn:6+8*nn)3nn);
ci_1=reshape(u(7+10*nn:6+13*nn)3nn);
bi_3=u(7+3*nn:6+4*nn);
bi_2=u(7+8*nn:6+9*nn);
bi_1=u(7+13*nn:6+14*nn);
w_3=u(7+4*nn:6+5*nn);
w_2=u(7+9*nn:6+10*nn);
w_1=u(7+14*nn:6+15*nn);
xx=u([6;4;5]);
if t==0
% ci_1=rand(3nn);
% bi_1=rand(nn1);
% w_1=rand(nn1);
ci_1=w0(1)*ones(3nn);
bi_1=w0(2)*ones(nn1);
w_1=w0(3)*ones(nn1);
% ci_2=ci_1;ci_3=ci_2;
% bi_2=bi_1;bi_3=bi_2;
% w_2=w_1;w_3=w_2;
K_pid0=K_pid;
else
% ci_3=reshape(u(7:6+3*nn)3nn);
% ci_2=reshape(u(7+5*nn:6+8*nn)3nn);
% ci_1=reshape(u(7+10*nn:6+13*nn)3nn);
% bi_3=u(7+3*nn:6+4*nn);
% bi_2=u(7+8*nn:6+9*nn);
% bi_1=u(7+13*nn:6+14*nn);
% w_3=u(7+4*nn:6+5*nn);
% w_2=u(7+9*nn:6+10*nn);
% w_1=u(7+14*nn:6+15*nn);
K_pid0=u(end-2:end);
end
xx=u([6;4;5]);
for j=1:nn
h(j1)=exp(-norm(xx-ci_1(:j))^2/(2*bi_1(j)*bi_1(j)+eps));
end
ymout=w_1‘*h;
yout=u(4);
dym=yout-ymout;
w=w_1+xite*dym*h+alfa*(w_1-w_2)+beta0*(w_2-w_3);
for j=1:nn
d_bi(j1)=xite*dym*w_1(j)*h(j)*(bi_1(j)^(-3))*norm(xx-ci_1(:j))^2;
d_ci(:j)=xite*dym*w_1(j)*h(j)*(xx-ci_1(:j))*(bi_1(j)^(-2));
end
bi=bi_1+d_bi+alfa*(bi_1-bi_2)+beta0*(bi_2-bi_3);
ci=ci_1+d_ci+alfa*(ci_1-ci_2)+beta0*(ci_2-ci_3);
dJac=sum(w.*h.*(-xx(1)+ci(1:)‘)./bi.^2);
KK=K_pid0+u(1)*dJac*eta_pid.*x;
sys = [u(6)+KK‘*x;KK;ci(:);bi(:);w(:)];
%
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2283 2009-04-26 17:00 基于s函数的RBF网络pid控制器设计\nnrbf_pid.m
文件 31 2009-04-28 10:32 基于s函数的RBF网络pid控制器设计\readme.txt
目录 0 2009-04-28 10:32 基于s函数的RBF网络pid控制器设计
----------- --------- ---------- ----- ----
2314 3
- 上一篇:office2010官方完美卸载工具
- 下一篇:罚函数matlab实现
相关资源
-
二阶模型PID控制simuli
nk仿真模型 -
Simuli
nk仿真_遗传算法PID控制_对比实 - 最大功率点跟踪算法
- Fuzzy Neural Network by matlab 四个不同的
- 永磁同步电机模糊PID控制
- 模糊自适应PID控制仿真
- 人工蜂群算法优化无刷直流电机PID控
- BP神经网络PID S函数
- 《先进PID控制及其MATLAB仿真》刘金琨
- 先进PID控制MATLAB仿真第4版代码
- 基于MATLAB的分数阶PID控制器的设计(
-
Buck基础电路MATLAB的Simuli
nk仿真+PID控 - 基于MATLAB的双容水箱液位PID控制.pdf
- 基于遗传算法优化BP神经网络PID控制器
- Matlab遗传算法优化RBF网络权值-遗传算
-
课程设计 用matlab和simuli
nk设计PID控 - 模糊自适应PID控制器matlab仿真程序
- matlab编写的船舶动力定位PID控制函数
- PSO优化pid控制器
- BP神经网络PID控制代码
- s函数编写的光伏最大功率追踪(MPP
- fuzzy pid控制程序的源码
- 一个二维logistics函数实现的图像加密
-
FBS 基于carsim的ABS simuli
nk模型 -
Sfunction_ADRC-_Simuli
nk 基于S函数编写了 - 四旋翼无人飞行器PID控制
- 四轴飞行器PID控制(QballController)
- UAV-matlab 无人机PID控制及智能PID控制器
- 卫星姿态控制的BP神经网络PID控制器设
- 三电平三相桥式逆变器的SVPWM控制方式
评论
共有 条评论