选取一个模糊控制的实例讲解
- 格式:doc
- 大小:664.00 KB
- 文档页数:12
5.2.2 .6 模糊控制器设计实例1 、单输入模糊控制器的设计【例 5.12 】已知某汽温控制系统结构如图 5.10 所示,采用喷水减温进行控制。
设计单输入模糊控制器,观察定值扰动和内部扰动的控制效果。
图 5.10 单回路模糊控制系统按表 5-2 确定模糊变量 E 、 U 的隶属函数,按表 5-3 确定模糊控制规则,选择温度偏差 e 、控制量 u 的实际论域:,则可得到该系统的单输入模糊控制的仿真程序如 FC_SI_main.m 所示,仿真结果如图 5.11 所示。
设温度偏差 e 、控制量 u 的实际论域:,选择 e 、 u 的等级量论域为量化因子。
选择模糊词集为 { NB,NS,ZO,PS,PB } ,根据人的控制经验,确定等级量 E , U 的隶属函数曲线如图 5-8 所示。
根据隶属函数曲线可以得到模糊变量 E 、 U 的赋值表如表 5-3 所示。
图5-8 E ,U 的隶属函数曲线表 5-3 模糊变量 E 、 U 的赋值表( μ )-3 -2 -1 0 1 2 3 等级量μE 、 UPB 0 0 0 0 0 0.5 1 PS 0 0 0 0 1 0.5 0 ZO 0 0 0.5 1 0.5 0 0 NS 0 0.5 1 0 0 0 0 NB 1 0.5 0 0 0 0 0依据人手动控制的一般经验,可以总结出一些控制规则,例如:若误差 E 为 O ,说明温度接近希望值,喷水阀保持不动;若误差 E 为正,说明温度低于希望值,应该减少喷水;若误差 E 为负,说明温度高于希望值,应该增加喷水。
若采用数学符号描述,可总结如下模糊控制规则:若 E 负大,则 U 正大;若 E 负小,则 U 正小;若 E 为零,则 U 为零;若 E 正小,则 U 负小;若 E 正大,则 U 负大。
写成模糊推理句 :if E =NB then U =PBif E =NS then U =PSif E=ZO then U=ZOif E =PS then U =NSif E =PB then U =NB由上述的控制规则可得到模糊控制规则表,如表 5-4 所示。
模糊控制simulink实例一、模糊控制概述模糊控制是一种基于人工智能的控制方法,它模拟人类的思维方式进行控制决策。
模糊控制的核心思想是将模糊语言和模糊推理应用于控制系统中,通过建立模糊规则和模糊集合来实现对系统的控制。
模糊控制具有适应性强、处理非线性和复杂系统能力强等优点,在工业控制领域得到了广泛应用。
二、Simulink简介Simulink是MathWorks公司开发的一款基于MATLAB的通用仿真平台。
Simulink提供了一个直观的图形化界面,可以用于设计、模拟和实现各种系统模型。
Simulink 支持多领域的仿真,包括控制系统、信号处理、通信系统等,同时也提供了丰富的库函数和工具箱,方便用户进行系统建模与仿真。
三、模糊控制在Simulink中的应用模糊控制在Simulink中的应用可以通过Fuzzy Logic Toolbox来实现,该工具箱提供了一系列用于模糊控制设计和仿真的函数和模块。
下面介绍一个简单的模糊控制实例来说明模糊控制在Simulink中的应用。
3.1 系统建模首先,我们需要确定模糊控制系统的输入、输出和控制规则。
假设我们要设计一个小型的温度控制系统,系统的输入是环境温度(T),输出是加热器的电压(V)。
根据经验,我们可以定义几个模糊集合来描述温度和电压的状态,例如”冷”、“适中”和”热”。
然后,我们可以根据这些模糊集合定义一些模糊规则,例如”当温度冷时,增加电压”等。
3.2 模糊控制器设计在Simulink中,我们可以使用Fuzzy Logic Controller模块来设计模糊控制器。
该模块提供了一种快速且简单的方法来创建模糊控制器。
首先,我们需要定义输入和输出的模糊集合,以及模糊规则。
然后,我们可以将这些参数传递给Fuzzy Logic Controller模块,并设置输入输出的信号传递方式。
3.3 系统仿真在完成模糊控制器的设计后,我们可以进行系统的仿真。
在Simulink中,我们可以通过连接输入信号和模拟环境来模拟系统的行为。
选取一个模糊控制的实例讲解,有文章,有仿真,有详细的推导过程。
一.实验题目:基于模糊控制系统的单级倒立摆二.实验目的与要求:倒立摆是联结在小车上的杆,通过小车的运动能保持竖立不倒的一种装置,它是一个典型的非线性、快速、多变量和自然不稳定系统,但是我们可以通过对它施加一定的控制使其稳定。
对它的研究在理论上和方法上都有其重要意义。
倒立摆的研究不仅要追求增加摆的级数,而且更重要的是如何发展现有的控制方法。
同时, 它和火箭的姿态控制以及步行机器人的稳定控制有很多相似之处,由此研究产生的理论和方法对一般工业过程也有广泛用途。
本文研究了倒立摆的控制机理,用Lagrange 方法推导了一级倒立摆的数学模型,这为研究多级和其它类型的倒立摆甚至更高层次的控制策略奠定了一个良好的基础。
对系统进行了稳定性、可控性分析,得出倒立摆系统是一个开环不稳定但可控的系统的结论。
本文主要研究用极点配置、最优控制和模糊控制方法对倒立摆进行稳定控制。
最优控制方法是基于状态反馈,但能实现输出指标最优的一种控制方法,方法和参数调节较简单,有着广泛的应用。
模糊控制有不依赖于数学模型、适用于非线性系统等优点,所以本文尝试了用模糊控制对倒立摆进行控制,以将先进的控制方法用于实际中。
同时,对倒立摆系统的研究也将遵循从建模到仿真到实控,软硬件结合的系统的控制流程。
在这过程中,借助数学工具Matlab7及仿真软件Simulink,作了大量的仿真研究工作,仿真结果表明系统能跟踪输入,并具有较好的抗干扰性。
最后对实验室的倒立摆装置进行了软、硬件的调试,获得了较好的控制效果。
三.实验步骤:1.一级倒立摆系统模型的建立在忽略了空气阻力、各种摩擦之后(这也是为了保证Lagrange 方程的建立),可将一级倒立摆系统抽象为由小车和匀质杆组成的系统,本系统设定如下:小车质量M;摆杆质量m,长为l;小车在x 轴上移动;摆与竖直方向夹角为θ,规定正方向如图所示;加在小车x 轴上的力为F;拉格朗日算子L 是系统动能Ec 和势能Ep 之差,拉格朗日方程由拉格朗日算子L 和广义坐标qi ( i=1,2,3⋯n) 表示如下:Fi 为系统沿该广义坐标方向上的外力,D 为由摩擦而消失的能,本系统中可认为D=0;本系统有两个广义坐标分别是x、θ。
模糊控制的应用实例与分析本页仅作为文档封面,使用时可以删除This document is for reference only-rar21year.March模糊控制的应用学院实验学院专业电子信息工程姓名指导教师日期 2011 年 9 月 20 日在自动控制中,包括经典理论和现代控制理论中有一个共同的特点,即控制器的综合设计都要建立在被控对象准确的数学模型(如微分方程等)的基础上,但是在实际工业生产中,很多系统的影响因素很多,十分复杂。
建立精确的数学模型特别困难,甚至是不可能的。
这种情况下,模糊控制的诞生就显得意义重大,模糊控制不用建立数学模型,根据实际系统的输入输出的结果数据,参考现场操作人员的运行经验,就可对系统进行实时控制。
模糊控制实际上是一种非线性控制,从属于智能控制的范畴。
现代控制系统中的的控制能方便地解决工业领域常见的非线性、时变、在滞后、强耦合、变结构、结束条件苛刻等复杂问题。
可编程控制器以其高可靠性、编程方便、耐恶劣环境、功能强大等特性很好地解决了工业控制领域普遍关心的可靠、安全、灵活、方便、经济等问题,这两者的结合,可在实际工程中广泛应用。
所谓模糊控制,其定义是是以模糊数学作为理论基础,以人的控制经验作为控制的知识模型,以模糊集合、模糊语言变量以及模糊逻辑推理作为控制算法的一种控制。
模糊控制具有以下突出特点:(1)模糊控制是一种基于规则的控制,它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确的数学模型,因而使得控制机理和策略易于接受与理解,设计简单,便于应用(2)由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控制对那些数学模型难以获取,动态特性不易掌握或变化非常显著的对象非常适用。
(3)基于模型的控制算法及系统设计方法,由于出发点和性能指标的不同,容易导致较大差异;但一个系统语言控制规则却具有相对的独立性,利用这些控制规律间的模糊连接,容易找到折中的选择,使控制效果优于常规控制器。
模糊控制实例及simulink仿真实验报告
一、背景介绍
模糊控制是一种基于模糊逻辑的控制方法,其优点在于可以很好地处理复杂的非线性和不确定性系统,而且不需要精确的数学模型和计算,能够快速实现控制的优化。
二、实例介绍
本次实例采用一个双轮小车为对象,实现小车在平面上向指定位置运动的控制。
通过小车的速度和转向角两个输入变量,输出一个模糊控制信号,控制小车前进和转向。
三、实验过程
1. 建立模糊控制系统模型
打开Simulink软件,建立一个新模型,模型中包括输入变量、输出变量和控制器。
2. 设计输入变量和输出变量
(1)设计输入变量
本实例选择小车速度和转向角两个输入变量,每个变量包含三个模糊集合,速度变量分别为“慢速”、“中速”、“快速”,转向角变量分别为“左转”、“直行”、“右转”。
(2)设计输出变量
模糊控制信号输出变量选择小车的前进和转向,每个变量包含三个模糊集合,分别为“慢行”、“中行”、“快行”、“左转”、“直行”、“右转”。
3. 建立控制器
建立模糊控制器,包含输入变量和输出变量的关系,建立控制规则库和模糊关系。
4. 仿真实验
在Simulink下进行仿真实验,调整控制器参数,观察小车运动状态,对比试验。
四、实验结果
经过多次试验和调整,得到最优的小车模糊控制参数,可以实现小车的平滑运动
和准确转向。
五、实验结论
本实验通过建立一个小车的模糊控制系统,可以有效实现小车的平滑运动和准确转向,控制效果优于传统的PID控制方法。
模糊控制可以很好地处理非线性、不确定性和模糊性的系统,适合许多需要快速优化控制的场合。
一、速度控制算法: 首先定义速度偏差-50 km/h ≤e (k )≤50km/h ,-20≤ec (i )= e (k )- e (k-1)≤20,阀值e swith =10km/h设计思想:油门控制采用增量式PID 控制算法,刹车控制采用模糊控制算法,最后通过选择规则进行选择控制量输入。
选择规则:e (k )<0 ① e (k )>- e swith and throttlr_1≠0 选择油门控制② 否则:先将油门控制量置0,再选择刹车控制 0<e (k ) 先选择刹车控制,再选择油门控制 e (k )=0 直接跳出选择刹车控制:刹车采用模糊控制算法1.确定模糊语言变量 e 基本论域取[-50,50],ec 基本论域取[-20,20],刹车控制量输出u 基本论域取[-30,30],这里我将这三个变量按照下面的公式进行离散化:)]2(2[ba x ab n y +--= 其中,],[b a x ∈,n 为离散度。
E 、ec 和u 均取离散度n=3,离散化后得到三个量的语言值论域分别为:E=EC=U={-3,-2,-1,0,1,2,3}其对应语言值为{ NB,NM,NS,ZO, PS,PM,PB } 2.确定隶属度函数E/EC 和U 取相同的隶属度函数即:E EC U(,5,1)(,3,2,0)(,3,1,1)u (,2,0,2)(,1,1,3)(,0,2,3)(,1,5)g x trig x trig x trig x trig x trig x g x ∧∧--⎧⎪--⎪⎪--⎪=-⎨⎪-⎪⎪⎪⎩说明:边界选择钟形隶属度函数,中间选用三角形隶属度函数,图像略实际EC 和E 输入值若超出论域范围,则取相应的端点值。
3.模糊控制规则由隶属度函数可以得到语言值隶属度(通过图像直接可以看出)如下表: 表1:E/EC 和U3.模糊推理由模糊规则表3可以知道输入E 与EC 和输出U 的模糊关系,这里我取两个例子做模糊推理如下:if (E is NB) and (EC is NM) then (U is PB) 那么他的模糊关系子矩阵为:1211U EC E R R R R ⨯⨯=其中,711)0,,0,5.0,1(0⨯== P R E ,即表1中NB 对应行向量,同理可以得到,712)0,,0,5.0,1,0(1⨯== P R EC , 711)0,,0,5.0,1(0⨯== P R U77210000000000005.05.00005.010)0,,0,5.0,1,0()0,,0,5.0,1(⨯⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⨯=⨯TEC E R R 49121)0,,0,5.0,5.0,0,0,0,0,0,5.0,1,0(⨯= EC E R7491211000000005.05.00005.0100000)0,,0,5.0,1()0,,5.0,1,0(⨯⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⨯=⨯= TU EC E R R Rif (E is NVB or NB) and (EC is NVB) then (U is PVB)1112U EC E R R R R ⨯⨯= 结果略按此法可得到27个关系子矩阵,对所有子矩阵取并集得到模糊关系矩阵如下:)27,,2,1(21 ==i R R R R i 由R 可以得到模拟量输出为:()U E EC R =⨯4.去模糊化由上面得到的模拟量输出为1×7的模糊向量,每一行的行元素(u (z ij ))对应相应的离散变量z j ,则可通过加权平均法公式解模糊:)21,,2,1()()(210210 ===∑∑==j i zu z zu u i iji jij从而得到实际刹车控制量的精确值u 。
模糊控制在matlab中的实例以下是一个模糊控制的MATLAB实例:假设我们要控制一个水平摆,使其保持在垂直状态。
我们可以使用模糊控制器来实现这个任务。
首先,我们需要定义输入和输出变量。
对于输入变量,我们可以选择摆的角度和摆的角速度,对于输出变量,我们可以选择施加到摆上的力。
```matlab% 定义输入变量angle = fuzzymf("angle", [-90 -45 0 45 90], "trimf", [-90 -45 0 45 90]);angular_velocity = fuzzymf("angular_velocity", [-10 -5 0 5 10], "trimf", [-10 -5 0 5 10]);% 定义输出变量force = fuzzymf("force", [-20 -10 0 10 20], "trimf", [-20 -10 0 10 20]);```接下来,我们定义模糊规则。
这些规则描述了如果摆的角度和角速度是什么,我们应该施加多少力,以使摆保持垂直。
```matlab% 定义模糊规则rules = [1 1 3 1;1 2 4 1;1 3 5 2;2 1 2 1;2 23 1;2 3 4 2;3 1 1 2;3 2 2 1;3 3 3 1;4 1 1 3;4 2 2 2;4 3 3 1;5 1 1 3;5 2 2 2;5 3 4 3];% 定义模糊推理引擎fis = mamfis("Name", "Pendulum Fuzzy Controller", "NumInputs", 2, "NumOutputs", 1);fis.Inputs(1).MembershipFunctions = angle;fis.Inputs(2).MembershipFunctions = angular_velocity; fis.Outputs(1).MembershipFunctions = force;fis.Rules = rules;```最后,我们可以使用模糊控制器来控制水平摆。
模糊控制算法的原理与实现1. 介绍模糊控制是一种基于模糊逻辑的控制方法,它利用模糊规则来描述和模拟人类专家的经验和知识,以实现对复杂系统的控制。
模糊控制算法是通过模糊推理和模糊辨识来构建模糊控制系统。
本文将详细介绍模糊控制算法的原理与实现。
2. 模糊逻辑基础模糊逻辑是一种适用于处理模糊信息和不确定性问题的逻辑系统。
它是将模糊变量、模糊集合和模糊规则引入传统逻辑中的一种扩展。
模糊变量是指在一定范围内具有模糊性质的变量,模糊集合是指包含了事物之间模糊关系的集合,模糊规则是指用于描述输入与输出之间模糊关系的规则。
3. 模糊推理模糊推理是模糊控制算法的核心部分,它是基于模糊规则和模糊逻辑运算来进行的。
模糊推理过程包括模糊化、模糊规则匹配、模糊逻辑运算和去模糊化四个步骤。
3.1 模糊化模糊化是将实际输入值转换为模糊集合的过程。
通过模糊化,我们可以将精确的输入值映射到模糊集合上,并且可以灵活地描述输入值之间的模糊关系。
3.2 模糊规则匹配模糊规则匹配是将模糊化后的输入值与模糊规则进行匹配的过程。
每条模糊规则都由输入和输出之间的模糊关系构成,通过匹配规则,我们可以得到每条规则的激活度。
3.3 模糊逻辑运算模糊逻辑运算是根据模糊规则的激活度和模糊集合上的运算规则来进行的。
常用的模糊逻辑运算包括模糊交集、模糊并集和模糊推理。
3.4 去模糊化去模糊化是将模糊逻辑运算得到的模糊输出值转换为实际输出值的过程。
通过去模糊化,我们可以将模糊输出值映射到输入值所在的实际输出空间上。
4. 模糊辨识模糊辨识是模糊控制算法的关键步骤,它用于确定模糊控制系统的模糊规则和模糊变量。
模糊辨识可以通过专家经验、试验数据和数学建模等方法来实现。
4.1 专家经验法专家经验法是通过专家的经验和直觉来确定模糊规则和模糊变量。
专家根据对系统的了解和经验,提出一组模糊规则,并定义相应的模糊集合,从而构建模糊控制系统。
4.2 试验数据法试验数据法是通过对系统进行一系列试验,获取输入与输出之间的关系,进而确定模糊规则和模糊变量。
模糊控制在matlab中的实例以下是一个简单的模糊控制器在 MATLAB 中的实例:假设你有一个被控对象,它的输出值 y 取决于输入值 u。
你想要设计一个模糊控制器来控制该对象。
首先,你需要定义模糊控制器的输入和输出变量以及它们的隶属度函数。
示例中,我们定义了两个输入变量 x1 和 x2 以及一个输出变量y,每个变量都由三个隶属度函数组成。
```matlab% 定义输入和输出变量及其隶属度函数x1 = fuzzyvar("input", [-5 5], "bellmf", [1 2 3]);x2 = fuzzyvar("input", [-5 5], "trimf", [-4 0 4]);y = fuzzyvar("output", [-10 10], "trimf", [-8 0 8]);```接下来,我们需要定义规则库。
规则库是一系列模糊规则的集合,每条规则由前提和结论组成。
在这个示例中,我们定义了九条规则,将输入变量 x1 和 x2 映射到输出变量 y。
```matlab% 定义规则库ruleList = ["If (x1 is 1) and (x2 is 1) then (y is -7)";"If (x1 is 1) and (x2 is 2) then (y is -9)";"If (x1 is 1) and (x2 is 3) then (y is -9)";"If (x1 is 2) and (x2 is 1) then (y is -5)";"If (x1 is 2) and (x2 is 2) then (y is -7)";"If (x1 is 2) and (x2 is 3) then (y is -8)";"If (x1 is 3) and (x2 is 1) then (y is -3)";"If (x1 is 3) and (x2 is 2) then (y is -5)";"If (x1 is 3) and (x2 is 3) then (y is -6)";];```现在我们可以创建模糊控制器,并将输入变量和输出变量与规则库相结合。
模糊控制在matlab中的实例模糊控制是一种基于经验知识的控制方法,与传统的精确控制方法不同,它允许对系统的行为进行模糊描述,并通过一套模糊规则来对系统进行控制。
在实际应用中,模糊控制常常用于处理非线性、复杂和不确定的系统,例如温度控制、汽车制动系统等。
在MATLAB中,可以通过使用Fuzzy Logic Toolbox工具箱来实现模糊控制。
下面以一个简单的温度控制系统为例,来介绍如何在MATLAB中进行模糊控制的实现。
首先,需要定义模糊控制器的输入和输出变量,以及它们的模糊集合。
在温度控制系统中,可以定义温度作为输入变量,定义加热功率作为输出变量。
可以将温度的模糊集合划分为"冷"、"适中"和"热"三个模糊集合,将加热功率的模糊集合划分为"低"、"中"和"高"三个模糊集合。
```temperature = readfis('temperature.fis');temp_input = [-10, 40];temp_output = [0, 100];temperature_inputs = ["冷", "适中", "热"];temperature_outputs = ["低", "中", "高"];```然后,需要定义模糊规则。
模糊规则用于根据输入变量的模糊集合和输出变量的模糊集合之间的关系来确定控制规则。
例如,当温度为"冷"时,加热功率应该为"高"。
可以根据经验知识定义一系列模糊规则。
```rules = ["冷", "高";"适中", "中";"热", "低";];```接下来,需要定义模糊控制器的输入和输出变量值。
模糊控制应用实例模糊控制是一种部分基于逻辑的控制方法,它通过将模糊集合理论应用于控制系统中的输入和输出来模拟人类决策的过程。
与传统的精确控制方法相比,模糊控制更适合于处理模糊的、不确定的和复杂的系统。
在现实世界中,模糊控制广泛应用于各个领域,例如工业自动化、交通控制、飞行器导航等。
在本文中,我将介绍几个模糊控制的应用实例,以帮助读者更好地了解其实际应用价值。
1. 交通信号灯控制系统交通信号灯控制是一个典型的实时决策问题,涉及到多个信号灯的切换以及车辆和行人的流量控制。
传统的定时控制方法往往无法适应实际交通状况的变化,而模糊控制可以根据不同时间段和交通流量的变化,动态地调整信号灯的切换时间和优先级,以实现交通拥堵的缓解和行车效率的提高。
2. 温度控制系统在许多工业生产过程中,温度的精确控制对产品质量和产量的影响非常重要。
模糊控制可以根据温度传感器采集到的实时数据,结合事先建立的模糊规则库,调整加热或制冷设备的输出,以实现温度的稳定和精确控制。
与传统的PID控制方法相比,模糊控制对于非线性和时变的系统具有更好的适应性和鲁棒性。
3. 汽车制动系统汽车制动系统是保证驾驶安全的重要组成部分,而制动力的控制是其关键。
模糊控制可以根据制动踏板的压力以及车辆的速度和加速度等信息,动态地调整制动力的输出,以实现舒适而有效的制动。
模糊控制还可以考虑路面的湿滑情况和车辆的负荷情况等因素,自适应地调整制动力的分配,提高制动系统的性能和安全性。
4. 智能家居系统智能家居系统通过感应器、执行器和控制器等组件,实现对家庭设备和环境的智能控制。
模糊控制可以根据家庭成员的习惯和偏好,结合各种传感器采集到的数据,自动地调节室内温度、湿度、光线等参数,提高居住舒适度并节约能源。
在夏天的炎热天气中,模糊控制可以根据室内外温度、湿度和人体感觉来控制空调的开关和风速,实现智能舒适的环境控制。
总结回顾:模糊控制在各个领域都有着广泛的应用。
它通过基于模糊集合理论的推理和决策方法,实现对复杂系统的智能控制。
选取一个模糊控制的实例讲解,有文章,有仿真,有详细的推导过程。
一.实验题目:基于模糊控制系统的单级倒立摆
二.实验目的与要求:
倒立摆是联结在小车上的杆,通过小车的运动能保持竖立不倒的一种装置,它是一个典型的非线性、快速、多变量和自然不稳定系统,但是我们可以通过对它施加一定的控制使其稳定。
对它的研究在理论上和方法上都有其重要意义。
倒立摆的研究不仅要追求增加摆的级数,而且更重要的是如何发展现有的控制方法。
同时, 它和火箭的姿态控制以及步行机器
人的稳定控制有很多相似之处,由此研究产生的理论和方法对一般工业过程也有广泛用途。
本文研究了倒立摆的控制机理,用Lagrange 方法推导了一级倒立摆的数学模型,这为研究多级和其它类型的倒立摆甚至更高层次的控制策略奠定了一个良好的基础。
对系统进行了稳定性、可控性分析,得出倒立摆系统是一个开环不稳定但可控的系统的结论。
本文主要研究用极点配置、最优控制和模糊控制方法对倒立摆进行稳定控制。
最优控制方法是基于状态反馈,但能实现输出指标最优的一种控制方法,方法和参数调节较简单,有着广泛的应用。
模糊控制有不依赖于数学模型、适用于非线性系统等优点,所以本文尝试了用模糊控制对倒立摆进行控制,以将先进的控制方法用于实际中。
同时,对倒立摆系统的研究也将遵循从建模到仿真到实控,软硬件结合的系统的控制流程。
在这过程中,借助数学工具Matlab7及仿真软件Simulink,作了大量的仿真研究工作,仿真结果表明系统能跟踪输入,并具有较好的抗干扰性。
最后对实验室的倒立摆装置进行了软、硬件的调试,获得了较好的控制效果。
三.实验步骤:
1.一级倒立摆系统模型的建立
在忽略了空气阻力、各种摩擦之后(这也是为了保证Lagrange 方程的建立),可
将一级倒立摆系统抽象为由小车和匀质杆组成的系统,本系统设定如下:
小车质量M;摆杆质量m,长为l;小车在x 轴上移动;摆与竖直方向夹角为θ,规定正方向如图所示;加在小车x 轴上的力为F;
拉格朗日算子L 是系统动能Ec 和势能Ep 之差,拉格朗日方程由拉格朗日算子L 和广义坐标qi ( i=1,2,3⋯n) 表示如下:
Fi 为系统沿该广义坐标方向上的外力,D 为由摩擦而消失的能,本系统中可认为D=0;本系统有两个广义坐标分别是x、θ。
整个系统(车+摆)移动时的动能:
其中v 代表摆重心的速度矢量,重心位移为(x轴方向)(y轴方向)于是:,
系统势能是摆重心的势能:
于是拉格朗日算子;
,
于是根据自由度q(t)=x(t) 的拉格朗日方程如下:
(1-1)
同理,可获得根据自由度q(t)=θ(t), 的拉格朗日方程如下:
因广义坐标θ方向上无外力作用,即
即拉格朗日方程为:(1-2)
由于倒立摆在平衡过程中摆角幅度很小,设竖直向上方向为θ=0 ,则在竖直方向附近摆角不大的范围内,可近似认为
于是(1-1)、(1-2)式可线性化为:
整理成状态空间方程形式,可得
(其中取u=F)
(1-3)
实际系统的参数为:M=1Kg, m=0.1Kg, l=0.5m, g≈10m/s2
2.一级倒立摆系统性能分析
单级倒立摆系统的的开环特征根用matlab 的p=eig(A) 语句计算得
{0 0 5.6745 -5.6745}
这说明开环系统有一个极点在∣S∣平面右半平面,有两个极点在原点,因此系统是不稳定的。
根据线性系统理论系统{A,B,C,D}能控,满秩,即rankQ0=k,在matlab 里可以编辑m文件,求解系统的能控阵、能观阵,求它们的秩,从而
判断系统的能控性、能观性。
对于(3)式所表示的系统求得所以系统开环虽不稳定,但状态完全能控,这为实现倒立摆的稳定控制提供了理论依据。
计算一级倒立摆线性动态方程开环特征根、能控性矩阵过程作为实验结果1。
3.状态反馈和极点配置法
设控制对象状态方程为:
控制系统的各种特性以及其各种品质指标很大程度上由其闭环系统的零点和极点的位置决
定。
极点配置法的控制原理就是设计状态反馈律中的K矩阵,使反馈闭环后的系统:
具有所需要的极点配置。
即闭环特征方程:
为所期望的极点。
下面给出Gura-Bass 算法的步骤:
1判断Σ(A,B)的完全可控性。
确定能否完成预定的闭环极点配置综合目标。
2由给定的动态指标或闭环极点要求确定闭环特征多项式的n个系数βi。
3确定开环系统的特征多项式。
4求变换阵L=
能控阵Q=
5状态反馈阵K 由下式求出
采用状态反馈方法使系统稳定并配置极点,
带入系统的物理参数M=1Kg, m=0.1Kg, l=0.5m, g≈10m/s2
得到系统矩阵A 和输入矩阵B 为
由上面分析可知,倒立摆系统有在复平面右半平面的特征根,所以该系统是不稳定的。
也就是说,u=0 时,倒立摆系统是不稳定的系统;同时也意味着当x 非零时,总存在将x 转移至零的控制作用,亦即系统的状态是能控的。
根据线性系统理论,不稳定的系统应用状态反馈,可使反馈后的系统的特征根,即矩阵(A-BK)的特征值,位于复平面的左半平面,从而使闭环系统稳定。
亦即可使摆杆垂直且使小车处于基准位置,达到稳定状态;完全能控的系统可以通过对状态反馈矩阵的适当选择,使系统的极点按性能指标得到任意期望的配置。
对于上述倒立摆系统根据Gura-Bass 算法配置其闭环极点,使其阶跃响应满足:过渡过程时间ts,超调量σ% %<5%。
首先要将期望的性能指标转化为复平面上极点的位置。
其思路就是根据经验公式和性能指标确定一对主导闭环极点,然后将非主导极点放在复平面上远离主导极点的地方。
根据系统的动态指标超调量σ%<5%,过渡过程时间t s<3s,以及二阶系统极点与动态指标的关系:
可以求得期望的系统闭环主导极点为:p1=-2+2i,p2=-2-2i,因为原系统是四阶的,所
以选取另外两个非主导极点为-20 和-80。
此程序作为实验结果2。
4.一级倒立摆系统的最优控制器设计
倒立摆系统是一个单输入双输出系统,被控系统的输入量是施加在小车上的力或小车的加速度,输出量是摆杆的角度和小车的位移。
最优控制信号虽然实际上也是一个状态反馈信号,但是在性能指标J 最小的意义下求得的,与极点配置法的状态反馈不一样。
下面用Matlab 中的lqr 函数,求最优控制器对应的K。
lqr 函数允许我们选择两个参数——R 和Q,这两个参数用来平衡系统对输入量和状态量的敏感程度。
最简单的情况是假设R=1 ,Q 为单位矩阵。
当然,也可以通过改变Q 矩阵中的非零元素来调节控制器以得到期望的响应。
5.一级倒立摆的模糊控制器仿真设计
设定系统的初始状态为:下(相当于摆的初始倾斜角度为0.1rad,车和摆的速度为0,小车的位置在x=0 处)
为使摆不取决于小车的位置x而处于垂直位置,可以在零设定点调节角位置θ(t)。
因此模糊控制器呈现两个输入θ和,以及反馈力输出F,相应的Simulink 模型见图5-1所示。
目标信号见图5-2,扰动信号见图5-3。
5-25-3
倒立摆模糊控制Simulink模型:
5-1
所建立的模糊推理系统:
输入θ的隶属函数:
输入的隶属函数:
输出f 的隶属函数:
对小车位移和摆角正方向的定义,建立如下的模糊规则:
5.模糊控制器初始化,先新建空白页,运行Untitled1.m,再在Command window输入fuzzy,导入,然后在Command window输入test.fis,Test = readfis('Test.fis'再仿真。
四.实验结果:
实验结果1:
从图中可以看出,小车位置以及摆杆角度都是发散的,开环系统不稳定。
实验结果2:
从图中可以看出,系统的快速性很好,过渡过程时间不超过3 秒,并且响应过程中只振荡了一次,超调量也非常小,基本满足最初的设计要求
实验结果3:
注;黄色为角度,红色为角速度。
从图中看出,系统的输出角度曲线可以跟踪目标信号,抗干扰性也比较好。