当前位置:
文档之家› 基于MatlabGUI的预测控制仿真平台设计
基于MatlabGUI的预测控制仿真平台设计
2.2 仿真算法中的几个问题
作为仿真平台,对于算法应该具有可扩展性,并且提供
良好的接口,以便其他算法动态加载。本平台主要针对预测
控制的典型算法,如 DMC,GPC,MAC 的预测控制算法进
行设计,并且对于其他复杂的预测控制算法(如非线性 MPC
算法,鲁棒 MPC 算法等)提供预留接口。下面就离散化仿
as + b s2 + cs + d
也作类似变换。如果
yi,j
是由这两
个环节的不同阶次合成,则每个环节都对应于这样一类递推
关系,所得到的输出再合成为 yi,j,而第 i 个输出 yi 是由各个 输入 ui 所得到的 yi,j 线性叠加而成,这样就可以精确的计算 出仿真输出,如图 2 所示。
图 2 离散仿真计算仿真输出
引 言1
1 仿真平台总体设计
预测控制(Predictive Control)是由 Richalet 等人[1,2]于 1978 年首次提出的。近三十年来,预测控制被广泛应用于 工业领域,特别是针对复杂的控制对象和多样化的控制要 求,具有很好的控制效果。对于预测控制的理论和方法研究, 也始终是控制的热点领域之一。
Abstract:Dealing with the multi-variable predictive control system, from the point of view on avoiding Matlab simulation errors, a new method was proposed, in which the predictive model was decentralized and analyzed accurately. It helps to prove some related conclusions of predictive control. At the same time, Graphic User Interface (GUI) of Matlab was used to design a simulation platform of predictive control, which provides good interaction and extensibility. At last, some simulation examples were given to show the effectiveness of the platform. Key words:predictive control; GUI; simulation platform; extensibility
预测控制理论和方法的研究往往需要科学计算工具的 帮助。Matlab 作为一种拥有高速性能数值计算能力的科学 软件,在预测控制研究中得到了广泛的应用。特别是对于当 前把预测控制的复杂问题归结为 LMI(线性矩阵不等式)标 准形式之后,更加具有重要意义。然而使用 Matlab 的预测 控制工具箱进行系统仿真仍存在不少问题,突出的是各种新 算法难以加载,对模型失配的情况难以验证。特别对于求解 微分方程,Matlab 使用数值方法产生的误差可能会影响预测 控制理论的精确验证。因此,对于预测控制的研究有必要建 立 一 个 更 强 有 力 的 仿 真 平 台 。 本 文 利 用 Matlab GUI (Graphical User Interfaces)开发了预测控制的仿真平台软 件,为无约束和有约束多变量系统施加预测控制算法提供人 机交互的仿真环境,并且给出仿真结果分析。
(2) 提供一定的可扩展性。通过给定接口,实现新算法 (M 文件或 C 文件)的动态加载。
·2778·
第 18 卷第 10 期 2006 年 10 月
秦 辉, 等:基于 Matlab GUI 的预测控制仿真平台设计
Vol. 18 No. 10 Oct., 2006
预测控制的仿真平台之所以基于 Matlab GUI 进行设 计,是为了依托 Matlab 环境提供的基本科学计算,减少开 发周期。通常而言,Visual Basic/C++,Java 等面向对象的 程序语言是设计平台很好的工具,这里之所以选择 Matlab 是因为其提供了丰富的科学计算函数,比如实现预测控制算 法往往需要的各种向量矩阵运算,线性方程和二次规划的求 解。因此可借鉴 Matlab 基本的 API 函数,比如矩阵求逆 (inv)、矩阵维数(size)、线性方程求解(X=A\B),这些 均是其他语言所无法媲美的。更为重要的是,Matlab GUI 开发环境提供了创建用户界面的捷径。在这一环境中,可以 方便地创建各种图形句柄对象,实现仿真平台的用户界面。
收稿日期:2005-07-20
修回日期:2006-05-19
基金项目:国家自然科学基金(60274013,60474002);上海市科技发展
基金(04DZ11008)。
作者简介:秦辉(1981-), 男, 上海人, 硕士生, 研究方向为预测控制、大
系统优化策略等;席裕庚(1946-), 男, 上海人, 教授, 博导, 研究方向为
(1) 模型预测控制工具箱一般调用 Matlab 的基本 API 函数,在求解微分方程等问题时会使用某些数值方法(如欧 拉法,欧拉预估-校正法,龙格-库塔法等)。这些求解过程 会引入截断误差、舍入误差和数值稳定性等问题,这对于精 确仿真分析是不利的。
(2) 模型预测控制工具箱仅仅提供了基本函数,并未针 对一类问题给出一整套设计方案,也未给出仿真结果分析。
− −
e− pT e− pT
(4)
则输入输出的递推关系为:
·2779·
第 18 卷第 10 期 2006 年 10 月
系统仿真学报
Vol. 18 No. 10 Oct., 2006
yi, j (k
+ 1)
=
e− pT
yi, j (k ) +
b p
(1 − e− pT )u j (k )
(5)
对标准环节
(3) 一般 Matlab 控制台程序以命令形式调用模型预测 控制工具箱的函数,这种形式往往不象人机交互界面那样直 观,也不易数据处理,而且给程序代码的维护带来了不少困难。
正因为这些困难与不足,有必要设计基于 Matlab GUI 的预测控制仿真平台,同时它还能够:
(1) 提供良好的人机交互仿真环境,便于用户在各种参 数条件下的仿真实验。
图 1 系统框架模块
值得注意的是,算法嵌入模块在有无约束时处理方式的 不同。对于无约束问题来说,可以直接利用输入模型和系统 参数,离线计算出控制输出量的解析计算公式,再进行在线
仿真。而对于有约束问题而言,需要组成非线性规划问题求 解控制量,并在线实施。在这两种情况下,必须构造不同的 算法子模块,以供算法主模块调用。
真计算和无约束控制量计算问题作进一步的说明。
在仿真模块中,对于线性多变量系统而言,以传递函数
形式给出仿真对象:
⎡ g1,1 g1,2 L g1,nv ⎤
Y
(s)
=
G ( s )U
(s)
=
⎢ ⎢ ⎢
g 2,1 M
g 2 ,2 M
L O
g 2,nv M
⎥
⎥ ⎥
U
(s)
(1)
⎢ ⎣
g
ny
,1
g ny ,2
第 18 卷第 10 期 2006 年 10 月
系 统 仿 真 学 报© Journal of System Simulation
Vol. 18 No. 10 Oct., 2006
基于 Matlab GUI 的预测控制仿真平台设计
秦 辉,席裕庚
(上海交通大学自动化研究所, 上海 200030)
摘 要:针对多变量预测控制系统,从克服 Matlab 仿真中数值解的弊端出发,提出了将预测模型
2 基于 Matlab GUI 仿真平台的实现
本平台的实现是在 Matlab 的图形用户界面(GUI)设计环 境下完成。利用 Matlab 的 API 函数与自定义模块结合形成总 体算法框架,并且整合仿真模块,以形成完整的仿真平台。
2.1 系统详细实现
系统详细设计是平台实现的具体步骤。首先是输入输出 设计:通过输入参数构建系统对象,并且离散化,以便进行 算法设计。其次是算法设计:无约束的预测控制通过上述描 述的算法完成控制向量的计算,进而设计如下函数:function [y,u] = mympcsim(plant, model, controller, tfinal, setpoint)来 仿真系统控制输入和系统的输出;而对于有约束预测控制算 法来说,设计如下函数:function [y,u] =mycmpc(plant, model, ywt,uwt,M,P,tend,r,ulim,ylim),这里 ulim 和 ylim 是 u 和 y 的 约束。最后是数据分析设计:使用 axis 控件来展现各种响 应曲线,并且利用顺序搜索法对曲线各点遍历,从而确定用 户搜索数据节点。
预测控制、大系统和复杂系统控制、智能机器人系统与技术等。
总体设计往往是系统设计的核心。系统设计的初衷、目 的和总体构架等应得到通盘考虑。这将有利于设计出高效实 用的仿真平台。
1.1 系统设计分析
目前在 Matlab 中具有模型预测控制工具箱,它提供了 分析和设计模型预测控制系统的一系列函数。然而在实际应 用中存在如下不足:
如图 1 所示,输入模块主要完成线性对象、模型(两者可 以不同)参数及系统约束的输入。线性对象的输入可采用传 递函数或状态空间形式。以传递函数为例,需传入传递函数 矩阵各个单元的分子分母系数。输入模块将模型和约束传入 算法模块,完成各种预测控制算法(包括 DMC[3]、MAC、 GPC[4]等算法)的加载,以便在线计算出最优控制量。仿真 模块是对实际对象的模拟,它根据算法模块给出的控制输入 仿真计算出系统输出,而模型预测模块则利用算法已知的模 型信息预测控制输出。在模型与对象失配时,这两个模块的 输出不同,误差信息反馈到算法模块中进行校正,仿真模块 的输出结果传递给输出模块,输出模块主要完成以图形展现 各类响应曲线,显示数值结果,进行数据分析。上述模块均 由主控模块来协调和控制,以完成系统整体以滚动循环方式 的仿真。