预测控制MATLAB仿真与设计
- 格式:docx
- 大小:42.36 KB
- 文档页数:11
动态矩阵控制算法实验报告院系:电子信学院姓名:***学号:*********专业:控制理论与控制工程导师:***MATLAB环境下动态矩阵控制实验一、实验目的:对于带有纯滞后、大惯性的研究对象,通过动态控制矩阵的MATLAB的直接处理与仿真实验,具有较强的鲁棒性和良好的跟踪性。
输入已知的控制模型,通过对参数的选择,来取的良好的控制效果。
二、实验原理:动态矩阵控制算法是一种基于被控对象非参数数学模型的控制算法,它是一种基于被控对象阶跃响应的预测控制算法,以对象的阶跃响应离散系统为模型,避免了系统的辨识,采用多步预估技术,解决时延问题,并按照预估输出与给定值偏差最小的二次性能指标实施控制,它适用于渐进稳定的线性对象,系统动态特性中存在非最小相位特性或纯滞后都不影响算法的直接使用。
三、实验环境:计算机 MATLAB2016b四、实验步骤:影响控制效果的主要参数有:1)采样周期T与模型长度N在DMC中采样周期T与模型长度N的选择需要满足香农定理和被控对象的类型及其动态特性的要求,通常需要NT后的阶跃响应输出值接近稳定值。
2)预测时域长度PP对系统的快速性和稳定性具有重要影响。
为使滚动优化有意义,应使P 包含对象的主要动态部分,P越小,快速性提高,稳定性变差;反之,P越大,系统实时性降低,系统响应过于缓慢。
3)控制时域长度MM控制未来控制量的改变数目,及优化变量的个数,在P确定的情况下,M越小,越难保证输出在各采样点紧密跟踪期望输出值,系统响应速度缓慢,可获得较好的鲁棒性,M越大,控制机动性越强,改善系统的动态性能,但是稳定性会变差。
五、实例仿真(一)算法实现设GP(s)=e-80s/(60s+1),采用DMC后的动态特性如图1所示,采样周期T=20s,优化时域P=10,M=2,建模时域N=20。
MATLAB程序1:g=poly2tfd(1,[60 1],0,80);%通用传函转换为MPC模型delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model=tfd2step(tfinal,delt,nt,g);%传函转换为阶跃响应模型plant=model;%进行模型预测控制器设计p=10;m=2;ywt=[];uwt=1;%设置输入约束和参考轨迹等控制器参数kmpc=mpccon(plant,ywt,uwt,m,p);%模型预测控制器增益矩阵计算tend=1000;r=1;%仿真时间[y,u,yrn]=mpcsim(plant,model,kmpc,tend,r);%模型预测控制仿真t=0:20:1000;%定义自变量t的取值数组plot(t,y)xlabel(‘图一DMC控制动态响应曲线(time/s)’);ylabel(‘响应曲线’);结果如下:Percent error in the last step response coefficientof output yi for input uj is :2.2e-05%Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.003 seconds.结论:采用DMC后系统调整时间减小,响应的快速性好,无超调。
基于MATLAB控制系统的仿真与应用毕业设计论文目录一、内容概括 (2)1. 研究背景和意义 (3)2. 国内外研究现状 (4)3. 研究目的和内容 (5)二、MATLAB控制系统仿真基础 (7)三、控制系统建模 (8)1. 控制系统模型概述 (10)2. MATLAB建模方法 (11)3. 系统模型的验证与校正 (12)四、控制系统性能分析 (14)1. 稳定性分析 (14)2. 响应性能分析 (16)3. 误差性能分析 (17)五、基于MATLAB控制系统的设计与应用实例分析 (19)1. 控制系统设计要求与方案选择 (20)2. 基于MATLAB的控制系统设计流程 (22)3. 实例一 (23)4. 实例二 (25)六、优化算法在控制系统中的应用及MATLAB实现 (26)1. 优化算法概述及其在控制系统中的应用价值 (28)2. 优化算法介绍及MATLAB实现方法 (29)3. 基于MATLAB的优化算法在控制系统中的实践应用案例及分析对比研究31一、内容概括本论文旨在探讨基于MATLAB控制系统的仿真与应用,通过对控制系统进行深入的理论分析和实际应用研究,提出一种有效的控制系统设计方案,并通过实验验证其正确性和有效性。
本文对控制系统的基本理论进行了详细的阐述,包括控制系统的定义、分类、性能指标以及设计方法。
我们以一个具体的控制系统为例,对其进行分析和设计。
在这个过程中,我们运用MATLAB软件作为主要的仿真工具,对控制系统的稳定性、动态响应、鲁棒性等方面进行了全面的仿真分析。
在完成理论分析和实际设计之后,我们进一步研究了基于MATLAB 的控制系统仿真方法。
通过对仿真模型的建立、仿真参数的选择以及仿真结果的分析,我们提出了一种高效的仿真策略。
我们将所设计的控制系统应用于实际场景中,通过实验数据验证了所提出方案的有效性和可行性。
本论文通过理论与实践相结合的方法,深入探讨了基于MATLAB 控制系统的仿真与应用。
一、前言工业生产的过程是复杂的,建立起来的模型也是不完善的。
即使是理论非常复杂的现代控制理论,其效果也往往不尽人意,甚至在一些方面还不及传统的PID控制。
20世纪70年代,人们除了加强对生产过程的建模、系统辨识、自适应控制等方面的研究外,开始打破传统的控制思想,试图面向工业开发出一种对各种模型要求低、在线计算方便、控制综合效果好的新型算法。
在这样的背景下,预测控制的一种,也就是动态矩阵控制(DMC)首先在法国的工业控制中得到应用。
因此预测控制不是某种统一理论的产物,而是在工业实践中逐渐发展起来的。
预测控制中比较常见的三种算法是模型算法控制(MAC),动态矩阵控制(DMC)以及广义预测控制。
本篇所采用的是动态矩阵控制,其采用增量算法,因此在消除稳态余差方面非常有效。
二、控制系统设计方案2.1 控制系统方案设计图动态矩阵控制是基于系统阶跃响应模型的算法,隶属于预测控制的范畴。
它的原理结构图如下图(1)所示:图(1) 预测控制原理结构图上图就是预测控制原理结构图,从图中我们可以看到,预测控制的主要特点。
即建立预测模型;采用滚动优化策略,采用模型误差反馈矫正。
这也是预测控制的本质所在。
下面将对这三个特点一一说明。
2.2 预测控制基本原理1、预测模型:预测模型的功能是根据对象历史信息和未来输入对对象输出进行预测,它是被控对象的准确模型。
这里只强调模型的功能而不强调其结构形式。
因此,预测模型可以是状态方程、传递函数等传统的参数模型,对于线性稳定对象,阶跃响应、脉冲响应这类非参数模型也可以作为预测模型使用。
预测模型具有展示系统未来动态行为的功能,这样,就可以利用预测模型来预测未来时刻被控对象的输出变化及被控变量与其给定值的偏差,作为控制作用的依据,使之适应动态系统所具有的因果性的特点,得到比常规控制更好的控制效果。
2、滚动优化:预测控制是一种优化控制算法,它是通过某一性能指标的最优来确定未来的控制作用。
这一性能指标涉及到系统未来的行为。
matlab控制系统仿真设计Matlab控制系统仿真设计控制系统是现代工业领域中的关键技术之一,用于实现对系统行为的预测和调节。
在控制系统设计中,仿真是一个重要的工具,可以帮助工程师和研究人员理解和评估系统的性能。
在本文中,我们将以Matlab的控制系统仿真设计为主题,介绍控制系统仿真的基本概念、方法和工具。
一、控制系统仿真基础1.1 什么是控制系统仿真?控制系统仿真是指通过计算机模拟系统的动态行为来评估和验证控制策略的一种方法。
仿真可以帮助工程师在构建实际系统之前,通过计算机模型对系统的运行过程进行预测和分析。
1.2 为什么要进行控制系统仿真?控制系统仿真可以帮助工程师在实际系统建造之前对系统进行评估和优化。
它可以提供系统的动态响应、稳定性、鲁棒性等信息,帮助工程师优化控制策略和设计参数。
此外,仿真还可以帮助工程师调试和验证控制算法,减少实际系统建造和测试的成本和风险。
1.3 Matlab在控制系统仿真中的作用Matlab是一款功能强大的科学计算软件,也是控制系统仿真的重要工具之一。
Matlab提供了丰富的控制系统设计和分析工具箱,使得控制系统仿真变得更加简单和高效。
二、Matlab控制系统仿真设计的步骤2.1 确定系统模型在进行控制系统仿真设计之前,首先需要确定系统的数学模型。
系统模型可以通过物理原理、实验数据或系统辨识方法得到。
在Matlab中,可以使用符号计算工具箱或数值计算工具箱来建立系统的数学模型。
2.2 设计控制器根据系统模型和性能要求,设计合适的控制器。
常用的控制器设计方法包括PID控制、根轨迹设计、频率响应设计等。
在Matlab中,可以使用Control System Toolbox来设计控制器,并进行性能分析和优化。
2.3 仿真系统响应利用Matlab的仿真工具,对系统进行动态仿真,观察系统的响应。
仿真可以根据预先设定的输入信号和初始条件,计算系统的状态和输出变量随时间的变化。
Mat1ab技术控制系统设计与仿真一、引言在现代科技领域中,控制系统是一个至关重要的概念。
在各种领域,如机械工程、电子工程、化工工程等,控制系统的设计和仿真是实现目标的关键。
而Mat1ab作为一种功能强大的数值计算软件,被广泛应用于控制系统设计和仿真。
本文将探讨MaHab技术在控制系统设计和仿真中的应用。
二、MatIab基础知识在开始探讨MatIab技术在控制系统设计和仿真中的应用之前,有必要先了解一些Mat1ab的基础知识。
Mat1ab是由MathWorks公司开发的一款用于数值计算和科学绘图的软件。
它提供了丰富的函数库和工具箱,能够满足各种数学和工程领域的需求。
Mauab的核心功能包括数值计算、数据分析、图形绘制和算法开发等。
通过Mat1ab,用户可以进行复杂的矩阵运算、符号计算、非线性优化和差分方程求解等操作。
此外,MaUab还具有强大的数据分析功能,能够进行统计分析、数据可视化和模型拟合等操作。
三、控制系统设计控制系统设计是指通过控制器和执行器对系统进行控制的过程。
Mat1ab提供了一系列用于控制系统设计的工具箱,如Contro1SystemToo1box和Simu1ink等。
Contro1SystemToo1box是Mat1ab中用于控制系统分析和设计的工具箱。
它包含了各种用于系统建模、控制器设计和仿真的函数和工具。
例如,用户可以使用TransferFunction对象来描述系统的传输函数,并使用该对象进行稳定性分析和控制器设计。
此外,COntrOISyStemTOOIbOX还提供了多种控制器设计方法,如根轨迹法、频域法和状态空间法等,可以满足不同系统的设计需求。
SimUIink是MatIab中的一个仿真工具,用于建立动态系统的模型和仿真。
通过Simu1ink,用户可以使用图形界面建立系统的模型,并使用各种模块来描述系统的构成和行为。
SimU1ink提供了广泛的预定义模块,包括传感器、执行器、控制器等。
MATLAB模型预测控制工具箱函数8.2 系统模型建立与转换函数前面读者论坛了利用系统输入/输出数据进行系统模型辨识的有关函数及使用方法,为时行模型预测控制器的设计,需要对系统模型进行进一步的处理和转换。
MATLAB的模型预测控制工具箱中提供了一系列函数完成多种模型转换和复杂系统模型的建立功能。
在模型预测控制工具箱中使用了两种专用的系统模型格式,即MPC状态空间模型和MPC传递函数模型。
这两种模型格式分别是状态空间模型和传递函数模型在模型预测控制工具箱中的特殊表达形式。
这种模型格式化可以同时支持连续和离散系统模型的表达,在MPC传递函数模型中还增加了对纯时延的支持。
表8-2列出了模型预测控制工具箱的模型建立与转换函数。
表8-2 模型建立与转换函数8.2.1 模型转换在MATLAB模型预测工具箱中支持多种系统模型格式。
这些模型格式包括:①通用状态空间模型;②通用传递函数模型;③MPC阶跃响应模型;④MPC状态空间模型;⑤ MPC 传递函数模型。
在上述5种模型格式中,前两种模型格式是MATLAB 通用的模型格式,在其他控制类工具箱中,如控制系统工具箱、鲁棒控制工具等都予以支持;而后三种模型格式化则是模型预测控制工具箱特有的。
其中,MPC 状态空间模型和MPC 传递函数模型是通用的状态空间模型和传递函数模型在模型预测控制工具箱中采用的增广格式。
模型预测控制工具箱提供了若干函数,用于完成上述模型格式间的转换功能。
下面对这些函数的用法加以介绍。
1.通用状态空间模型与MPC 状态空间模型之间的转换MPC 状态空间模型在通用状态空间模型的基础上增加了对系统输入/输出扰动和采样周期的描述信息,函数ss2mod ()和mod2ss ()用于实现这两种模型格式之间的转换。
1)通用状态空间模型转换为MPC 状态空间模型函数ss2mod ()该函数的调用格式为pmod= ss2mod (A,B,C,D)pmod = ss2mod (A,B,C,D,minfo)pmod = ss2mod (A,B,C,D,minfo,x0,u0,y0,f0)式中,A, B, C, D 为通用状态空间矩阵;minfo 为构成MPC 状态空间模型的其他描述信息,为7个元素的向量,各元素分别定义为:◆ minfo(1)=dt ,系统采样周期,默认值为1;◆ minfo(2)=n ,系统阶次,默认值为系统矩阵A 的阶次;◆ minfo(3)=nu ,受控输入的个数,默认值为系统输入的维数;◆ minfo(4)=nd ,测量扰的数目,默认值为0;◆ minfo(5)=nw ,未测量扰动的数目,默认值为0;◆ minfo(6)=nym ,测量输出的数目,默认值系统输出的维数;◆ minfo(7)=nyu ,未测量输出的数目,默认值为0;注:如果在输入参数中没有指定m i n f o ,则取默认值。
控制系统matlab仿真与设计
控制系统matlab仿真与设计
控制系统是现代工业领域中必不可少的一部分。
它能够控制各种
机械、电子及其他工程系统的工作,从而使其能够按照我们的意图去
运作。
控制系统matlab仿真与设计是控制系统中非常重要的一项工作,通过它我们能够更好的了解系统的性能、优化系统的控制方法,并减
少实际操作时的风险。
步骤一:模型建立
模型建立是控制系统matlab仿真与设计的重要步骤。
在这一步
骤中,我们需要根据系统的特征和数据建立一个合适的模型。
模型通
常是一个数学公式或者是一张流程图。
建立模型需要我们对系统非常
熟悉,有着一定的专业知识。
步骤二:仿真设计
在模型建立之后,我们需要进行仿真设计。
这一步是通过matlab 仿真软件对我们建立的模型进行仿真运行,并获得系统的反馈。
在仿
真设计的过程中,我们能够调整模型参数,使系统的工作效率更高、
更加稳定。
步骤三:系统控制
在控制系统matlab仿真与设计的最后一步,我们需要根据仿真
的结果对系统进行实际的控制。
这一步通常是对系统的运行进行调整
和优化。
我们可以通过改变控制系统中的参数,对系统进行优化来提
高系统的工作效率和稳定性。
控制系统matlab仿真与设计非常便于工程人员分析系统,优化
控制策略。
它可以帮助工程师们快速掌握系统的特性以及改进策略,
降低生产成本,提高工作效率。
可编辑修改精选全文完整版控制系统仿真与工具实验指导书目录实验一熟悉MATLAB语言工作环境和特点 (1)实验二图形绘制与修饰 (4)实验三系统的时间响应分析 (8)实验四系统的时间响应分析 (12)实验五SIMULINK仿真基础 (14)实验一熟悉MATLAB语言工作环境和特点一、实验目的通过实验使学生熟悉MA TLAB语言的工作环境,并了解MATLAB语言的特点,掌握其基本语法。
二、实验设备PC机MATLAB应用软件三、实验内容本实验从入门开始,使学生熟悉MA TLAB的工作环境,包括命令窗、图形窗和文字编辑器、工作空间的使用等。
1、命令窗(1)数据的输入打开MATLAB后进入的是MA TLAB的命令窗,命令窗是用户与MATLAB做人机对话的主要环境。
其操作提示符为“》”。
在此提示下可输入各种命令并显示出相应的结果,如键入:x1=sqrt(5),x2=1.35,y=3/x2显示结果为:x1=2.2361x2=1.3500y=2.2222上命令行中两式之间用逗号表示显示结果,若用分号,则只运行而不用显示运行结果。
如键入A=[1,2,3;4,5,6;7,8,9],则显示为说明:●直接输入矩阵时,矩阵元素用空格或逗号分隔,矩阵行用分号相隔,整个矩阵放在方括号中。
注意:标点符号一定要在英文状态下输入。
●在MA TLAB中,不必事先对矩阵维数做任何说明,存储时自动配置。
●指令执行后,A被保存在工作空间中,以备后用。
除非用户用clear指令清除它,或对它重新赋值。
●MATLAB对大小写敏感。
(2)数据的显示在MA TLAB工作空间中显示数值结果时,遵循一定的规则,在缺省的情况下,当结果是整数,MATLAB将它作为整数显示;当结果是实数,MATLAB以小数点后4位的精度近似显示。
如果结果中的有效数字超出了这一范围,MATLAB以类似于计算器的计算方法来显示结果。
也可通过键入适当的MA TLAB命令来选择数值格式来取代缺省格式。
Matlab模拟与仿真在控制系统设计中的应用引言:控制系统是现代科学技术中的重要组成部分,广泛应用于工业生产、交通运输、航空航天等领域。
控制系统的设计和优化对提高生产效率、降低能源消耗、保证安全性具有重要意义。
然而,真实系统的调试和优化需要大量的时间和成本,同时存在一定的风险。
为了克服这些困难,Matlab模拟与仿真成为了控制系统设计中不可或缺的工具。
本文将探讨Matlab模拟与仿真在控制系统设计中的应用,并深入探讨其优势和局限性。
一、Matlab在控制系统建模中的应用控制系统的建模是设计过程的关键一步,用于描述系统的物理特性和动态行为。
Matlab提供了强大的工具和函数库,可用于快速、准确地建立控制系统的数学模型。
其中最常用的是State Space(状态空间)模型和Transfer Function(传递函数)模型。
State Space模型是描述系统动态的一种方法,通过一组一阶微分方程表示系统的状态和输入输出关系。
利用Matlab,我们可以根据物理方程和参数创建State Space模型,并进行参数调整与优化。
Matlab提供了函数进行状态空间模型的系统响应分析和仿真,如step(阶跃响应)、impulse(冲击响应)等。
这使得我们能够快速评估系统的稳定性、性能和动态特性,为优化控制器提供依据。
Transfer Function模型是描述系统频率响应的一种方法,将输入和输出之间的关系表示为拉普拉斯变换的比值。
Matlab提供了一系列函数用于创建和分析传递函数模型,如tf(创建传递函数)、bode(频率响应)、nyquist(奈奎斯特图)等。
通过这些函数,我们能够快速分析系统的稳定性、频率响应和幅度相位特性,帮助我们理解系统的行为以及设计合适的控制器。
二、Matlab在控制系统仿真中的应用仿真是控制系统设计中必不可少的环节,用于模拟和验证设计的可行性和性能。
Matlab提供了完善的仿真工具,可进行开环仿真和闭环仿真。
Matlab中的模型预测控制方法介绍一、引言在控制系统领域,模型预测控制(Model Predictive Control,简称MPC)是一种经典且高效的控制方法。
它基于数学模型的预测能力,通过优化控制变量序列,实现对系统状态的最优化调节。
在Matlab中,MPC方法得到了广泛应用,并通过Matlab的建模和优化工具箱实现了方便的开发和调试环境。
二、MPC方法的基本原理MPC方法的核心思想是通过预测系统未来的动态行为,来优化控制策略。
在MPC中,首先需要建立数学模型描述系统的动态行为,并将其转化为离散形式。
然后,根据模型预测出系统未来一段时间的状态和输出,通过对控制变量序列进行优化,得到最优的控制策略。
最后,根据所得到的控制策略实施控制动作,并反馈实际的系统输出,用于调整下一次的控制策略。
三、Matlab中的MPC建模工具箱为了方便用户使用MPC方法,MathWorks公司开发了专门的MPC工具箱。
MPC工具箱提供了一系列用于建模、仿真和优化的函数和工具,使得使用MPC方法更加简单和高效。
通过MPC工具箱可以方便地导入系统模型、设置控制目标、调节控制权重和约束条件,并进行模拟和优化。
四、MPC建模实例下面我们通过一个实例来介绍如何在Matlab中使用MPC方法进行建模和控制设计。
假设我们需要设计一个MPC控制器来控制一个加热系统的温度。
首先,我们需要获取加热系统的数学模型,并将其离散化得到离散时间步长的动态方程。
然后,通过MPC工具箱中的函数将模型导入Matlab环境中。
在导入模型后,我们需要设置控制目标和约束条件。
例如,我们可以设置目标温度为30摄氏度,并限制加热功率不超过100瓦特。
此外,我们还可以设置对温度变化率的约束,以确保系统动态响应的稳定性。
在设置好目标和约束后,我们可以使用MPC工具箱中的仿真函数模拟系统的响应,并通过图形界面直观地观察温度的变化趋势。
最后,我们需要调节控制权重以求得最优的控制策略。
动态矩阵控制算法实验报告院系:电子信学院姓名:***学号:*********专业:控制理论与控制工程导师:***MATLAB环境下动态矩阵控制实验一、实验目的:对于带有纯滞后、大惯性的研究对象,通过动态控制矩阵的MATLAB的直接处理与仿真实验,具有较强的鲁棒性和良好的跟踪性。
输入已知的控制模型,通过对参数的选择,来取的良好的控制效果。
二、实验原理:动态矩阵控制算法是一种基于被控对象非参数数学模型的控制算法,它是一种基于被控对象阶跃响应的预测控制算法,以对象的阶跃响应离散系统为模型,避免了系统的辨识,采用多步预估技术,解决时延问题,并按照预估输出与给定值偏差最小的二次性能指标实施控制,它适用于渐进稳定的线性对象,系统动态特性中存在非最小相位特性或纯滞后都不影响算法的直接使用。
三、实验环境:计算机MATLAB2016b四、实验步骤:影响控制效果的主要参数有:1)采样周期T与模型长度N在DMC中采样周期T与模型长度N的选择需要满足香农定理和被控对象的类型及其动态特性的要求,通常需要NT后的阶跃响应输出值接近稳定值。
2)预测时域长度PP对系统的快速性和稳定性具有重要影响。
为使滚动优化有意义,应使P包含对象的主要动态部分,P越小,快速性提高,稳定性变差;反之,P越大,系统实时性降低,系统响应过于缓慢。
3)控制时域长度MM控制未来控制量的改变数目,及优化变量的个数,在P确定的情况下,M 越小,越难保证输出在各采样点紧密跟踪期望输出值,系统响应速度缓慢,可获得较好的鲁棒性,M越大,控制机动性越强,改善系统的动态性能,但是稳定性会变差。
五、实例仿真(一)算法实现设GP(s)=e-80s/(60s+1),采用DMC后的动态特性如图1所示,采样周期T=20s,优化时域P=10,M=2,建模时域N=20。
MATLAB程序1:g=poly2tfd(1,[60 1],0,80);%通用传函转换为MPC模型delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model=tfd2step(tfinal,delt,nt,g);%传函转换为阶跃响应模型plant=model;%进行模型预测控制器设计p=10;m=2;ywt=[];uwt=1;%设置输入约束和参考轨迹等控制器参数kmpc=mpccon(plant,ywt,uwt,m,p);%模型预测控制器增益矩阵计算tend=1000;r=1;%仿真时间[y,u,yrn]=mpcsim(plant,model,kmpc,tend,r);%模型预测控制仿真t=0:20:1000;%定义自变量t的取值数组plot(t,y)xlabel(‘图一DMC控制动态响应曲线(time/s)’);ylabel(‘响应曲线’);结果如下:Percent error in the last step response coefficientof output yi for input uj is :2.2e-05%Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.003 seconds.结论:采用DMC后系统调整时间减小,响应的快速性好,无超调。
二、P和M对系统性能的影响1、P对系统性能的影响P表示我们对K时刻起未来多少步的输出逼近期望值感兴趣,T=20,p=6,10,20时的响应曲线。
Matlab程序2:g=poly2tfd(1,[60 1],0,80);%通用传函转换为MPC模型delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model=tfd2step(tfinal,delt,nt,g);%传函转换为阶跃响应模型plant=model;%进行模型预测控制器设计p1=6;p2=10;p3=20;%优化时域m=2;%控制时域ywt=[];uwt=1;%设置输入约束和参考轨迹等控制器参数kmpc1=mpccon(plant,ywt,uwt,m,p1);%模型预测控制器增益矩阵计算kmpc2=mpccon(plant,ywt,uwt,m,p2);kmpc3=mpccon(plant,ywt,uwt,m,p3);tend=1000;r=1;%仿真时间[y1,u,yrn]=mpcsim(plant,model,kmpc1,tend,r);%模型预测控制仿真[y2,u,yrn]=mpcsim(plant,model,kmpc2,tend,r);[y3,u,yrn]=mpcsim(plant,model,kmpc3,tend,r);t=0:20:1000;%定义自变量t的取值数组plot(t,y1,t,y2,t,y3)legend('1-p=6,2-p=10,3-p=20');xlabel('图二p不同对系统性能的影响(time/s)');ylabel(‘响应曲线’);结果l:Percent error in the last step response coefficientof output yi for input uj is :2.2e-05%Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.003 seconds.Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.003 seconds.Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.002 seconds.>>结论:p越大,系统的快速性变差,系统稳定性增强,减小p,系统快速性变好,系统稳定性变差。
2.M对系统的影响T=20,P=20 N=20 m=4、2、1 时的控制规律MATLAB程序3:g=poly2tfd(1,[60 1],0,80);%通用传函转换为MPC模型delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model=tfd2step(tfinal,delt,nt,g);%传函转换为阶跃响应模型plant=model;%进行模型预测控制器设计p=20;m1=4;m2=2;m3=1;ywt=[];uwt=1;%设置输入约束和参考轨迹等控制器参数kmpc1=mpccon(plant,ywt,uwt,m,p1);%模型预测控制器增益矩阵计算kmpc2=mpccon(plant,ywt,uwt,m,p2);kmpc3=mpccon(plant,ywt,uwt,m,p3);tend=1000;r=1;%仿真时间[y1,u,yrn]=mpcsim(plant,model,kmpc1,tend,r);%模型预测控制仿真[y2,u,yrn]=mpcsim(plant,model,kmpc2,tend,r);[y3,u,yrn]=mpcsim(plant,model,kmpc3,tend,r);t=0:20:1000;%定义自变量t的取值数组plot(t,y1,t,y2,t,y3)legend('1-m=4,2-m=2,3-m=1');xlabel('图二p不同对系统性能的影响(time/s)');ylabel(‘响应曲线’);结果;Percent error in the last step response coefficientof output yi for input uj is :2.2e-05%Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000 Simulation time is 0.003 seconds. Time remaining 1000/1000 Time remaining 800/1000 Time remaining 600/1000 Time remaining 400/1000 Time remaining 200/1000 Time remaining 0/1000 Simulation time is 0.003 seconds. Time remaining 1000/1000 Time remaining 800/1000 Time remaining 600/1000 Time remaining 400/1000 Time remaining 200/1000 Time remaining 0/1000 Simulation time is 0.002 seconds. >>三模型失配时的响应曲线模型失配时GM(s)GP(s),当GM(s)=2e-50s/(40s+1)时的响应曲线,为图4所示Matlab程序4:g1=poly2tfd(1,[60 1],0,80);%通用传函转换为MPC模型g2=poly2tfd(2,[40 1],0,50);delt=20; %采样周期nt=1; %输出稳定性向量tfinal=1000; %截断时间model1=tfd2step(tfinal,delt,nt,g1);%传函转换为阶跃响应模型model2=tfd2step(tfinal,delt,nt,g2);plant1=model1;%进行模型预测控制器设计plant2=model2;p=10;m=2;ywt=[];uwt=1;%设置输入约束和参考轨迹等控制器参数kmpc1=mpccon(plant1,ywt,uwt,m,p);%模型预测控制器增益矩阵计算kmpc2=mpccon(plant2,ywt,uwt,m,p);tend=1000;r=1;%仿真时间[y1,u,yrn]=mpcsim(plant1,model1,kmpc1,tend,r);%模型预测控制仿真[y2,u,yrn]=mpcsim(plant2,model2,kmpc2,tend,r);t=0:20:1000;%定义自变量t的取值数组plot(t,y1,t,y2,)legend('1-模型未失配,2-模型未失配');xlabel('图四模型失配响应曲线(time/s)');ylabel(‘响应曲线’);结果分析:Percent error in the last step response coefficientof output yi for input uj is :2.2e-05%Percent error in the last step response coefficient of output yi for input uj is :4.8e-09%Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.004 seconds.Time remaining 1000/1000Time remaining 800/1000Time remaining 600/1000Time remaining 400/1000Time remaining 200/1000Time remaining 0/1000Simulation time is 0.002 seconds.。