- 1、本文档共28页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
智能控制-123级倒立摆-模糊控制神经网络控制要素
目录
1. 研究内容 3
2. 一级倒立摆控制 3
2.1 一级神经网络控制 3
2.2 一级模糊控制 8
3. 二级倒立摆控制 10
3.1 二级倒立摆神经网络控制 10
3.2 二级倒立摆模糊控制 17
4. 三级倒立摆控制 19
4.1三级倒立摆神经网络控制 19
4.2三级倒立摆模糊控制 26
研究内容
倒立摆是一个典型的快速、多变量、非线性、不稳定系统。在实际工程中,许多控制系统都具有与倒立摆系统类似的特点。因此,倒立摆系统的研究在理论上和工程应用中都具有重要的意义。
本次大作业的主要内容是在给出的倒立摆一、二、三级非线性数学模型的基础上,进行神经网络控制和模糊控制。其中神经网络的采样是基于线性二次型最优控制,模糊控制利用信息融合得到误差与误差导数。下面将进行详细介绍。
一级倒立摆控制
2.1 一级神经网络控制
一级倒立摆数学模型的状态变量为小车的位移量,位移量的导数,杆偏离垂直位置的角度以及角度的导数,对一级倒立摆进行线性化,得到状态方程如下:
然后对其进行二次型最优控制,采用输出反馈形式为:
现欲寻找最优控制,使下面性能指标达到最小,即
得到合理的Q,R后代入黎卡提矩阵微分方程:
由于上式是非线性方程,很难得到解析解,通常将其写成差分方程形式,通过计算机程序迭代求出,最后代入:
得到最优反馈控制。其二次型最优控制simulink仿真图如下:
图1 一级倒立摆LQR控制simulink仿真图
得到仿真结果如下:
图2 一级倒立摆LQR控制仿真结果图
接下来对LQR控制的4个输出状态量和1个输入进行采样,再建立神经网络进行学习训练,建立神经网络的程序如下:
p=[x1_1;x1_2;x1_3;x1_4];
t=y;
net=newff([-1 1;-1 1;-1 1;-1 1],[1 16 4 1],{tansig,tansig,logsig,purelin});
net.trainparam.epochs=2000;
net.trainparam.goal=0.0000001;
net=train(net,p,t);
gensim(net,-1)
训练图如下:
图3 一级倒立摆神经网络控制训练图
得到误差小于0.0000001的神经网络后加入一级倒立摆得到神经网络控制simulink仿真图如下:
图4 一级倒立摆神经网络simulink仿真图
运行得到神经网络控制效果如下图:
图5 一级倒立摆神经网络控制仿真结果
由上面仿真图可以看出,位移、位移变化率、角度和角度变化量均在短时间内稳定,通过动画验证,该神经网络能有效的控制一级倒立摆达到稳定状态。
2.2 一级模糊控制
模糊控制利用信息融合技术,通过LQR得到矩阵,建立权系数,得到误差与误差导数,simulink仿真图如下:
图6 一级倒立摆模糊控制simulink仿真图
其中模糊论域:E,EC为[-10,10],U为[-1,1]。E,EC,U的语言词集都为7个:NB,NM,NS,ZO,PS,PM,PB。模糊规则如下图所示:
图7 一级倒立摆模糊规则
得到仿真结果如下:
图8 一级倒立摆模糊控制仿真结果
由上面仿真图可以看出,位移、位移变化率、角度和角度变化量均在短时间内稳定,通过动画验证,该模糊控制能有效的控制一级倒立摆达到稳定状态。
二级倒立摆控制
3.1 二级倒立摆神经网络控制
二级倒立摆数学模型的状态变量为小车的位移量,位移量的导数,一级杆偏离垂直位置的角度以及角度的导数,二级杆偏离垂直位置的角度以及角度的导数。
二级倒立摆神经网络控制步骤同一级,首先对其线性化进行LQR控制。下图为LQR控制的simulink仿真图。
图9 二级倒立摆LQRsimulink仿真图
仿真结果如下:
图10 二级倒立摆LQR控制仿真结果图
对LQR的6个输出,1个输入进行采样,再建立神经网络进行学习训练,建立神经网络的程序如下:
p=[x2_1;x2_2;x2_3;x2_4;x2_5;x2_6];
t=y;
net=newff([-1 1;-1 1;-1 1;-1 1;-1 1;-1 1],[1 16 16 4 1],{tansig,tansig,tansig,logsig,purelin});
net.trainparam.epochs=2000;
net.trainparam.goal=0.0000001;
net=train(net,p,t);
gensim(net,-1)
训练图如下:
图11 二级倒立摆神经网络训练图
得到误差小于0.0000001的神经网络后加入二级倒立摆得到神经网络控制simulink仿真图如下:
图12 二级倒立摆神经
文档评论(0)