模糊控制位置跟踪的SIMULINK仿真
- 格式:doc
- 大小:561.50 KB
- 文档页数:7
simulink轨迹跟踪方法Simulink是一种基于模型的设计和仿真工具,广泛应用于自动控制系统的开发和测试中。
轨迹跟踪是自动控制系统中的一个重要问题,通过控制对象在给定轨迹上的运动,实现对系统的精确控制。
Simulink提供了多种方法来实现轨迹跟踪,本文将介绍其中几种常用的方法。
1. 基于PID控制器的轨迹跟踪方法:PID控制器是一种常见的控制器,通过比较实际输出与期望输出的偏差,调整控制信号来实现对系统的控制。
在Simulink中,可以使用PID控制器模块来实现轨迹跟踪。
通过调整PID控制器的参数,可以实现对系统的精确控制。
例如,可以调整比例系数来增强系统的响应速度,调整积分系数来消除系统的稳态误差,调整微分系数来抑制系统的震荡。
2. 基于模型预测控制(MPC)的轨迹跟踪方法:模型预测控制是一种基于系统数学模型的控制方法,通过预测系统的未来状态,优化控制信号来实现对系统的控制。
Simulink提供了MPC工具箱,可以方便地进行模型预测控制。
在轨迹跟踪问题中,可以使用MPC来预测系统在给定轨迹上的运动,并根据预测结果来调整控制信号,使系统实现轨迹跟踪。
MPC可以考虑系统的约束条件,例如输入和输出的限制,从而实现对系统的更加精确的控制。
3. 基于模糊控制的轨迹跟踪方法:模糊控制是一种通过模糊推理来实现对系统的控制的方法。
在Simulink中,可以使用模糊控制器模块来实现模糊控制。
在轨迹跟踪问题中,可以使用模糊控制器来根据系统的当前状态和轨迹的要求,输出相应的控制信号,使系统实现轨迹跟踪。
模糊控制器可以考虑系统的非线性和不确定性,适用于复杂系统的控制。
4. 基于神经网络的轨迹跟踪方法:神经网络是一种模拟人脑神经网络结构和工作原理的计算模型。
在Simulink中,可以使用神经网络模块来实现神经网络控制。
在轨迹跟踪问题中,可以使用神经网络来学习系统的输入和输出之间的映射关系,并根据学习到的映射关系来生成控制信号,使系统实现轨迹跟踪。
模糊控制系统的仿真实验实验目的:现有被控对象一:G(s)=1/(s2+2s+1)被控对象二:G(s)=K /【(T1s+1)(T2s+1) 】试设计一个模糊控制系统来实现对它的控制,并完成以下任务:任务一:通过仿真分析模糊控制器的参数的变化(主要讨论控制器解模方法和量化因子的变化)对系统性能的影响。
任务二:在控制器参数一定的情况下改变被控对象的参数,分析对象参数变化时fuzzy controller的适应能力。
任务三:在控制器参数一定的情况下改变被控对象的结构,分析对象结构变化时fuzzy controller的适应能力。
实验分析:要完成以上任务应分两个步骤:一设计模糊控制器,二用matlab的模糊逻辑工具箱建立模糊推理系统,并在simulink中实现对模糊系统的仿真。
接下来就以对象一为例说明模糊控制系统的仿真。
一、模糊控制器的设计模糊控制器的设计步骤为:1、选择控制器的输入输出:选择误差e及误差变化量ec为输入,u作为输出用于控制对象,这样模糊控制器具有二输入一输出的结构。
2、模糊集及论域的定义:z输入e的模糊子集为{NB NM NS NO PO PS PM PB}z输入ec和输出u的模糊子集均为{NB NM NS ZO PS PM PB}z e的论域为{-6 -5 -4 -3 -2 -1 -0 +0 1 2 3 4 5 6 }z ec的论域为{-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 }z u的论域为{-7 -6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 }我们选择三角形作为隶属度函数的形状,e的隶属度函数如下图所示:图1-1 ec的隶属度函数如下图所示:图1-2 u的隶属度函数如下图所示图1-3表1-14、选择输入输出变量的量化因子:这里暂时选定输入输出的量化因子Ke=Kc=Ku=1,接下来的仿真过程还可以调整。
5、择模糊规则前提交的方法为min,模糊推理方法为min,而反模糊化方法可以在仿真过程中设置。
模糊控制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中,我们可以通过连接输入信号和模拟环境来模拟系统的行为。
1模糊P1D用命令FUZZy翻开模糊控制工具箱。
AnfiSedit翻开自适应神经模糊控制器,它用给定的输入输出数据建个一个模糊推理系统,并用一个反向传播或者与最小二乘法结合的来完成隶属函数的调节。
SUrfVieW(newfis)可以翻开外表视图窗口8.1模糊PID串联型新建一个SimUIink模型同时拖入一个fuzzy1ogiccontro11er模块,双击输入已经保存的fis模糊控制器的名字。
由于这个控制模块只有一个输入端口,需要用到I I1UX模块。
模糊结合PID,当输出误差较大时,用模糊校正,当较小时,用PID校正。
8.2模糊自适应PID[1)PID参数模糊自整定的原那么PID调节器的控制规律为:u(k)=Kpe(k)+Ki∑e(i)+Kdec(k)其中:KP为比例系数;Ki为积分系数;Kd为微分系数;e(k)、ec(k)分别为偏差和偏差变化率.模糊自整定P1D参数的目的是使参数Kp、Ki、Kd随着e和ec的变化而自行调整,故应首先建立它们间的关系.根据实际经验,参数KP、Ki、Kd在不同的e和ec下的自调整要满足如下调整原那么:(1)当e较大时,为加快系统的响应速度,防止因开始时e的瞬间变大可能会引起的微分溢出,应取较大的Kp和较小的Kd,同时由于积分作用太强会使系统超调加大,因而要对积分作用加以限制,通常取较小的Ki值;(2)当e中等大小时,为减小系统的超调量,保证一定的响应速度,Kp应适当减小;同时Kd 和Ki的取值大小要适中;(3)当e较小时,为了减小稳态误差,Kp与Ki应取得大些,为了防止输出响应在设定值附近振荡,同时考虑系统的抗干扰性能,Kd值的选择根据IeC1值较大时,Kd取较小值,通常Kd为中等大小。
同时按照需要,将输入语言变量E和EC分为7个模糊子集,分别用语言值正大(PB)、正中(PM)、正小(PS)、零(Z)、负小(NS)、负中(NM)、负大(NB)来表示,它们的隶属函数为高斯型(gaussmf),输出语言变量Kp/、Ki,、Ker用语言值小正大(PB)、正中(PM)、正小(PS)、零(Z)、负小(NS)、负中(NM)、负大(NB)来表示隶属函数为三角型(trimf),方法二:图-1模糊自适应Simu1ink模型根据各模糊子集的隶属度赋值表和各参数模糊控制模型,应用模糊合成推理设计分数阶PID参数的模糊矩阵表,算出参数代入下式计算:Kp=KpO+(E,EOpjKi=KiO+(E,EC)I;Kd=KdO+(E,EC)d式中:KpO.KiO.KdO为P1D参数的初始设计值,由传统的PID控制器的参数整定方法设计。
智能控制作业二“模糊控制位置跟踪的SIMULINK 仿真一、题目 设被控对象的传递函数为s s s G 252500)(2+=,输入信号为方波,周期为1秒,幅值为1,(可以用Pulse Generator 模块来产生)。
1)试设计两输入单输出模糊控制器,输入为偏差E 和偏差变化率EC ,输出为控制量U ,使系统输出能实时跟踪输入信号。
2)通过仿真理解并分析E 和EC 的参数选择对系统稳态误差和动态性能的影响,这些参数包括模糊子集的个数,论域的范围等。
作业中最好把不同参数下的仿真结果附上。
二、MATLAB 解决方案1、模糊控制模块的创建在MA TLAB 命令窗口中输入fuzzy 命令,会弹出模糊控制GUI 界面,打开隶属度函数编辑窗口,输入变量为E 和EC ,输出变量为U ,输入输出论域均设置为[-3 3],每个变量都设置NB ,NM ,NS ,ZO ,PS ,PM ,PB 七个模糊子集,每个变量的隶属度函数均如图1所示,为了使输入误差在零附近反应敏感,这一部分隶属度函数设置得比较尖。
图1 隶属度函数编辑窗口根据如表1输入控制规则,如图2所示:表1 控制规则编辑完成后可以看到如图3所示的模糊输入与输出的三维示意图:图2 控制规则输入窗口图3 输出三维示意图2、simulink的仿真新建一个model,搭建如图4所示的控制框图,保存为fuc2文件夹中的fuz_ctrl.mdl。
其中增益模块用来控制将输入或输出与模糊控制器的论域相匹配。
图4 simulink控制框图3、调试后的仿真结果经过调试优化,最终得到的仿真波形如图5所示。
其中Ke=3,Kec=0.06,Ku=1.图5 最终运行结果三、控制参数对控制结果的影响1、论域对控制结果的影响这里采用Ke和Kec来起到控制输入变量的论域的作用,当增大量化因子,相当于缩小了输入变量的论域,当减小量化因子时,相当于增大了输入变量的论域。
在原来的基础上改变Ke,Kec的值,通过观察跟踪效果来说明论域对控制结果的影响。
下面用一个简单的例子作介绍:(本例不是特别针对实现什么功能,只是为了介绍方便)第一部分创建一个模糊逻辑(.fis文件)第一步:打开模糊推理系统编辑器步骤:在Commond Window 键入fuzzy回车打开如下窗口,既模糊推理系统编辑器第二步:使用模糊推理系统编辑器本例用到两个输入,两个输出,但默认是一个输人,一个输出步骤:1、添加一个输入添加一个输出得如下图2、选择Input、output(选中为红框),在Name框里修改各输入的名称并将And method 改为prod,将Or method 改为 probor提示:在命名时’_’在显示时为下标,可从上图看出。
第三步:使用隶属函数编辑器该编辑器提供一个友好的人机图形交互环境,用来设计和修改模糊推理系中各语言变量对应的隶属度函数的相关参数,如隶属度函数的形状、范围、论域大小等,系统提供的隶属度函数有三角、梯形、高斯形、钟形等,也可用户自行定义。
步骤:1、双击任何一个输入量(In_x、In_y)或输出量打开隶属度函数编辑器。
2、在左下处Range和Display Range处添加取值范围,本例中In_x和In_y的取值范围均为[0 10], Out_x和Out_y的取值范围均为[0 1]3、默认每个输入输出参数中都只有3个隶属度函数,本例中每个输入输出参数都需要用到五个,其余几个需要自己添加:选中其中一个输入输出参数点击Edit菜单,选Add MFS…打开下列对话框将MF type设置为trimf(三角形隶属度函数曲线,当然你也需要选择其他类型) 将Number of MFs 设置为2点击OK按钮同样给其他三个加入隶属度函数4、选中任何一个隶属度函数(选中为红色),在Name 中键入名称,在Type中选择形状,在Params中键入范围,然后回车如下图:5、关闭隶属函数编辑器第四步:使用规则编辑器通过隶规则编辑器来设计和修改“IF...THEN”形式的模糊控制规则。
模糊控制实例及simulink仿真实验报告
一、背景介绍
模糊控制是一种基于模糊逻辑的控制方法,其优点在于可以很好地处理复杂的非线性和不确定性系统,而且不需要精确的数学模型和计算,能够快速实现控制的优化。
二、实例介绍
本次实例采用一个双轮小车为对象,实现小车在平面上向指定位置运动的控制。
通过小车的速度和转向角两个输入变量,输出一个模糊控制信号,控制小车前进和转向。
三、实验过程
1. 建立模糊控制系统模型
打开Simulink软件,建立一个新模型,模型中包括输入变量、输出变量和控制器。
2. 设计输入变量和输出变量
(1)设计输入变量
本实例选择小车速度和转向角两个输入变量,每个变量包含三个模糊集合,速度变量分别为“慢速”、“中速”、“快速”,转向角变量分别为“左转”、“直行”、“右转”。
(2)设计输出变量
模糊控制信号输出变量选择小车的前进和转向,每个变量包含三个模糊集合,分别为“慢行”、“中行”、“快行”、“左转”、“直行”、“右转”。
3. 建立控制器
建立模糊控制器,包含输入变量和输出变量的关系,建立控制规则库和模糊关系。
4. 仿真实验
在Simulink下进行仿真实验,调整控制器参数,观察小车运动状态,对比试验。
四、实验结果
经过多次试验和调整,得到最优的小车模糊控制参数,可以实现小车的平滑运动
和准确转向。
五、实验结论
本实验通过建立一个小车的模糊控制系统,可以有效实现小车的平滑运动和准确转向,控制效果优于传统的PID控制方法。
模糊控制可以很好地处理非线性、不确定性和模糊性的系统,适合许多需要快速优化控制的场合。
智能控制作业二“模糊控制位置跟踪的SIMULINK 仿真
一、题目 设被控对象的传递函数为s s s G 252500)(2+=,输入信号为方波,周期为1秒,幅值为1,(可以用Pulse Generator 模块来产生)。
1)试设计两输入单输出模糊控制器,输入为偏差E 和偏差变化率EC ,输出为控制量U ,使系统输出能实时跟踪输入信号。
2)通过仿真理解并分析E 和EC 的参数选择对系统稳态误差和动态性能的影响,这些参数包括模糊子集的个数,论域的范围等。
作业中最好把不同参数下的仿真结果附上。
二、MATLAB 解决方案
1、模糊控制模块的创建
在MA TLAB 命令窗口中输入fuzzy 命令,会弹出模糊控制GUI 界面,打开隶属度函数编辑窗口,输入变量为E 和EC ,输出变量为U ,输入输出论域均设置为[-3 3],每个变量都设置NB ,NM ,NS ,ZO ,PS ,PM ,PB 七个模糊子集,每个变量的隶属度函数均如图1所示,为了使输入误差在零附近反应敏感,这一部分隶属度函数设置得比较尖。
图1 隶属度函数编辑窗口
根据如表1输入控制规则,如图2所示:
表1 控制规则
编辑完成后可以看到如图3所示的模糊输入与输出的三维示意图:
图2 控制规则输入窗口图3 输出三维示意图
2、simulink的仿真
新建一个model,搭建如图4所示的控制框图,保存为fuc2文件夹中的fuz_ctrl.mdl。
其中增益模块用来控制将输入或输出与模糊控制器的论域相匹配。
图4 simulink控制框图
3、调试后的仿真结果
经过调试优化,最终得到的仿真波形如图5所示。
其中Ke=3,Kec=0.06,Ku=1.
图5 最终运行结果
三、控制参数对控制结果的影响
1、论域对控制结果的影响
这里采用Ke和Kec来起到控制输入变量的论域的作用,当增大量化因子,相当于缩小了输入变量的论域,当减小量化因子时,相当于增大了输入变量的论域。
在原来的基础上改变Ke,Kec的值,通过观察跟踪效果来说明论域对控制结果的影响。
首先讨论偏差E的论域对控制结果的影响:保持Kec=0.06,当Ke=4时,运行结果如图6所示:
图6 Ke=4时的运行结果
当Ke=1时的运行结果如图7所示:
图7 Ke=1时运行结果
从以上两幅图的对比可以看出,当偏差E的论域过大时,响应速度回变慢,超调会减小,当论域过小时,响应速度回变快,但会出现超调。
下面讨论偏差的变化率对控制结果的影响:保持Ke=3,当Kec=0.4时的运行结果如图8所示:
图8 Kec=0.04时的运行结果
当Kec=0.12时的运行结果如图9所示:
图9 Kec=0.12时的运行结果
从以上两图的对比可以看出,偏差的变化率的论域增大有利于提高响应时间,但会引起过大的超调,论域减小有利于减小超调,但会减慢响应速度,在实际控制中应该综合考虑以上两点。
2、模糊子集个数对控制结果的影响
本示例中设置了七个模糊子集,在同样的控制参数下,模糊子集个数为5和3时的控制结果图:其中模糊子集数为5时的仿真模型保存为文件夹fuc2_1中的fuz_ctrl2.mdl,模糊子集数为3的仿真模型保存为文件夹fuc2_2中fuz_ctrl3.mdl。
图10 模糊子集为5个是响应波形
图11 模糊子集为7个和5个时局部放大比较
图12 模糊子集个数为3时的响应波形
从上述几幅波形对比可以看到,模糊子集个数越少,其控制就越不精确,引起的误差也越大,但当模糊子集个数太大时,每一步计算花费的时间会变长,在实际设计中应综合考虑这两个因素。
四、讨论与心得
此次大作业主要利用了模糊控制的GUI 界面为simulink 创建一个论域连续的模糊控制模型,然后将其运用到实际的控制过程当中去。
在刚开始时,隶属度函数和控制规则就采用常用的函数和控制规则。
最初遇到的问题就是论域我都选择了[-3 3],然后仿真出来的波形根本不对,于是我查阅了相关的文献,在输入和输出的环节中都加入了一个量化因子,用示波器观察了偏差和偏差的变化率的变化范围以后,按照课本中的公式2e H L m K e e =-,2ec H L
n K ec ec =-,初步选择了Ke 和Kec ,Ku 初步选择为1,然后再调整各个量化因子,
观察各个参数对结果的影响,最后得到一个比较理想的结果。
由于修改论域比较麻烦,我就采用了这种量化因子的方式对论域进行了讨论,因为这两者的效果是一样的。
经过调整后得到图形后,发现在误差快为零的那一段变化不是很敏感,因此我又对隶属度函数进行了适当的修改,使得误差较小时的隶属度函数变得尖一点,使得系统对误差较小时的响应变得比较敏感,分辨率提高。
总体来说,这个跟踪效果还是比较理想的。