当前位置:文档之家› 智能控制理论基础实验报告

智能控制理论基础实验报告

北京科技大学
智能控制理论基础实验报告
学院
专业班级
姓名
学号
指导教师
成绩
2014 年4月17日
实验一采用SIMULINK的系统仿真
一、实验目的及要求:
1.熟悉SIMULINK 工作环境及特点
2.掌握线性系统仿真常用基本模块的用法
3.掌握SIMULINK 的建模与仿真方法
二、实验内容:
1.了解SIMULINK模块库中各子模块基本功能
微分
积分
积分步长延时
状态空间模型
传递函数模型
传输延迟
可变传输延迟
零极点模型
直接查询表
函数功能块MATLAB函数
S函数(系统函数)
绝对值
点乘
增益
逻辑运算
符号函数
相加点
死区特性
手动开关
继电器特性
饱和特性
开关模块
信号分离模块
信号复合模块
输出端口
示波器模块
输出仿真数据到文件
通过实验熟悉以上模块的使用。

2. SIMULINK 的建模与仿真方法
(1)打开模块库,找出相应的模块。

鼠标左键点击相应模块,拖拽到模型窗口中即可。

(2)创建子系统:当模型大而复杂时,可创建子系统。

(3)模块的封装:
(4)设置仿真控制参数。

3.SIMULINK仿真实际应用
PID控制器的仿真实现。

控制对象的开环传递函数如下图:
加入PID控制器,求系统单位负反馈闭环单位阶跃响应,要求通过调节器的作用使系统满足超调量20%,上升时间3s,调节时间10s的要求。

使输出曲线如下图。

要求加入的PID控制器封装成一个模块使用。

三、实验报告要求:
1.针对具体实例写出上机的结果,体会其使用方法,并作出总结。

控制对象的开环传递函数如下图:
加入PID控制器,求系统单位负反馈闭环单位阶跃响应,要求通过调节器的作用使系统满足超调量20%,上升时间3s,调节时间10s的要求。

使输出曲线如下图。

要求加入的PID控制器封装成一个模块使用。

PID如下:
图1-PID控制器仿真
设计的PID控制器参数为,P-0.3,I-0.5,D-0.4,尽可能的达到超调量20%,上升时间3s,调节时间10s的要求,仿真曲线图如下:
图2-PID控制器仿真曲线图
才实验开始的初期,我觉得这个实验过于简单,但是上手之后,我发现它是
不易的,要通过很多次的实验,才能调出满足要求的曲线,明白是不易的,是的,自己动手实现对实际系统的PID控制参数调节,我对MATLAB软件又重新温习了一遍,熟悉了SIMULINK 工作环境及特点,掌握了线性系统仿真常用基本模块的用法,掌握了SIMULINK 的建模与仿真方法。

对利用SIMULIMK进行PID 控制器参数调整的方法有了更深的了解,加深了对课堂知识的理解。

只有通过实际的操作与应用,才能对所学习的知识有更好的理解,才能发现问题,解决问题,在此过程中完善自己的知识。

实验二BP神经网络设计
一、实验目的
1. 熟悉神经网络的特征、结构以及学习算法
2. 了解神经网络的结构对控制效果的影响
3. 掌握用MATLAB实现神经网络控制系统仿真的方法。

二、实验原理
人工神经网络ANN(Artificial Neural Network)系统由于具有信息的分布存储、并行处理以及自学习能力等优点,已经在信息处理、模式识别、智能控制及系统建模等领域得到越来越广泛的应用。

尤其是基于误差反向传播(Back Propagation)算法的多层前馈网络(Muhiple-LayerFeedforward Network),即BP网络,可以以任意精度逼近任意连续函数,所以广泛地应用于非线性建模、函数逼近和模式分类等方面。

1.BP网络算法实现
BP算法属于 算法,是一种监督式的学习算法。

其主要思想是:对于M个输人学习样本,已知与其对应的输出样本。

学习的目的是用网络的实际输出与目标矢量之间的误差来修改其权值,使实际与期望尽可能地接近,即使网络输出层的误差平方和达到最小,他是通过连续不断地在相对于误差函数斜率下降的方向上计算网络权值和偏差的变化而逐渐逼近目标的。

每一次权值和偏差的变化都与网络误差的影响成正比,并以反向传播的方式传递到每一层。

2.BP网络的设计
在MATLAB神经网络工具箱中.有很方便的构建神经网络的函数。

对于BP网络的实现.其提供了四个基本函数:newff,init.train和sim.它们分别对应四个基本步骤.即新建、初始化、训练和仿真
(1)初始化前向网络
初始化是对连接权值和阈值进行初始化。

initff函数在建立网络对象的同时,自动调用初始化函数,根据缺省的参数对网络的连接权值和阈值进行初始化。

格式:
[wl,bl,w2,b2]=initff(p,sl,fl,s2,f2)
其中P表示输入矢量,s表示神经元个数,f表示传递函数,W表示权值,b 表示阈值。

(2)训练网络
BP网络初始化以后,就可对之进行训练了。

函数采用批处理方式进行网络连接权值和阈值的更新,要对其参数进行设置,如学习步长、误差目标等,同时在网络训练过程中,还用图形显示网络误差随学习次数的变化。

①基本梯度下降法训练网络函数trainbp
格式:
[wl,bl,w2,b2,te,tr];trainbp(wl,bl,fl,w2,b2,f2,p,t,tp)
②带有动量项的自适应学习算法训练网络函数trainbpx
格式:
[wl,bl,w2,b2,te,tr]=trainbpx(wl,bl,fl,w2,b2,f2,p,t,tp)
其中P表示输入矢量,t表示目标矢量,te为网络的实际训练次数,tr为网络训练误差平方和的行矢量,tp表示网络训练参数(如学习率、期望误差、最大学习次数等)。

(3)网络仿真
仿真函数simff用来对网络进行仿真。

利用此函数,可以在网络训练前后分别进行输入输出的仿真,以做比较,从而对网络进行修改评价。

格式:
a=simff(p,wl,b1,fl,w2,b2,f2)
其中a表示训练好的BP网络的实际输出。

三、实验内容
建立一个只有一个隐层的BP网络,来逼近一个函数,其隐层的神经元个数为6.隐层和输出层的转移函数分别为双曲正切S函数和线性函数,训练函数为trainlm。

输入向量为P=一1:0.1:1.目标向量为t=。

由于本实例数据量少。

所以采用元素列表方式输入数据
BP网络的具体实现如下:
1.建立网络
Net=newff([一1 1],[6 1],{‘tansig’,’purelin’},’trainlm’);
2.初始化
采用默认的初始化参数对网络进行初始化,即
net= init(net)
3.网络的训练
训练函数的参数设置如下:
net.trainParam.show =10:
net.trainParam.epochs =100;
net.trainParam.goal=0.0001:
net.trainParam.1r=0.01:
网络的训练函数如下:
[net,tr]=train(net.P.t);
4.仿真
在这个网络的设计中.共用到了三次sim 函数.旨在对网络训练结果进行比较。

第一次是在对网络进行初始化之后,训练之前,用y=sim(net,p)来进行仿真;第二次是在网络训练之后.再次用该函数进行仿真。

四、实验报告
1.给出BP神经网络程序清单。

程序清单为:
1.建立网络
Net=newff([一1 1],[6 1],{‘tansig’,’purelin’},’trainlm’);
2.初始化
采用默认的初始化参数对网络进行初始化,即net= init(net)
3.网络的训练
训练函数的参数设置如下:net.trainParam.show =10:net.trainParam.epochs =100;net.trainParam.goal=0.0001:net.trainParam.1r=0.01:
网络的训练函数如下:
[net,tr]=train(net.P.t);
2.记录实验数据和曲线,并作出总结。

实验数据与曲线:
在此次实验中,因为第一次接触BP神经网络,在实验的初期,我对这个实验还是一头雾水,之后通过与同学的讨论,并且查阅相关书籍我渐渐开始明白了一些BP神经网络的一些基本原理,和实验方法,对实验内容有了更深刻的认识,此次试验我收获很多。

11。

相关主题