当前位置:文档之家› 东北林业大学机电工程学院智能控制大作业1

东北林业大学机电工程学院智能控制大作业1


图(b)RBF 神经网络 PID 控制器仿真结构图
II
控制器的输出参数如图 e 所示:
图(e)控制器输出参数变化曲线 基于 RBF 网络的 PID 控制器 S 函数如下: %基于 RBF 网络的 PID 控制器 S 函数 function [sys,x0,str,ts]=nnrbf_pid(t,x,u,flag,T,nn,K_pid,… eta_pid,xite,alfa,beta0,w0) switch flag, case 0,[sys,x0,ste,ts]=mdlInitializeSizes(T,nn); case 2,sys=mdlUpdates(u); case 3,sys=mdlOutputs(t,x,u,T,nn,K_pid,xite,alfa,beta0,w0); case {1,4,9},sys=[]; otherwise,error([‘Unhandled flag=’,num2str(flag)]); end %初始化函数 function [sys,x0,str,ts]=mdlInitializeSizes(T,nn) 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=zero(3,1);str=[];ts=[T O]; %离散状态变量更新函数 function sys=mdlUpdates(u) sys=[u(1)-u(2);u(1);u(1)+u(3)-2*u(2)]; %输出量计算函数 functionsy=mdlOutputs(t,x,u,T,nn,K_pid,xite,alfa,beta0,w0) ci_3=reshape(u(7:6+3*nn),3,nn);ci_2=reshape(u(7+5*nn:6+8*nn),3,nn ); ci_1=reshape(u(7+10*nn:6+13*nn),3,nn); 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
������������
1+������ 2)输入为多阶梯信号,在时间[0,0.2,0.3,0.5,0.7,0.8,1,1.2]对应的阶跃幅值 为[0.7,-0.8,0.9,-1,1,0.7,-0.7,0.5],如图 d 所示:
图(d)系统输入输出变化曲线 在此图中, 还有系统输出跟踪给定输入的响应。 多阶梯输入信号的 S 函数为: %多阶梯给定输入信号 function[sys,x0,str,ts]=multi_step(t,x,u,flag,tTime,yStep) switch flag, case 0 %调用初始化过程 [sysm,x0,str,ts]=mdlInitializeSizes; case 3 %计算输出信号,生成多阶跃信号 sys=mdlOutputs(t,tTime,yStep); case{1,2,4,9} %未使用 flag 值 sys=[]; otherwise %错误信息处理 error([‘Unhandled flag=’,num2str(flag)]; end; %when flag=0 时,进行初始化处理 function[sys,x0,str,ts]=mdlIntializeSizes
I
sizes=simsizes; %调入初始化的模板 sizes.NumContStates=0;sizes.NumDiscStates=0; %无连续、离散状态 sizes.NumOutputs=1;sizes.NumInputs=0; %系统的输入和输出路数 sizes.DirFeedthrough=0; %输入信号不直接传输到输出 sizes.NumSampleTimes=1; %单个采样周期 sys=simsizes(sizes); %初始化 x0=[];str=[]; %系统的初始状态为空向量 ts=[0,0]; %假设模块为连续模块 % flag=3 时,计算输出信号 function sys=mdlOutputs(t,tTime,yStep) (2)神经网络的结构为 3-6-1,即输入层 3 个节点,隐层 6 个节点,输出层 1 个 节 点 。 有 关 参 量 设 置 : η =0.25 , α =0.05 , PID 的 初 值 =[0.03;0.01;0.03],[ ������������ ;������������ ;������������ ]=[0.2 ; 0.2 ; 0.2],权重的初值 =[30 40 10], 采样周期=0.001,为了提高计算精度,做出如下调整: ������������ (������)=������������ (������ − 1)+η [������(������)-������������ (������)]ℎ������ +α [������������ (������ − 1)-������������ (������ − 2)] +β ������������ ������ − 2 -������������ (������ − 3) △������������ =[������(������)-������������ (������)]������������ ℎ������
������−������������ ������ ������ 3
2
������������ ������ =������������ (������ − 1)+η △������������ +α [������������ (������ − 1)-������������ (������ − 2)] +β ������������ ������ − 2 -������������ (������ − 3) △������������������ =[������(������)-������������ (������)]������������ ℎ������
������ ������ −������ ������������ ������ ������ 2
������������������ ������ =������������������ (������ − 1)+η △������������������ +α [������������������ (������ − 1)-������������������ (������ − 2)] +β ������������������ ������ − 2 -������������������ (������ − 3) 式中,β 为记忆因子,可取β =0.01。 RBF 神经网络 PID 控制器仿真结构图图如图 b 所示:
III
ci_1=w0(1)*ones(3,nn);bi_1=w0(2)*ones(nn,1); w_1=w0(3)*ones(nn,1);K_pid0=K_pid; else,K_pid0=u(end-2;end);end for j=1:nn %Gaussian basis h h(j,1)=exp(-norm(xx-ci_1(:,j))^2/(2*bi_1(j))); end dym=u(4)-w_1’*h;w=w_1+xite*dym*h+alfa*(w_1+w_2)+bera0*(w_2-w_3); for j=1:nn d_bi(j,1)=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;%Jacobian KK=K_pid0+u(1)*dJac*eta_pid.*x;sys=[u(6)+KK’x;KK;ci(:);bi(:);w(: )]; (3)非线性控制系统对象仿真结构图如图 c 所示, 其中 a=1, b=0.8, c=0.1。
智能控制导论大作业
机电工程学院 电气工程及其自动化二班 ** 2010****
智能控制大作业:神经网络系统设计:非线性时变对象������(������) = ������(������)的 RBF 神经网络得到 PID 控制。 该仿真情况如图 a 为系统仿真结构图。
− ������ (1−������������ ������ )������ (������−1)
图(c)非线性控制对象结构图
IV
相关主题