文档库 最新最全的文档下载
当前位置:文档库 › 基于simulink的模糊控制仿真

基于simulink的模糊控制仿真

基于simulink的模糊控制仿真
基于simulink的模糊控制仿真

已知系统的传递函数为:1/(10s+1)*e(-0.5s)。假设系统给定为阶跃值r=30,系统初始值r0=0.试分别设计

(1)常规的PID控制器;

(2)常规的模糊控制器;

(3)比较两种控制器的效果;

(4)当通过改变模糊控制器的比例因子时,系统响应有什么变化?

一.基于simulink的PID控制器的仿真及其调试:

调节后的Kp,Ki,Kd分别为:10 ,1,0.05。

示波器观察到的波形为:

二.基于simulink的模糊控制器的仿真及其调试:

(1)启动matlab后,在主窗口中键入fuzzy回车,屏幕上就会显现出如下图所示的“FIS Editor”界面,即模糊推理系统编辑器。

(2)双击输入量或输出量模框中的任何一个,都会弹出隶属函数编辑器,简称MF编辑器。

(3)在FIS Editor界面顺序单击菜单Editor—Rules出现模糊规则编辑器。

本次设计采用双输入(偏差E和偏差变化量EC)单输出(U)模糊控制器,E的论域是[-6,6],EC的论域是[-6,6],U的论域是[-6,6]。它们的状态分别是负大(NB)、负中(NM)、负小(NS)、零(ZO)、正小(PS)、正中(PM)、正大(PB)。语言值的隶属函数选择三角形的隶属度函数。推理规则选用Mamdani 控制规则。

该控制器的控制规则表如图所示:

Simulink仿真图如下:

在调试过程中发现加入积分调节器有助于消除静差,通过试凑法得出量化因子,比例因子以及积分常数。Ke,Kec,Ku,Ki分别是:

3 ,2.5 ,3.5 ,0.27

三.实验心得:

通过比较PID控制器和模糊控制器,我们可知两个系统观察到的波形并没有太大的区别。相对而言,对于给出精确数学模型的控制对象,PID控制器显得更具有优势,其一是操作简单,其二是调节三个参数可以达到满意的效果;对于给出给出精确数学模型的控制对象,模糊控制器并没有展现出太大的优势,其一是操作繁琐,其二是模糊控制器调节参数的难度并不亚于PID控制器。

在实验中增大模糊控制器的比例因子Ku会加快系统的响应速度,但Ku过大将会导致系统输出上升速率过快,从而使系统产生较大的超调量乃至发生振荡;Ku过小,系统输出上升速率变小,将导致系统稳态精度变差。

模糊控制系统及其MATLAB实现

1. 模糊控制的相关理论和概念 1.1 模糊控制的发展 模糊控制理论是在美国加州伯克利大学的L.A.Zadeh 教授于1965 年建立的模糊集合论的数学基础上发展起来的。之后的几年间Zadeh 又提出了模糊算法、模糊决策、模糊排序、语言变量和模糊IF-THEN 规则等理论,为模糊理论的发展奠定了基础。 1975年,Mamdani 和Assilian 创立了模糊控制器的基本框架,并用于控制蒸汽机。 1978年,Holmblad 和Ostergaard 为整个工业过程开发出了第一个模糊控制器——模糊水泥窑控制器。 20世纪80年代,模糊控制开始在工业中得到比较广泛的应用,日本仙台地铁模糊控制系统的成功应用引起了模糊领域的一场巨变。到20世纪90年代初,市场上已经出现了大量的模糊消费产品。 近30 年来, 因其不依赖于控制对象的数学模型、鲁棒性好、简单实用等优点, 模糊控制已广泛地应用到图像识别、语言处理、自动控制、故障诊断、信息检索、地震研究、环境预测、楼宇自动化等学科和领域, 并且渗透到社会科学和自然科学许多分支中去, 在理论和实际运用上都取得了引人注目的成果。 1.2模糊控制的一些相关概念 用隶属度法来定义论域U 中的集合A ,引入了集合A 的0-1隶属度函数,用()A x μ表示,它满足: 1 ()0A x μ?=?? x A x A ∈? 用0-1之间的数来表示x 属于集合A 的程度,集合A 等价与它的隶属度函数()A x μ 模糊系统是一种基于知识或基于规则的系统。它的核心就是由所谓的 IF-THEN 规则所组成的知识库。一个模糊的IF-THEN 规则就是一个用连续隶属度函数对所描述的某些句子所做的IF-THEN 形式的陈述。例如: 如果一辆汽车的速度快,则施加给油门的力较小。 这里的“快”和“较小”分别用隶属度函数加以描述。模糊系统就是通过组合IF-THEN 规则构成的。 构造一个模糊系统的出发点就是要得到一组来自于专家或基于该领域知识的模糊IF-THEN 规则,然后将这些规则组合到单一系统中。不同的模糊系统可采用不用的组合原则。 用隶属度函数表征一个模糊描述后,实质上就将模糊描述的模糊消除了。 模糊控制系统设计的关键在于模糊控制器的设计。模糊控制器的设计主要有三个部分: (1) 输入量的模糊化 所谓模糊化(Fuzzification) 就是先将某个输入测量量的测量值作标准化处理,把该输入测量量的变化范围映射到相应论域中,再将论域中的各输入数据以相应

实验一--模糊控制器的MATLAB仿真

实验一 模糊控制器的MATLAB 仿真 一、实验目的 本实验要求利用MATLAB/SIMULINK 与FUZZYTOOLBOX 对给定的二阶动态系统,确定模糊控制器的结构,输入和输出语言变量、语言值及隶属函数,模糊控制规则;比较其与常规控制器的控制效果;研究改变模糊控制器参数时,系统响应的变化情况;掌握用 MATLAB 实现模糊控制系统仿真的方法。 实验时数:3学时。 二、实验设备:计算机系统、Matlab 仿真软件 三、实验原理 模糊控制器它包含有模糊化接口、规则库、模糊推理、清晰化接口等部分,输人变量是过程实测变量与系统设定值之差值。输出变量是系统的实时控制修正变量。模糊控制的核心部分是包含语言规则的规则库和模糊推理。模糊推理就是一种模糊变换,它将输入变量模糊集变换为输出变量的模糊集,实现论域的转换。工程上为了便于微机实现,通常采用“或”运算处理这种较为简单的推理方法。Mamdani 推理方法是一种广泛采用的方法。它包含三个过程:隶属度聚集、规则激活和输出总合。模糊控制器的体系结构如图1所示。 图1 模糊控制器的体系结构 四、实验步骤 (1)对循环流化床锅炉床温,对象模型为 ()()1140130120 ++s s 采用simulink 图库,实现常规PID 和模糊自整定PID 。 (2)确定模糊语言变量及其论域:模糊自整定PID 为2输入3输出的模糊控制器。该模糊控制器是以|e|和|ec|为输入语言变量,Kp 、Ki 、Kd 为输出语言变量,其各语言变量的论域如下:

误差绝对值:e={0,3,6,10}; 误差变化率绝对值:ec={0,2,4,6}; 输出Kp:Up={0,0.5,1.0,1.5}; 输出Ki:Ui={0,0.002,0.004,0.006}; 输出Kd:Ud={0,3,6,9}。 (3)语言变量值域的选取:输入语言变量|e|和|ec|的值域取值“大”(B)、“中”(M)、“小”(s)和“零”(Z) 4种;输出语言变量Kp、Ki、Kd的值域取值为“很大”(VB)、“大”(B)、“中”(M)、“小”(s) 4种。 (4)规则的制定:根据PID参数整定原则及运行经验,可列出输出变量Kp、Ki、Kd 的控制规则表。 (5)推理方法的确定 隐含采用“mamdani”方法:max-min; 推理方法,即“min”方法; 去模糊方法:面积中心法; 选择隶属函数的形式:三角型。

简易模糊控制器设计及MATLAB仿真

简易模糊控制器的设计及仿真 摘要:模糊控制(Fuzzy Control )是以模糊集理论、模糊语言和模糊逻辑推理为基础的一种控制方法,它从行为上模仿人的模糊推理和决策过程。本文利用MATLAB/SIMULINK 与FUZZY TOOLBOX 对给定的二阶动态系统,确定模糊控制器的结构,输入和输出语言变量、语言值及隶属函数,模糊控制规则,比较其与常规控制器的控制效果,用MATLAB 实现模糊控制的仿真。 关键词:模糊控制 参数整定 MATLAB 仿真 二阶动态系统模型: ()()1140130120 ++s s 采用simulink 图库,实现常规PID 和模糊自整定PID 。 一.确定模糊控制器结构 模糊自整定PID 为2输入3输出的模糊控制器。在MATLAB 的命令窗口中键入fuzzy 即可打开FIS 编辑器,其界面如下图所示。此时编辑器里面还没有FIS 系统,其文件名为Untitled ,且被默认为Mandani 型系统。默认的有一个输入,一个输出,还有中间的规则处理器。在FIS 编辑器界面上需要做一下几步工作。 首先,模糊自整定PID 为2输入3输出的模糊控制器,因此需要增加一个输入两个输出,进行的操作为:选择Edit 菜单下的Add Variable/Input 菜单项。

如下图。 其次,给输入输出变量命名。单击各个输入和输出框,在Current Variable 选项区域的Name文本框中修改变量名。如下图 最后,保存系统。单击File菜单,选择Export下的To Disk项。这里将创建的系统命名为PID_auot.fi。 二.定义输入、输出模糊集及隶属函数

洗衣机模糊控制matlab仿真

洗衣机模糊控制仿真 1.模糊控制背景 美国教授查徳(L.A.Zandeh)在1965年首先提出模糊集合的概念,由此打开了模糊数学及其应用的大门。 1974年英国教授马丹尼(E.H.Mamdani)首先将模糊集合理论应用于加热器的控制,创造了模糊控制的基本框架。 1980年,Sugeno开创了日本的首次模糊应用——控制一家富士电子水净化厂。1983年他又开始研究模糊机器人。 随着模糊控制技术的不断发展,模糊控制逐渐被应用到日用家电产品的控制,例如电饭锅﹑照相机﹑吸尘器﹑洗衣机等。 2.仿真目的 本次仿真的主要目的是设计一个比较合理的洗衣机模糊控制器,它能够根据被洗涤衣物的污泥多少和油脂多少,综合得到洗涤时间,从而达到最佳的洗涤效果。 3.仿真方法 本次仿真借助matlab中集成的模糊控制工具箱,使用图形界面进行模糊控制器的设计。最后随意给定几组输入,得到输出并作出简单分析。4.模糊控制器的设计 4.1模糊控制器理论设计方法 ①选择合适的模糊控制器类型; ②确定输入输出变量的实际论域; ③确定e,e?,u ?的模糊集个数及各模糊集的隶属度函数; ④输出隶属度函数选为单点,可使解模糊简单; ⑤设计模糊控制规则集; ⑥选择模糊推理方法; ⑦解模糊方法。

4.2实际设计过程 ①模糊控制器类型:选用两输入单输出模糊控制器,控制器输入为衣物的污泥和油脂,输出为洗涤时间。 ②确定输入输出变量的实际论域:输入为Mud(污泥)和Grease (油脂),设置Range=[0 100](输入变化范围为[0,100]);输出为Time(洗涤时间),Range=[0 60](输出变化范围为[0,60])。 对应matlab 中模糊控制模块: ③确定模糊集个数及各模糊集的隶属度函数:将污泥分为3个模糊集:SD (污泥少)MD (污泥中)LD(污泥多);將油脂分为三个模糊集:NG (油脂少)MG (油脂中)LG (油脂多);将洗涤时间非为5个模糊集:VS (很短)S (短)M (中等)L (长)VL (很长)。 输入﹑输出隶属度函数都定为三角形隶属函数。结合④输出隶属度函数选为单点,可使解模糊简单;定义污泥隶属函数如下 50)50()(x x SD -=μ 0≤x ≤50 50 x 0≤x ≤50 =Mad μ =)(x MD μ 50 ) 100(x - 50<x ≤100 50)50()(-=x x LD μ 50<x ≤100 对应matlab 中隶属度函数仿真图如下:

模糊控制系统及其MATLAB实现

模糊控制系统及其MATLAB实现 1. 模糊控制的相关理论和概念 1.1 模糊控制的发展 模糊控制理论是在美国加州伯克利大学的L.A.Zadeh教授于1965 年建立的模 糊集合论的数学基础上发展起来的。之后的几年间Zadeh又提出了模糊算法、模糊 决策、模糊排序、语言变量和模糊IF-THEN规则等理论,为模糊理论的发展奠定了 基础。 1975年,Mamdani和Assilian创立了模糊控制器的基本框架,并用于控制蒸 汽机。 1978年,Holmblad和Ostergaard为整个工业过程开发出了第一个模糊控制器——模糊水泥窑控制器。 20世纪80年代,模糊控制开始在工业中得到比较广泛的应用,日本仙台地铁 模糊控制系统的成功应用引起了模糊领域的一场巨变。到20世纪90年代初,市场 上已经出现了大量的模糊消费产品。 近30 年来, 因其不依赖于控制对象的数学模型、鲁棒性好、简单实用等优点, 模糊控制已广泛地应用到图像识别、语言处理、自动控制、故障诊断、信息并且渗透到社会科学和检索、地震研究、环境预测、楼宇自动化等学科和领域, 自然科学许多分支中去, 在理论和实际运用上都取得了引人注目的成果。 1.2 模糊控制的一些相关概念 用隶属度法来定义论域U中的集合A,引入了集合A的0-1隶属度函数, 用,()x表示,它满足: A xA,1, ,x(),,AxA,0,

用0-1之间的数来表示x属于集合A的程度,集合A等价与它的隶属度函 数,()x A 模糊系统是一种基于知识或基于规则的系统。它的核心就是由所谓的IF-THEN 规则所组成的知识库。一个模糊的IF-THEN规则就是一个用连续隶属度函数对所描述的某些句子所做的IF-THEN形式的陈述。例如: 如果一辆汽车的速度快,则施加给油门的力较小。 这里的“快”和“较小”分别用隶属度函数加以描述。模糊系统就是通过组合IF-THEN规则构成的。 构造一个模糊系统的出发点就是要得到一组来自于专家或基于该领域知识的模糊IF-THEN规则,然后将这些规则组合到单一系统中。不同的模糊系统可采用不用的组合原则。 用隶属度函数表征一个模糊描述后,实质上就将模糊描述的模糊消除了。 模糊控制系统设计的关键在于模糊控制器的设计。模糊控制器的设计主要有三个部分: (1) 输入量的模糊化 所谓模糊化(Fuzzification) 就是先将某个输入测量量的测量值作标准化处理,把该输入测量量的变化范围映射到相应论域中,再将论域中的各输入数据以相应的模糊语言值的形式表示,并构成模糊集合。这样就把输入的测量量转换为用 隶属度函数表示的某一模糊语言变量。 (2) 模糊逻辑推理 根据事先已定制好的一组模糊条件语句构成模糊规则库,运用模糊数学理论对 模糊控制规则进行推理计算,从而根据模糊控制规则对输入的一系列条件进行综合评估,以得到一个定性的用语言表示的量,即模糊输出量。完成这部分功能的过程就是模糊逻辑推理过程。

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

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=.倒立摆的数学模型为:

模糊控制器的MATLAB仿真

实验一模糊控制器的MATLAB仿真 一、实验目的 本实验要求利用MATLAB/SIMULINK与FUZZYTOOLBOX对给定的二阶动态系统,确定模糊控制器的结构,输入和输出语言变量、语言值及隶属函数,模糊控制规则;比较其与常规控制器的控制效果;研究改变模糊控制器参数时,系统响应的变化情况;掌握用 MATLAB 实现模糊控制系统仿真的方法。 二、实验原理 模糊控制器它包含有模糊化接口、知识库(规则库、数据库)、模糊推理机、解模糊接口等部分。输人变量e(t)是过程实测变量y(t)与系统设定值s(t)之差值。输出变量y(t)是系统的实时控制修正变量。模糊控制的核心部分是包含语言规则的规则库和模糊推理机。而模糊推理就是一种模糊变换,它将输入变量模糊集变换为输出变量的模糊集,实现论域的转换。工程上为了便于微机实现,通常采用“或”运算处理这种较为简单的推理方法。Mamdani推理方法是一种广泛采用的方法。它包含三个过程:隶属度聚集、规则激活和输出总合。模糊控制器的组成框图如图2.1所示。 图2.1 模糊控制器的组成框图 三、模糊推理系统的建立 一个模糊推理系统的建立分为三个步骤:首先,对测量数据进行模糊化;其次,建立规则控制表;最后,输出信息的模糊判决,即对模糊量进行反模糊化,得到精确输出量。 模糊推理系统的建立,往往是设计一个模糊控制系统的基础。建立一个模糊推理系统有两类方法:一种是利用GUI建立模糊推理系统;另一种是利用MATLAB命令建立。下面根据实验内容,利用GUI建立模糊推理系统。 例:对循环流化床锅炉床温,对象模型为

()()1140130120 ++s s 采用simulink 图库,实现常规PID 和模糊自整定PID 。模糊自整定PID 为2输入3输出的模糊控制器。 1、 进入FIS 编辑器 在MATLAB 的命令窗口中键入fuzzy 即可打开FIS 编辑器,其界面如下图所示。此时编辑器里面还没有FIS 系统,其文件名为Untitled ,且被默认为Mandani 型系统。默认的有一个输入,一个输出,还有中间的规则处理器。在FIS 编辑器界面上需要做一下几步工作。 首先,模糊自整定PID 为2输入3输出的模糊控制器,因此需要增加一个输入两个输出,进行的操作为:选择Edit 菜单下的Add Variable/Input 菜单项。如下图。

模糊温度控制器的设计与Matlab仿真(DOC)

模糊温度控制器的设计与Matlab仿真 徐鹏 201403026 摘要:针对温度控制系统的时变、滞后等非线性特性及控制比较复杂的问题,提出了一种模糊控制方案以改善系统的控制性能.该方案采用mamdani推理型模糊控制器代替传统的PID控制器,依据模糊控制规则由SCR移相调控晶闸管控制电阻炉电热功率,实现对温度的控制. Matlab仿真结果表明,模糊控制的引入有效地克服了系统的扰动,改善了控制性能,提高了控制质量. 关键词:温度控制器;模糊控制;仿真分析 中图分类号: TP272 文献标志码:A Abstract:For the temperature controlsystem with the nonlinear characters of time-varying and lag and the comp lexity in control,a fuzzy control algorithm is p resented. Thealgorithm adop tsmamdani reasoning fuzzyPID controller to rep lace the traditional PID controller and use the SCR phase-shift thyristor to control the e-lectric resistance furnace power based on the fuzzy control rules to imp lement the temperature control. Matlabsimulation results show that the fuzzy control can effectively overcome the disturbance and imp rove the con-trol performance. Key words: temperature controller; fuzzy control; simulation analysis 0 引言 在工业生产过程中,温度控制是重要环节,控制精度直接影响系统的运行和产品质量. 在传统的温度控制方法中,一般采取双向可控硅装置,并结合简单控制算法(如PID算法) ,使温度控制实现自动调节. 但由于温度控制具有升温单向性、大惯性、大滞后等特点,很难用数学方法建立精确的模型,因此用传统的控制理论和方法很难达到好的控制效果. 鉴于此,本文拟以模糊控制为基础的温度智能控制系统,采用人工智能中的模糊控制技术,用模糊控制器代替传统的PID 控制器,以闭环控制方式实现对温度的自动控制. 1温度控制系统的硬件组成 在该温度控制装置中,由SCR移相调控晶闸管控制电阻炉来实现对温度的控制. 在温控系统中,通过CAN总线将控制站、操作站和通信处理单元连为一体. 温度控制系统的结构简图如图1所示.

单级倒立摆的模糊控制以及在MATLAB中的仿真

单级倒立摆的模糊控制以及在MATLAB中的仿真 摘要 倒立摆系统是一个典型的多变量、非线性、强藕合和快速运动的自然不稳定系统。因此倒立摆在研究双足机器人直立行走、火箭发射过程的姿态调整和直升机飞行控制领域中有重要的现实意义,相关的科研成果己经应用到航天科技和机器人学等诸多领域。 本文围绕一级倒立摆系统,采用模糊控制理论研究倒立摆的控制系统仿真问题。仿真的成功证明了本文设计的模糊控制器有很好的稳定性。主要研究工作如下: (1)使用了牛顿力学和Lagrange方程对倒立摆进行数学建模,推导出倒立摆系统传递函数和状态空间方程。 (2)分析了模糊控制理论的数学基础,对模糊控制的方法进行了研究:介绍了模糊子集、模糊关系和模糊推理等相关知识。 (3)介绍了如何利用Simulink建立倒立摆系统模型,特别是利用Mask封装功能,使模型更具灵活性,给仿真带来很大方便。 (4)进行一级倒立摆系统的控制器设计与仿真。通过matlab的Simulink实现倒立摆模糊控制系统的仿真。说明仿真结果的趋向。 关键词:倒立摆模糊控制仿真MATLAB 第一章绪论 1.1 倒立摆系统的重要意义 倒立摆系统是研究控制理论的一种典型实验装置,具有成本低廉,结构简单,物理参数和结构易于调整的优点,是一个具有高阶次、不稳定、多变量、非线性和强藕合特性的不

稳定系统。在控制过程中,它能有效地反映诸如可镇定性、鲁棒性、随动性以及跟踪等许多控制中的关键问题,是检验各种控制理论的理想模型。迄今人们已经利用经典控制理论、现代控制理论以及各种智能控制理论实现了多种倒立摆系统的控制稳定。倒立摆主要有:有悬挂式倒立摆、平行倒立摆、环形倒立摆、平面倒立摆;倒立摆的级数有一级、二级、三级、四级乃至多级;倒立摆的运动轨道可以是水平的,也可以是倾斜的:倒立摆系统己成为控制领域中不可或缺的研究设备和验证各种控制策略有效性的实验平台。同时倒立摆研究也具有重要的工程背景:如机器人的站立与行走类似双倒立摆系统;火箭等飞行器的飞行过程中,其姿态的调整类似于倒立摆的平衡等等。因此对倒立摆控制机理的研究具有重要的理论和实践意义。 1.2 倒立摆系统的控制方法 自从倒立摆产生以后,国内外的专家学者就不断对它进行研究,其研究主要集中在下面两个方面: (1)倒立摆系统的稳定控制的研究 (2)倒立摆系统的自起摆控制研究 而就这两方面而言,从目前的研究情况来看,大部分研究成果又都集中在第一方面即倒 立摆系统的稳定控制的研究。目前,倒立摆的控制方法可分如下几类: (1)线性理论控制方法 将倒立摆系统的非线性模型进行近似线性化处理获得系统在平衡点附近的线性化模型,然后再利用各种线性系统控制器设计方法得到期望的控制器。如1976年Mori etc的把倒立摆系统在平衡点附近线性化利用状念空间的方法设计比例微分控制器。1980年,Furuta etc基于线性化方法,实现了二级倒立摆的控制。1984年,Furuta首次实现双电机三级倒立摆实物控制。1984年,wattes研究了LQR(Linear Quadratic Regulator)方法控制倒立摆。这类方

MATLAB模糊控制仿真程序

clear all; close all; ts=20; sys1=tf([1],[60,1],'inputdelay',80); %生成或转换传递函数模型 dsys1=c2d(sys1,ts,'zoh'); %将连续系统离散化 [num1,den1]=tfdata(dsys1,'v'); %传统PID算法 u_1=0;u_2=0;u_3=0;u_4=0;u_5=0; y_1=0;y_2=0;y_3=0; error_1=0;ei=0; for k=1:1:300 time(k)=k*ts; rin(k)=40; yout(k)=-den1(2)*y_1+num1(2)*u_5; error(k)=rin(k)-yout(k); ei=ei+error(k)*ts; kp=0.8;ki=0.005;kd=3.0; u(k)=kp*error(k)+kd*(error(k)-error_1)/ts+ki*ei; if u(k)>=110 u(k)=110; end if u(k)<=-110 u(k)=-110; end %返回PID参数 u_5=u_4;u_4=u_3;u_3=u_2;u_2=u_1;u_1=u(k); y_3=y_2;y_2=y_1;y_1=yout(k); error_1=error(k); end %获得传递函数模型数据

%模糊PID控制系统 a=newfis('fuzzf'); %创建新的模糊推理系统 f1=1; a=addvar(a,'input','e',[-5*f1,5*f1]); %添加e 的模糊语言变量 a=addmf(a,'input',1,'NB','trimf',[ -7.5 -5 -2.5]); %添加e 的模糊语言变量的隶属度函数(z型) a=addmf(a,'input',1,'NS','trimf', [-5 -2.5 0]); a=addmf(a,'input',1,'ZE','trimf',[-2.5 0 2.5]); a=addmf(a,'input',1,'PS','trimf',[0 2.5 5]); a=addmf(a,'input',1,'PB','smf',[2.5 5 7.5]); f2=1; a=addvar(a,'input','ec',[-10*f2,10*f2]); %添加ec 的模糊语言变量 a=addmf(a,'input',2,'NB','trimf',[-15 -10 -5]); a=addmf(a,'input',2,'NS','trimf',[-10 -5 0]); a=addmf(a,'input',2,'Z','trimf', [-5 -5.551e-017 5]); a=addmf(a,'input',2,'PS','trimf', [0 5 10]); a=addmf(a,'input',2,'PB','smf', [5 10 15]); f3=1.5; a=addvar(a,'output','u',[0*f3,220*f3]); %添加u 的模糊语言变量 a=addmf(a,'output',1,'NB','trimf', [-55 -4.441e-016 55]); a=addmf(a,'output',1,'NS','trimf', [0 55 110]); a=addmf(a,'output',1,'Z','trimf', [55 110 165]); a=addmf(a,'output',1,'PS','trimf', [110 165 220]); a=addmf(a,'output',1,'PB','smf',[165 220 275]); rulelist=[1 1 5 1 1; %编辑模糊规则 1 2 5 1 1; 1 3 5 1 1; 1 4 5 1 1; 1 5 5 1 1; 2 1 5 1 1; 2 2 4 1 1; 2 3 4 1 1; 2 4 3 1 1; 2 5 2 1 1; 3 1 5 1 1; 3 2 4 1 1;

相关文档
相关文档 最新文档