模糊控制在倒立摆中的MATLAB仿真应用

合集下载

倒立摆PID调节模糊控制

倒立摆PID调节模糊控制

倒立摆系统的简介倒立摆系统发展倒立摆系统的研究意义倒立摆系统的简介倒立摆系统是日常生活中所见到的任何重心在上,支点在下的控制问题的抽象。

例如杂技顶杆表演,人们常为演员的精湛技艺叹服,然而其机理更引发了人们的深思。

它深刻的揭示了自然界的一种基本规律.即一个自然不稳定的被控对象,通过控制手段可使之具有良好的稳定性。

不难看出杂技演员顶杆的物理机制可简化为一个倒置的倒立摆,也就是人们常称之为倒立摆或一级倒立摆系统。

一级倒立摆系统是一个复杂的非线性系统,小车可以自由地在限定的轨道上左右移动,小车上的倒立摆一端被铰链链接在小车顶部,另一端可以在小车轨道所在的垂直平面上自由转动。

系统的控制目的是通过电机带动小车运动,使倒立摆平衡并保持小车不与轨道两端相撞。

倒立摆已经由原来的直线倒立摆扩大很多种类,典型的有直线倒立摆,环形倒立摆,平面倒立摆等,倒立摆系统是运动模块上装有倒立摆装置,由于在相同的运动模块上可以装载不同的倒立摆装置,倒立摆的种类由此而丰富很多倒立摆的控制方法倒立摆作为一个典型的被控对象,适合用多种理论和方法进行控制。

当前,倒立摆的控制规律有: (1)PID 控制,通过对倒立摆物理模型的分析,建立倒立摆的动力学模型,然后使用状态空间理论推导出其非线性模型,再在平衡点处进行线性化得到倒立摆系统的状态方程和输出方程,于是就可设计出PID 控制器实现其控制;(2) 状态反馈H ∞控制,通过对倒立摆物理模型的分析,建立倒立摆的动力学模型,然后使用状态空间理论推导出状态方程和输出方程,于是就可应用H ∞状态反馈和Kalman 滤波相结合的方法,实现对倒立摆的控制; (3) 利用云模型实现对倒立摆的控制,用云模型构成语言值,用语言值构成规则,形成一种定性的推理机制。

这种拟人控制不要求给出被控对象精确的数学模型,仅仅依据人的经验、感受和逻辑判断,将人用自然语言表达的控制经验,通过语言原子和云模型转换到语言控制规则器中,就能解决非线性问题和不确定性问题; (4) 神经网络控制,业已证明,神经网络(Neural Network ,NN) 能够任意充分地逼近复杂的非线性关系,NN 能够学习与适应严重不确定性系统的动态特性,所有定量或定性的信息都等势分布贮存于网络内的各种神经元,故有很强的鲁棒性和容错性;也可将Q 学习算法和BP 神经网络有效结合,实现状态未离散化的倒立摆的无模型学习控制; (5) 遗传算法( Genetic Algorithms , GA) ,高晓智在Michine 的倒立摆控制Boxes 方案的基础上,利用GA 对每个BOX 中的控制作用进行了寻优,结果表明GA 可以有效地解决倒立摆的平衡问题; (6) 自适应控制,主要是为倒立摆设计出自适应控制器; (7) 模糊控制,主要是确定模糊规则,设计出模糊控制器实现对倒立摆的控制; (8) 使用几种智能控制算法相结合实现倒立摆的控制,比如模糊自适应控制,分散鲁棒自适应控制等等; (9) 采用GA 与NN 相结合的算法,这也是我们采用的方法,首先建立倒立摆系统的数学模型,然后为其设计出神经网络控制器,再利用改进的贵传算法训练神经网络的权值,从而实现对倒立摆的控制,采用GA 学习的NN 控制器兼有NN 的广泛映射能力和GA 快速收敛以及增强式学习等性能。

一阶倒立摆与模糊控制

一阶倒立摆与模糊控制

一阶倒立摆与模糊控制作者:朱玖斌来源:《数字化用户》2013年第23期【摘要】倒立摆系统是一个复杂的、不稳定的非线性系统,为了使其具有更好的适应性和稳定性,我们采用模糊控制器方法来对其进行控制。

通过MATLAB环境下的仿真并对仿真结果进行分析,验证了此方法按照预定的要求精确、稳定、快速地控制倒立摆系统,实现既定目标的性能。

【关键词】单级倒立摆模糊控制 MATLAB仿真一、引言倒立摆控制系统是进行控制理论研究的理想实验平台,在工业复杂对象的控制有着不可估量的工程应用价值,对倒立摆的研究在双足机器人行走、火箭发射过程的姿态调整和直升机飞行控制等领域中有着广阔的应用空间。

而倒立摆的控制方法同样广阔,典型的有线性PID控制、常规PID控制、LQR 控制、智能控制等。

这里我们要研究的是智能控制中的一种—模糊控制。

二、建立倒立摆模型M :小车质量 m:摆杆质量 b:小车摩擦系数 l:摆杆转动轴心到杆质心的长度 I:摆杆惯量 F:加在小车上的力 x:小车位置图1-1 一级直线倒立摆模φ摆杆与垂直向上方向的夹角θ摆杆与垂直向下方向的夹角(考虑到摆杆初始位置为竖直向下)通过牛顿力学方法分析,拉普拉斯变换,我们可以得出以下方程:由于输出为角度,求解(1-1),可以得出新方程:整理后,得出有式子(1-3)可以得出式子(1-2)式子代入式子(1-1),得出整理后得出传递函数:其中由于篇幅有限,这不介绍手算系统状态空间方程求解方法,而利用MATLAB中tf2ss命令对(1-4)式进行转化来得到状态方程,如下:系统物理参数把上述参数代入,可以得到系统的实际模型。

摆杆角度和小车位移的传递:(1-7)摆杆角度和小车加速度之间的传递函数为:(1-8)摆杆角度和小车所受外界作用力的传递函数:(1-9)以小车加速度作为输入的系统状态方程:三、模糊控制系统与一阶倒立摆的建立(一)模糊控制系统的组成(见图A)(二)Matlab搭建模糊控制器(见图B)(三)Matlab搭建程序框图(见图C)把模糊控制器导入到程序框图中Fuzzy Logic Controller观察仿真运行结果四、结论从仿真图中看出,一级倒立摆与模糊控制能够很好的结合,且没有超调现象,能够稳定控制。

倒立摆模糊控制MATLAB

倒立摆模糊控制MATLAB

模糊控制课程设计报‎告题目:基于mat‎lab的倒‎立摆模糊控‎制专业、班级:09级电气‎四班学生姓名:学号:指导教师:分数:2012年‎ 6 月15 日绪论倒立摆控制‎系统是一个‎复杂的、不稳定的、非线性系统‎,是进行控制‎理论设计及‎测试的理想‎实验平台。

倒立摆系统‎控制涉及到‎机器人技术‎、控制理论、计算机控制‎等多个领域‎。

其被控系统‎本身是一个‎绝对不稳定‎、高阶次、多变量、强耦合的非‎线性系统,可以作为一‎个典型的控‎制对象对其‎进行研究[1]。

同时,由于实际机‎械系统中存‎在的各种摩‎擦力,实际倒立摆‎系统亦具有‎一定的不确‎定性。

倒立摆系统‎的控制涉及‎到许多典型‎的控制问题‎:非线性问题‎、随动及跟踪‎问题、鲁棒性问题‎、非最小相位‎系统的镇定‎问题等等。

正是由于倒‎立摆系统的‎特殊性,许多不同领‎域的专家学‎者在检验新‎提出理论的‎正确性和实‎际可行性时‎,都将倒立摆‎系统作为实‎验测试平台‎。

再将经过测‎试后的控制‎理论和控制‎方法应用到‎更为广泛的‎领域中去[1]。

如:把一级倒立‎摆的研究成‎果应用到对‎航空航天领‎域中的火箭‎发射推进器‎和卫星飞行‎状态控制的‎研究;把二级倒立‎摆的研究成‎果应道到双‎足机器人行‎走控制中[2]。

所以说,对倒立摆系‎统控制理论‎的研究不仅‎具有理论研‎究价值,也具有相当‎的实际工程‎应用价值。

倒立摆系统‎的传统控制‎方法主要是‎使用经典控‎制理论和现‎代控制理论‎。

它们都以精‎确的系统数‎学模型为控‎制对象。

经典控制理‎论在线性定‎常、输入输出量‎较少的系统‎中能很好的‎完成控制设‎计指标,经典控制理‎论的数学基‎础是拉普拉‎斯变换,占主导地位‎的分析和综‎合方法是频‎率域方法。

而现代控制‎理论是建立‎在状态空间‎分析法上的‎,基本分析方‎法是时域分‎析法。

这种方法能‎够克服经典‎控制理论的‎缺陷:能够解决系‎统的输入输‎出变量过多‎、系统的非线‎性等问题。

模糊控制的Matlab仿真实例

模糊控制的Matlab仿真实例

其他例子
模型Shower.mdl―淋浴温度调节模糊控制系统仿真; 模型slcp.mdl―单级小车倒摆模糊控制系统仿真; 模型 slcp1.mdl―变长度倒摆小车模糊控制系统仿
真; 模型 slcpp1.mdl—定长、变长二倒摆模糊控制系
统仿真; 模型slbb.mdl―球棒模糊控制系统仿真; 模型sltbu.mdl―卡车智能模糊控制倒车系统仿真; 模型sltank2.mdl ― 用子系统封装的水箱控制仿
为简单起见,我们直接利用系统里已经编辑好的 模糊推理系统,在它的基础上进行修改。这里我 们采用与tank . fis中输入输出变量模糊集合完 全相同的集合隶属度函数定义,只是对模糊规则 进行一些改动,来学习模糊工具箱与仿真工具的 结合运用。对于这个问题,根据经验和直觉很显 然可以得到如下的模糊度示 波器
冷水阀子系统
这个仿真模型的输出是用示波器来表示的,如 图所示。通过示波器上的图形我们可以清楚地 看到温度和水流量跟踪目标要求的性能。
水温示波器
水流示波器
水温偏差区间模糊划分及隶属度函数
水流量偏差区间模糊划分及隶属度函数
输出对冷水阀控制策略的模糊化分及隶属度函数
选Edit菜单,选择Rules, 弹出一新界面Rule Editor. 在底部的选择框内,选择相应的 IF…AND…THEN 规则,点击Add rule 键,上部 框内将显示相应的规则。本例中用9条左右的规 则,依次加入。如下图所示:
模糊逻辑工具箱仿真结果
模糊规则浏览器用于显示各条模糊控制规则对 应的输入量和输出量的隶属度函数。通过指定 输入量,可以直接的显示所采用的控制规则, 以及通过模糊推理得到相应输出量的全过程, 以便对模糊规则进行修改和优化。
这样的结果与实际情况还是有些不符。通常顾客都是给15%的 小费,只有服务特别好或特别不好的时候才有改变,也就是说, 希望在图形中间部分的响应平坦些,而在两端(服务好或坏) 有凸起或凹陷。这时服务与小费是分段线性的关系。例如,用 下面 MATLAB 语句绘出的下图的情况。

一阶倒立摆模糊控制matlab仿真

一阶倒立摆模糊控制matlab仿真

一阶倒立摆模糊控制仿真实验分析报告%mainclearclose all%load table.matglobal Table;global RULE;global UCenter;global Width;global num;global RuleMatch; %前件匹配方式0 取小;1乘积global Defuzzy; %反模糊化方法0: COG ; 1:COA; 2:MAXglobal g0;global g1;global h;x=[0.4,0,0];RuleMatch = 1; %前件匹配方式0 取小;1乘积Defuzzy = 0;%反模糊化方法0: COG ; 1:COA; 2:MAXg0=1.5;g1=0.1;h=1;% u=0;% Table = u;% [m,n]=size(u);% num = (m-1)/2;%u=[];RULE =[2, 2, 2, 1, 0; ...2, 2, 1, 0,-1;...2, 1, 0,-1,-2;...1, 0,-1,-2,-2;...0,-1,-2,-2,-2];%% RULE =[2,2,1,1,0; ...% 2,1,1,0,-1;...% 1,1,0,-1,-1;...% 1,0,-1,-1,-2;...% 0,-1,-1,-2,-2];RULE=RULE + 3*ones(size(RULE));%原始的%UCenter=[-20,-10,0,10,20];%改进的%UCenter=[-25,-15,0,15,25];UCenter=[-20,-15,0,15,20];Width(1)=(UCenter(5)-UCenter(4))/2;Width(2)=(UCenter(5)-UCenter(3));Width(3)=(UCenter(4)-UCenter(3))*2;Width(4)=Width(2);Width(5)=Width(1);x=x';[t,y]= ode45('P_Pendulum',[0,5],x);% [t,y]= ode45('P_Pendulum_tab',[0,10],x);% y2=y.*y;% inty = intnum(t,y2)%% int_e2 = inty(1)+inty(2);% int_u2 = inty(3);%int_y2 = sum(y.^2);%int_e2 = int_y2(1)+int_y2(2);%int_u2 = int_y2(3);figuresubplot(2,1,1)plot(t,y(:,1 ),'r',t,y(:,2),'k')%xlabel('t(sec)')% str1 = sprintf('x(0)=[%2.2f,%2.2f]',x(1),x(2)); % Title(str1,'Interpreter','latex','fontsize',14)%% str1=sprintf('t(sec)---index:$\\int{e^{T}(t)e(t)dt}=$ %f', int_e2);%str1 = '$\int{e^2}dt$'% text(6,0,str1,'Interpreter','latex','fontsize',14)%% xlabel(str1,'Interpreter','latex','fontsize',14)legend('x1(rad)', 'x2(rad/s)')title('输出隶属函数中心值:[-20,-15,0,15,20]')subplot(2,1,2)plot(t,y(:,3),'r')xlabel('t(sec)')ylabel('u(N)')% str1=sprintf('t(sec)--index:$\\int{u^{2}(t)dt}$= %f', int_u2);% %H = Title(str1,'Interpreter','latex','fontsize',14)% xlabel(str1,'Interpreter','latex','fontsize',14)% inverted pendulum stabilized% program on 2006,10,26function xdot = P_Pendulum(t,x)global RULE;global UCenter;global step;global k;global Kc;global QQ;global Width;global RuleMatch; %前件匹配方式0 取小;1乘积global Defuzzy; %反模糊化方法0: COG ; 1:COA; 2:MAXglobal g0;global g1;global h;M = 1;m =0.5;g = 9.8;l = 0.5;a = 1/(m+M);%计算隶属度mu_e= emembershipdegree(-x(1)*g0);mu_de = demembershipdegree(-x(2)*g1);%pausemu_e_id = find(mu_e>0);mu_de_id = find(mu_de>0);eLen= length(mu_e_id);deLen = length(mu_de_id);mu_pre= zeros(1,4);fuzzy_out = zeros(1,4);weight = zeros(1,4);in =1;%规则匹配for (i=1:eLen)for(j=1:deLen)switch RuleMatchcase 0%前件采用取小推理mu_pre(in)= min(mu_e(mu_e_id(i)),mu_de(mu_de_id(j)));case 1%前件采用乘积推理mu_pre(in)= mu_e(mu_e_id(i))*mu_de(mu_de_id(j));end%计算规则匹配度fuzzy_out(in) = RULE(mu_e_id(i),mu_de_id(j));in=in+1;endendnRule = eLen *deLen;u = 0;summu =0;%反模糊化for(i=1:nRule)switch Defuzzycase 0%按照重心法计算(COG)weight(i)= Width(fuzzy_out(i))*(mu_pre(i)-mu_pre(i)*mu_pre(i)/2);case 1% 按照中心平均法weight(i)=mu_pre(i);case 2% 取大法(大中求中)[max_v,max_id] = max(mu_pre);weight(max_id)=1;endu = weight(i)*UCenter(fuzzy_out(i))+u;summu =summu + weight(i);end%u=0;u=h*u/summu;if (u>20)u=20;endif (u<-20)u=-20;endt% if(t>2.5 && t<2.6 )% u=u+20;% end% if (u>20)% u=20;% end%% if (u<-20)% u=-20;% end% xdot(1)=x(2);% xdot(2)=(g*sin(x(1))-a*m*l*x(2)*x(2)*sin(2*x(1))/2-a*cos(x(1))*x(3))/(4*l/3-a*m*l*cos(x(1))*cos(x(1))); % xdot(3)=-100*x(3)+100*u;% x(3) = u;xdot(1)=x(2);xdot(2)=(g*sin(x(1))-a*m*l*x(2)*x(2)*sin(2*x(1))/2-a*cos(x(1))*x(3))/(4*l/3-a*m*l*cos(x(1))*cos(x(1))); xdot(3)=-100*x(3)+100*u;xdot = xdot';y=zeros(1,5);if (x<= -pi/2)y(1) =1 ;elseif (x<=-pi/4)y(1) = abs(x+pi/4)/(pi/4);y(2) = 1-abs(x+pi/4)/(pi/4); elseif (x<= 0)y(2) = 1-abs(x+pi/4)/(pi/4);y(3) = 1- abs(x)/(pi/4);elseif (x<=pi/4)y(3) = 1- abs(x)/(pi/4);y(4) = 1-abs(x-pi/4)/(pi/4); elseif (x<=pi/2)y(4) = 1-abs(x-pi/4)/(pi/4);y(5) = abs(x-pi/4)/(pi/4);elseif (x>pi/2)y(5) =1;endfunction y = demembershipdegree(x) y=zeros(1,5);if (x<= -pi/4)y(1) =1 ;elseif (x<=-pi/8)y(1) = abs(x+pi/8)/(pi/8);y(2) = 1-abs(x+pi/8)/(pi/8); elseif (x<= 0)y(2) = 1-abs(x+pi/8)/(pi/8);y(3) = 1- abs(x)/(pi/8);elseif (x<=pi/8)y(3) = 1- abs(x)/(pi/8);y(4) = 1-abs(x-pi/8)/(pi/8); elseif (x<=pi/4)y(4) = 1-abs(x-pi/8)/(pi/8);y(5) = abs(x-pi/8)/(pi/8);elseif (x>pi/4)y(5) =1;endy=zeros(1,5); if (x<= -30) y(1) =0 ; elseif (x<=-20)y(1) = 1-abs(x+20)/(10); elseif (x<=-10)y(1) = 1-abs(x+20)/(10); y(2) = 1-abs(x+10)/(10); elseif (x<= 0)y(2) = 1-abs(x+10)/(10); y(3) = 1- abs(x)/(10); elseif (x<=10)y(3) = 1- abs(x)/(10); y(4) = 1-abs(x-10)/(10); elseif (x<=20)y(4) = 1-abs(x-10)/(10); y (5) = 1-abs(x-20)/(10); elseif (x>30) elseif (x<=30)y(5) = 1-abs(x-20)/(10); elseif (x>30) y(5) =0; end不同的推理方式,反模糊化方法初始值:x0=[0.1 0]’t(sec)u (N )t(sec)u (N )t(sec)u (N )t(sec)u (N )t(sec)u (N )t(sec)u (N )不同的初始条件前件隶属度函数计算方法:乘积模糊蕴含关系计算方法:取小 反模糊化方法:COGt(sec)u (N )t(sec)u (N )t(sec)u (N )t(sec)u (N )结论:当初始角达到一定程度时,控制力趋向饱和,系统不稳定。

dq075阶倒立摆系统的双闭环模糊控制与MATLAB仿真

dq075阶倒立摆系统的双闭环模糊控制与MATLAB仿真

第1章引言1.1 模糊控制理的发展历史、研究现状及展望1.1.1 模糊控制理论的发展历史模糊逻辑控制(Fuzzy Logic Control)简称模糊控制(Fuzzy Control),是以模糊集合论、模糊语言变量和模糊逻辑推理为基础的一种计算机数字控制技术。

在人类自然科学的发展历史上,人们总是以追求事物的精确性描述为目的来进行研究,并取得了大量的成果。

随着科学技术的进步,在社会生产和生活中存在的大量的不确定性开始引起人们的注意。

1965年,美国的L.A.Zadeh教授创立了模糊集合论;1973年他给出了模糊逻辑控制的定义和相关的定理。

1974年,英国的E.H.Mamdani首先用模糊控制语句组成模糊控制器,并把它应用于锅炉和蒸汽机的控制,在实验室获得成功。

这一开拓性的工作标志着模糊控制论的诞生。

模糊控制实质上是一种非线性控制,从属于智能控制的范畴。

模糊控制的一大特点是既具有系统化的理论,又有着大量实际应用背景。

模糊控制的发展最初在西方遇到了较大的阻力;然而在东方尤其是在日本,却得到了迅速而广泛的推广应用。

近20多年来,模糊控制不论从理论上还是技术上都有了长足的进步,成为自动控制领域中一个非常活跃而又硕果累累的分支。

其典型应用的例子涉及生产和生活的许多方面,例如在家用电器设备中有模糊洗衣机、空调、微波炉、吸尘器、照相机和摄录机等;在工业控制领域中有水净化处理、发酵过程、化学反应釜、水泥窑炉等的模糊控制;在专用系统和其它方面有地铁靠站停车、汽车驾驶、电梯、自动扶梯、蒸汽引擎以及机器人的模糊控制等。

目前,模糊控制技术日趋成熟和完善。

各种模糊产品充满了日本、西欧和美国市场,如模糊洗衣机、模糊吸尘器和模糊摄像机等等,模糊技术几乎变得无所不能,各国都争先开发模糊新技术和新产品。

多年来一直未解决的稳定性分析问题正在逐步解决。

模糊芯片也已研制成功且功能不断加强,成本不断下降。

直接采用模糊芯片开发产品己成为趋势。

基于matlab的倒立摆模糊控制

基于matlab的倒立摆模糊控制

智能控制理论及应用课程设计报告题目:基于matlab的倒立摆模糊控制院系:西北民族大学电气工程学院专业班级:10级自动化(3)班学生姓名:蔡余敏学号:P101813455指导教师:刁晨2013.10基于MATLAB的倒立摆模糊控制作者:蔡余敏指导老师:刁晨摘要:倒立摆的控制问题就是使摆杆尽快地达到一个平衡位置,并且使之没有大的振荡和过大的角度和速度。

当摆杆到达期望的位置后,系统能克服随机扰动而保持稳定的位置。

本文主要针对较为简单的单级倒立摆控制系统而进行的设计分析。

通过建立微分方程模型,求出相关参数,设计出对应的模糊控制器,并运用MATLAB软件进行系统模型的软件仿真,从而达到预定控制效果。

目前,一级倒立摆的研究成果应用于火箭发射推进器和控制卫星的飞行状态等航空航天领域。

关键词:单级倒立摆;微分方程;模糊控制;MATLAB仿真1背景分析倒立摆控制系统是一个复杂的、不稳定的、非线性系统,是进行控制理论教学及开展各种控制实验的理想实验平台。

对倒立摆系统的研究能有效的反映控制中的许多典型问题:如非线性问题、鲁棒性问题、镇定问题、随动问题以及跟踪问题等。

通过对倒立摆的控制,用来检验新的控制方法是否有较强的处理非线性和不稳定性问题的能力。

同时,其控制方法在军工、航天、机器人和一般工业过程领域中都有着广泛的用途,如机器人行走过程中的平衡控制、火箭发射中的垂直度控制和卫星飞行中的姿态控制等。

正是由于倒立摆系统的特殊性,许多不同领域的专家学者在检验新提出理论的正确性和实际可行性时,都将倒立摆系统作为实验测试平台。

再将经过测试后的控制理论和控制方法应用到更为广泛的领域中去。

现代控制理论已经在工业生产过程、军事科学、航空航天等许多方面都取得了成功的应用。

例如极小值原理可以用来解决某些最优控制问题;利用卡尔曼滤波器可以对具有有色噪声的系统进行状态估计;预测控制理论可以对大滞后过程进行有效的控制。

但是它们都有一个基本的要求:需要建立被控对象的精确数学模型。

第三章模糊控制模糊控制的MATLAB仿真优秀课件

第三章模糊控制模糊控制的MATLAB仿真优秀课件
>> r=2; % 键入半径
>> area=pi*r^2; % 计算面积
Hale Waihona Puke 三、变量和数值显示格式1、变量
(1)变量名称
MATLAB对使用变量名称的规定:
1. 变量名称的英文大小写是有区别的(apple, Apple, AppLe,三个变量不同)。
2. 变量的长度上限为 31 个字元。
3. 变量名的第一个字必须是一英文字,随后可 以掺杂英文字、数字或是底线。变量中不能 包含有标点符号。
>> r=2, area=pi*r^2
>> r=2; area=pi*r^2;
请注意上述二式的差异,前者有计算值显示, 而后者则无。
另外一个符号注解是由%起头,也就是说在%之后 的任何文字都被视为程式的注解。注解的功能是 简要的说明程式的内容。任何可能产生混淆的地 方都应该加注解,适量的注解可在以后想了解程 式时能节省一些不必要的时间。例如:
❖ format只是影响结果的显示,不影响其计算与存储; MATLAB总是以双字长浮点数(双精度)来执行所 有的运算。
MATLAB可以将计算结果以不同的精确度的数字格式显示,我们可 以直接在指令视窗键入以下的各个数字显示格式的指令,以π值 为例 :
>> pi ans = 3.1416 >> format long >> pi ans = 3.14159265358979 >> format short e >> pi ans = 3.1416e+000
如果结果为整数,则显示没有小数;如果结果不是整数, 则输出形式有:
四、简单的数学运算(例exp02_01.m)
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TAIYUAN UNIVERSITY OF SCIENCE & TECHNOLOGY题目:院(系):专业:学生姓名:学号:模糊控制在倒立摆中的仿真应用1、倒立摆系统简介倒立摆有许多类型,例如图1-1的a和b所示的分别是轮轨式一级倒立摆系统和二级倒立摆系统的模型。

倒立摆是一个典型的快速、多变量、非线性、本质不稳定系统,它对倒置系统的研究在理论上和方法论上具有深远的意义。

对倒立摆的研究可归结为对非线性多变量本质不稳定系统的研究,其控制方法和思路在处理一般工业过程中也有广泛的用途。

近些年来国内外不少专家学者对一级、二级、三级、甚至四级等倒立摆进行了大量的研究,人们试图寻找不同的控制方法实现对倒立摆的控制,以便检查或说明该方法的严重非线性和本质不稳定系统的控制能力。

2002年8月11日,我国的李洪兴教授在国际上首次成功实现了四级倒立摆实物控制,也标志着我国学者采用自己提出的控制理论完成的一项具有原创性的世界领先水平的重大科研成果。

图1-1 倒立摆模型(a)一级倒立摆模型(b)二级倒立摆模型倒立摆系统可以简单地描述为小车自由地在限定的轨道上左右移动。

小车上的倒立摆一端用铰链安装在小车顶部,另一端可以在小车轨道所在的垂直平面内自由转动,通过电机和皮带传动使小车运动,让倒立摆保持平衡并保持小车不和轨道两端相撞。

在此基础上在摆杆的另一端铰链其它摆杆,可以组成二级、三级倒立摆系统。

该系统是一个多用途的综合性试验装置,它和火箭的飞行及步行机器人的关节运动有许多相似之处,其原理可以用于控制火箭稳定发射、机器人控制等诸多领域。

倒立摆系统控制原理单级倒立摆系统的硬件包括下面几个部分:计算机、运动控制卡、伺服系统、倒立摆和测量元件,由它们组成的一个闭环系统,如图1-2所示,就是单级倒立摆系统的硬件结构图。

图1-2 单级倒立摆硬件结构图通过角度传感器可以测量摆杆的角度,通过位移传感器可以得到小车的位置,然后反馈给运动控制卡,运动控制卡与计算机双向通信。

计算机获得实时数据,确定控制策略,发送到运动控制卡,运动控制卡执行计算机确定的控制策略,产生相应的控制量,由伺服电机转动来带动小车在水平轨道往复的运动,使摆杆保持倒立。

倒立摆系统状态方程θf图1-3 单级倒立摆模型图θ为杆与垂线的夹角,f为作用力,杆的质量m=,杆和小车的总重量m=,半杆长l=,重力加速度g=s2,采样周期T=.倒立摆的数学模型为:πθθπθθθθ180cos )3/4(]sin )180/([cos sin 22⨯-+-=•≈l m ml l m f mg p p (式 我们可以实时量测角度θ,并计算出角速度,控制的任务是产生合适的作用力f ,以使倒立摆保持直立状态。

采用C-FC 的控制系统如图1-4图1-4 倒立摆模糊控制系统 2、 模糊控制 简介众所周知,人类的思维是极其粗略的,语言表达是模糊的,它的逻辑是定性的,因此“模糊概念”更适合于人们地观察、思维、理解与决策,这也更适合于客观现象和事物的模糊性(fuzzienss)。

于是由此便产生了模糊数学和模糊控制的概念。

模糊数学和模糊控制的概念由美国加利福尼亚大学著名教授查得在他的《Fuzzy Sets 》、《Fuzzy Algorithm))和《A Retionnale for Fuzzy Control 》心著名论著中首先提出。

1972年2月,日本以东京工业大学为中心,发起成立“模糊系统研究会”,1973年公开使用了“模糊工程”这一名词。

从那以后,模糊控制理论在全世界范围内迅速蔓延。

尽管模糊集理论的提出至今只有30年,但是其发展迅速。

历年来在模糊理论与算法、模糊推理、工业控制应用、模糊硬件与系统集成,以及稳定性理论研究等方面,发表了很多对模糊控制理论和模糊系统的研究和发展有重大促进意义的论文。

80年代以来,自动控制系统被控对象的复杂化,它不仅表现在控制系统具有多输入一多输出的强耦合性、参数时变性和严重的非线性特性,更突出的是从系统对象所能获得的知识信息量相对地减少,以及与此相反地对控制性能的要求却日益高度化。

然而“当一个系统复杂性增大时,人们能使它精确化地能力将降低,当达到一定的阐值时,复杂性和精确性将相互排斥”(即“不相容原理”)。

也就是说,在多变量、非线性、时变的大系统中,系统的复杂性与人类要求的精确性之间形成了尖锐矛盾。

因此,要想精确地描述复杂对象与系统的任何物理现象和运动状态,实际上己经是不可能的。

关键的是如何使准确和简明之间取得平衡,而使问题的描述具有实际意义。

这种描述的模糊性对问题的求解并非有害,却能高效率地对复杂事物作出正确无误的判断和处理。

因此模糊控制理论的研究和应用在现代控制领域中有着重要的地位和意义。

经典控制理论首先被使用线性小规模系统的自动化领域,然而随着计算机技术的发展,现代控制理论在大规模线性多变量系统也得到应用。

但是对于非线性复杂系统,这些控制策略却难以适用,它不仅算法极其复杂,而且无望获得满意的结果。

今年来,采用专家知识的人工智能和智能信息处理技术,虽然引起了人们的重视,但它不能作为模拟控制,且其知识库庞大,设计也十分困难。

模糊控制不仅适用于小规模线性单变量系统,而且逐渐向大规模、非线性复杂系统扩展,从己经实现的控制系统来看,它具有易于熟悉、输入量连续、可靠性高、能发挥熟练专家操作的良好自动化效果等优点。

至今,世界上研究“模糊”的学者己经越来越多,研究的范围从单纯的模糊数学到模糊理论应用、模糊系统及其硬件集成。

与知识工程和控制方面有关的研究有模糊建模理论、模糊序列、模糊识别、模糊知识库、模糊语言规则、模糊近似推理等。

近年来,已经将神经网络和模糊技术互相结合,取长补短,形成一种模糊神经网络技术,由此可以组成一种更接近人脑的智能信息处理系统其发展前景十分广阔。

我国模糊控制理论及其应用方面的研究工作是从1979年开始的,至今己有20多年的时间,大多数是在著名的高等院校和研究所中进行理论研究,如对模糊控制系统的结构、模糊推理算法、自学习或自组织模糊控制器,以及模糊控制稳定性等问题的研究,而其成果应用主要集中于工业炉窑方面,如退火炉、电弧冶炼炉、水泥窑以及造纸机的控制等。

模糊控制理论的基本概念模糊控制是基于模糊数学的理论知识,模仿人类大脑的思维方式,识别和判断模糊现象的。

通过模糊推理得到精确的控制量,实现对被控对象的控制。

关于模糊控制的基本概念:1) 论域论域是指所研究的事物的范围或全部的研究对象。

论域中的事物称为个体,具有某种特定属性的全部事物可以称为集合,一部分个体组成的集合称为子集。

2) 隶属函数由某种特定的属性形成的集合A,它的论域为U,在康托创立的经典集合理论中,把属于集合A的元素 u的特征函数值定义为1,把不属于集合A的元素u的特征函数值定义为0.3) 模糊推理模糊推理是以模糊逻辑为基础的,它是一种不确定性推理方法。

当推理判断具有模糊性时,称之为模糊推理。

在这个过程中,推理判断的依据称为模糊控制律。

假设集合A是论域U上的模糊子集,集合B和集合C是论域Y上的模糊子集,则模糊推理可以用下面的条件语句表示:If x = A Then y = B else y = c该条件语句可以表示为从论域U到论域Y的一个模糊关系R,可表示为:此时,隶属函数为:模糊控制原理如图2-1所示表示模糊控制的基本原理,模糊控制器是模糊控制的核心部分。

通过传感器采样,计算机可以获得被控量的精确值,然后把精确值与给定值作出比较,得到误差信号,误差信号通常可以作为模糊控制器的输入量。

首先把精确的误差信号值模糊化,得到误差信号的模糊子集,然后通过模糊控制规律进行模糊推理,得到一个模糊的控制量,接着把模糊的控制量进行解模糊处理,得到精确的数字控制量,经D/A 转换输入到执行机构,实现对被控对象的控制。

图2-1 模糊控制原理框图如图2-2所示是模糊控制器的组成部分,它包括输入量模糊化接口、知识库、模糊推理机和解模糊化接口四个部分图2-2模糊控制器结构图1) 模糊化接口系统的输入量通常是一个精确值,必须由模糊化接口处理之后,才能适用于模糊控制器的求解。

因此模糊化接口实际上是模糊控制器的输入接口,它的作用是把精确的输入量转化为一个模糊量。

对于模糊变量 e,通常可以将它的模糊子集划分为a) e={负,零,正}={N,Z,P}b) e={负大,负小,零,正小,正大}={NB,NS,Z,PS,PB}c) e={负大,负中,负小,零,正小,正中,正大}={NB,NM,NS,Z,PS,PM,PB}2) 知识库知识库是由数据库和规则库构成。

输入变量和输出变量的模糊子集的隶属度值都存放在数据库中;规则库用来存储所有的模糊控制规则,为模糊推理机推理时提供控制律。

,3) 模糊推理机模糊控制量是由模糊推理机得到的,它是根据输入模糊量,由模糊控制规则推理得到的。

目前模糊推理方法很多,常用的有 Mamdani 推理法、Larsen 推理法、Zadel推理法等4) 解模糊接口模糊推理得到的结果通常是一个模糊量,不能直接作为控制量作用到被控系统上。

因此,需要把它转换为一个可以被执行机构识别的精确值,该过程就叫做解模糊。

通常采用的解模糊方法也有很多种,例如重心法、最大隶属度法、加权平均法、中位数法等.3、倒立摆在仿真中的应用连续的模糊控制S函数function [sys,x0,str,ts] = whatisit(~,x,u,flag )switch flagcase 0[sys,x0,str,ts]=mdlInitializeSizes;case 1sys=mdlDerivatives(x,u);case 3sys=mdlOutputs(x);case {2,4,9}sys=[];otherwiseerror(['Unhandled flag=',num2str(flag)]);endfunction [sys,x0,str,ts]=mdlInitializeSizes()sizes=simsizes;=2;=0;=1;=1;=0;=1;sys=simsizes(sizes);x0=[10;10];str=[];ts=[0 0];function sys=mdlDerivatives(x,u)sys(1,1)=x(2);sys(2,1)=*sin((x(1)*pi)/180)-cos(x(1)*pi/180)*(u+*(x(2)*pi/180)^2*sin(x(1)*pi/180)))/((4/3)* sys=mdlOutputs(x)sys=x(1);simulink模块图图仿真模块图将设置好的模糊规则放进模块fuzzy logic controller,编写好的s函数放进模块s-function中。

相关文档
最新文档