控制系统仿真作业.doc

控制系统仿真作业.doc

ID:59196113

大小:180.50 KB

页数:9页

时间:2020-09-10

控制系统仿真作业.doc_第1页
控制系统仿真作业.doc_第2页
控制系统仿真作业.doc_第3页
控制系统仿真作业.doc_第4页
控制系统仿真作业.doc_第5页
资源描述:

《控制系统仿真作业.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、RBF神经滑膜控制孙文杰将切换函数作为RBF网络的输入,滑膜控制器作为RBF网络的输出,利用神经网络的学习功能,可实现单入单出的神经滑膜控制。1、控制器设计被控对象为设位置指令为,切换函数设计为其中将滑膜控制器设计为RBF网络的输出,即其中为隐层神经元个数。控制的目标是使,则RBF网络的权值调整指标为则其中由于则RBF网络权值学习算法为RBF神经滑膜控制器结构如图1所示。图1神经滑膜控制器结构1、实例验证被控对象为一线性系统其中为控制输入,,。位置指令为。取,则滑膜切换函数为。神经网络的初始为随机值,网络结构为1—5—1.高斯函数参数取,。取系统的初始状态为,采用神经滑膜控制,取。采用

2、simulink仿真Simulink主程序如图2所示。图2simulink仿真模型3、仿真结果仿真的输出、输入、误差的图形如图3、4、5所示。图3输出的波形图4输入的波形图5误差的波形图为了便于比较不同的滑膜控制的控制效果,采用基于比例切换的输出、输入仿真结果如图6、7所示。图6采用比例切换控制的输出波形图6采用比例切换控制的输入波形4、仿真结果分析与结论从图3、4、5可以看出,对于一阶线性系统采用神经滑膜控制,系统的输出大约在仿真开始后的第30个周期能够跟随系统的输入,输出的误差最终稳定在0;系统的控制量在仿真刚刚开始的时候,出现较大的冲击,大约在进入30个采用周期之后最终稳定0左右

3、(围绕着0有着小幅振荡)。而采用比例切换控制的一阶线性系统,大约在第100个采样周期时才能跟随上系统的输入,稳态误差也为0;系统的控制量在仿真刚开始的100个采样周期里,出现较大幅度的振荡,这对某些不允许出现严重斗振是执行机构是不被采用的控制量,并且最终围绕0的振荡幅度比采用神经滑膜控制的振幅大。由以上分析可以得知,对于一阶线性采用神经滑膜控制的效果比采用比例切换的控制效果好。模型S函数如下:%S-functionforcontinuousstateequationfunction[sys,x0,str,ts]=s_function(t,x,u,flag)switchflag,%Ini

4、tializationcase0,[sys,x0,str,ts]=mdlInitializeSizes;case1,sys=mdlDerivatives(t,x,u);%Outputscase3,sys=mdlOutputs(t,x,u);%Unhandledflagscase{2,4,9}sys=[];%Unexpectedflagsotherwiseerror(['Unhandledflag=',num2str(flag)]);end%mdlInitializeSizesfunction[sys,x0,str,ts]=mdlInitializeSizessizes=simsizes

5、;sizes.NumContStates=2;sizes.NumDiscStates=0;sizes.NumOutputs=1;sizes.NumInputs=1;sizes.DirFeedthrough=0;sizes.NumSampleTimes=0;sys=simsizes(sizes);x0=[-0.15,0];str=[];ts=[];functionsys=mdlDerivatives(t,x,u)a=-25-5*sin(6*pi*t);b=133+50*sin(2*pi*t);sys(1)=x(2);sys(2)=-a*x(2)+b*u;functionsys=mdlOu

6、tputs(t,x,u)sys(1)=x(1);控制器S函数如下:%S-functionforcontinuousstateequationfunction[sys,x0,str,ts]=s_function(t,x,u,flag)switchflag,%Initializationcase0,[sys,x0,str,ts]=mdlInitializeSizes;%Outputscase3,sys=mdlOutputs(t,x,u);%Unhandledflagscase{2,4,9}sys=[];%Unexpectedflagsotherwiseerror(['Unhandledfl

7、ag=',num2str(flag)]);end%mdlInitializeSizesfunction[sys,x0,str,ts]=mdlInitializeSizessizes=simsizes;sizes.NumContStates=0;sizes.NumDiscStates=0;sizes.NumOutputs=1;sizes.NumInputs=2;sizes.DirFeedthrough=1;sizes.NumSampleTimes

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。