主要内容

为确定植物模型设计MPC控制器

您可以定义模型预测控制器的内部植物模型使用一个线性模型与系统辨识工具箱™软件。您可以确定植物模型和设计MPC控制器交互地使用软件或编程方式在命令行。确定植物模型的更多信息,请参阅识别工厂的数据

系统识别应用程序不支持金宝appMATLAB®在线™

设计控制器识别植物使用应用程序

这个例子展示了如何使用一个交互式地设计一个模型预测控制器识别植物模型。首先,估计工厂使用的数据模型系统识别应用程序,然后设计一个MPC控制器通过导入确认工厂MPC设计师

负载的输入/输出数据

载荷识别的输入和输出数据。

负载(fullfile (matlabroot“例子”,“货币政策委员会”,“数据”,“plantIO”))

这个命令导入植物输入信号,u输出信号,y,样品时间,TsMATLAB的工作区。

打开系统识别应用程序。

systemIdentification

系统识别下的应用,导入数据中,选择时间域数据

系统辨识的左上部分应用,显示时域数据被选中。

在“导入数据”对话框中,指定输入,输出,样品时间使用MATLAB的数据工作区。

同时,指定数据名称作为ioData起始时间作为0

进口数据dialob盒子。

点击进口,然后关闭。应用程序导入数据,创建一个iddata对象与指定名称和信号特性,并将这个对象添加到数据视图区域。

系统辨识的左上部分应用,显示ioData数据视图和工作数据部分。

数据进行预处理

通常情况下,你必须进行预处理之前识别I / O数据估计模型。对于这个示例,把补偿从输入和输出信号通过消除趋势数据。在系统识别下的应用,进行预处理中,选择删除趋势

系统辨识的左上部分应用,显示删除趋势bae选中。

这个应用程序创建一个数据对象,ioDatad使用预处理数据,将这个对象添加到数据视图区域。

预处理识别数据的更多信息,请参阅数据进行预处理(系统辨识工具箱)

估计线性模型

使用去趋势数据,ioDatad为模型估计,从第一拖动对应的数据对象数据视图区域工作数据

系统辨识的左上部分应用,显示ioDatad卷入工作数据部分。

在状态空间模型估计估计中,选择状态空间模型

左部的系统识别应用,显示状态空间模型被选中。

在估计状态空间模型对话框中,指定的属性估计模型和估计的选择。对于这个示例,估计二阶离散时间模型,把其他评估选项为默认值。

估计状态空间模型对话框。

估计状态空间模型的更多信息,请参阅状态空间模型(系统辨识工具箱)

点击估计。应用状态空间模型估计,魔法石,第1章,增加了模型模型视图区域。

系统辨识的右上部分应用,显示出魔法石,第1章的模型视图区域。

估计模型具有一个输入和一个无边无际的噪声测量组件。点击关闭对话框关闭估计状态空间模型。

进口确认工厂MPC设计师

使用魔法石,第1章MPC控制设计,首先导出模型的MATLAB工作区。

魔法石,第1章模型视图区域到工作空间

系统识别的左上部分应用,显示出魔法石,第1章被拖入到工作区区域。

开放MPC设计师。在MATLAB命令行中,键入:

mpcDesigner

进口识别模型,MPC设计师,点击MPC结构。在定义MPC结构通过导入对话框中,选择魔法石,第1章从表中。

定义MPC结构通过导入对话框。

点击进口

MPC设计器窗口,显示闭环阶跃响应。植物输入左边和植物输出是在右边,

提示

你也可以进口开立的识别模型MPC设计师

mpcDesigner(魔法石,第1章)

app将确定工厂转换为离散时间,用状态空间模型指定的采样时间,如果有必要,并创建一个默认的MPC控制器,mpc1,其中:

  • 测量输入识别植物是一个操纵变量。

  • 确定植物的输出是一个测量输出。

默认情况下,MPC控制器丢弃无边无际的噪声组件从你的识别模型。将噪声通道配置为无节制的障碍,你必须首先创建一个增广的状态空间模型确定模型。有关更多信息,请参见噪声通道配置为无节制的干扰

请注意

你也可以导入一个线性模型到现有识别MPC设计师会话。在MPC设计师,点击进口植物。在导入植物模型对话框中,从表中选择一个识别模型。

进口植物模型对话框。

只有确定模型的I / O配置兼容当前货币政策委员会结构显示在导入植物模型对话框。如果当前货币政策委员会结构包括无边无际的干扰,噪声通道的识别模型转换为不可测量的干扰。否则,噪声通道被丢弃。

I / O指定属性

改善控制器性能和简化控制器调优,指定以下属性为每个输入和输出信号:

  • 比例因子——规模接近其跨度每个信号的因素,这是它的最大和最小值之间的差异。扩展简化控制器重量调优和提高了数字控制器的调节。有关更多信息,请参见指定规模因素

  • 名义价值——一个偏移量适用于每个信号对应于名义操作条件你收集识别数据;这是补偿被消除趋势数据。名义值指定地方控制器在同一操作点植物,这是特别重要的,当植物是一个非线性系统。

MPC设计师,在MPC设计师选项卡上,单击I / O属性

在对话框中,输入和输出通道规范指定名义价值比例因子输入和输出信号。

进口植物模型对话框。

点击好吧

MPC设计器窗口,显示更新后的闭环响应。

默认的控制器跟踪输出的参考价值,然而控制器最初的反应是积极的。

提示

您可以指定名义价值比例因子使用表达式如意思是(u)马克斯(y) - min (y)分别在哪里uyI / O信号从MATLAB工作区。

输入和输出通道的上部规范对话框,显示的意思(u)在te标称值输入框。

配置模拟场景

MPC设计师,在场景部分中,点击编辑场景>scenario1

在模拟场景对话框中,指定一个仿真时间5秒。

参考信号节中,保留默认步信号。

上半部分的模拟场景对话框。

点击好的。

优化控制器

调优控制器之前,是一种很好的做法指定控制器样品时间,预测地平线,地平线和控制。既然你发现了一个离散时间工厂模型,控制器自动样品时间来自识别模型。对于这个示例,使用默认的预测和控制的视野。有关更多信息,请参见选择样本时间和视野

使控制器不那么咄咄逼人,调优选项卡,将闭环性能滑块向左。这样做增加了成本函数的体重被控变量变化率,并减少输出变量上的重量。

MPC设计器窗口,显示了闭环性能的滑块,在优化选项卡中,被拖到左边。

输入响应现在更为保守。交换是一个过度和较长的稳定时间增加。

调优控制器权值的更多信息,请参阅调整权重

请注意

如果你的工厂有已知的物理或安全约束,限制输出范围,输入范围,或输入信号变化率,您可以指定这些约束在MPC控制器。如果是这样,之前定义约束优化控制器权重。有关更多信息,请参见指定的约束

设计控制器识别植物在命令行

这个例子展示了如何设计一个模型预测控制器在命令行中使用一个确定植物模型。

加载输入/输出数据。

负载plantIO

这个命令导入植物输入信号,u植物输出信号,y,样品时间,TsMATLAB®工作区。

创建一个iddata从输入和输出数据对象。

mydata = iddata (y, u, Ts);

预处理的I / O数据通过移除补偿(平均值)输入和输出信号。

mydatad =去趋势(mydata);

你也可以通过创建一个删除补偿ssestOptions对象和指定InputOffsetOutputOffset选项。

估计二阶线性使用I / O数据状态空间模型。估计时间通过指定样本的离散时间模型Ts

(魔法石,第1章=党卫军mydatad 2“t”、Ts);

估计模型具有一个输入和一个无边无际的噪声测量组件。

创建一个默认的模型预测控制器识别模型,魔法石,第1章

mpcObj = mpc(魔法石,第1章);
- - >将线性模型从系统辨识工具箱转换为整数。- - >“PredictionHorizon”属性是空的。假设默认10。- - >“ControlHorizon”属性是空的。假设默认2。- - >“权重。ManipulatedVariables”属性是空的。假设默认的0.00000。- - >“权重。ManipulatedVariablesRate”属性是空的。 Assuming default 0.10000. -->The "Weights.OutputVariables" property is empty. Assuming default 1.00000.

默认情况下,控制器丢弃无边无际的噪声组件从你的识别模型。

为了简化优化过程,指定输入和输出信号比例因素。

mpcObj.MV (1)。ScaleFactor = max (u) - min (u);mpcObj.OV (1)。ScaleFactor = max (y) - min (y);

指定的名义值的输入和输出信号。使用您之前的偏移量从I / O数据中删除。

nominalInput =意味着(u);nominalOutput =意味着(y);mpcObj.Model.Nominal。u = nominalInput;mpcObj.Model.Nominal。y = nominalOutput;

配置模拟参考信号。指定一个参考信号五秒钟的时间,单位阶跃的一秒。的初始值参考信号的标称值是输出信号。

outputRef = [nominalOutput * 1 (1 / Ts, 1);(nominalOutput + 1) * (4 / Ts + 1, - 1)];

在调优控制器之前,模拟初始控制器的性能。

sim (mpcObj [], outputRef)
- - >输出假设扰动添加到测量输出通道# 1是集成的白噪声。- - >”模型。噪音" property is empty. Assuming white noise on each measured output.

{“字符串”:“图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。这些对象代表驾驶输入,MPC response1。”,”泰克斯”:[],“乳胶”:[]}

{“字符串”:“图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表驾驶输入,MPC response1。”,”泰克斯”:[],“乳胶”:[]}

默认的控制器跟踪输出的参考价值,然而控制器最初的反应是积极的。

控制器不那么咄咄逼人,同时增加操纵变量的优化重量变化率和减少调优重量为输出变量。

β= 0.37;mpcObj.Weights。MVRate = mpcObj.Weights.MVRate /β;mpcObj.Weights。OVβ= mpcObj.Weights.OV *;

模拟调控制器响应

sim (mpcObj [], outputRef)
- - >输出假设扰动添加到测量输出通道# 1是集成的白噪声。- - >”模型。噪音" property is empty. Assuming white noise on each measured output.

{“字符串”:“图包含一个坐标轴对象。坐标轴对象包含2线类型的对象。这些对象代表驾驶输入,MPC response1。”,”泰克斯”:[],“乳胶”:[]}

{“字符串”:“图包含一个坐标轴对象。坐标轴对象包含一个类型的对象。这些对象代表驾驶输入,MPC response1。”,”泰克斯”:[],“乳胶”:[]}

输入响应现在更为保守。交换是一个过度和较长的稳定时间增加。

噪声通道配置为无节制的干扰

当你使用一个识别模型,创建一个MPC控制器软件默认丢弃任何噪声通道的模型。您可以配置不可测量的干扰的噪声通道增加识别模型。

增强识别模型噪声通道

将噪声通道不可测量的干扰,首先将确定模型,魔法石,第1章利用状态空间模型“增强”选择。在MATLAB命令行中,键入:

ss2 = ss(魔法石,第1章,“增强”);

这个选项创建一个状态空间模型,ss2使用以下输入组:

  • 测量——识别模型的输入通道。

  • 噪音——噪声通道的识别模型。噪声通道的数量匹配输出通道的数量。

    请注意

    系统辨识工具箱软件假定的输入噪音通道是unit-variance高斯噪声。因此,增强模型封装任何噪声识别的动力学模型,如扰动源的集成。

然后,您可以创建一个使用状态空间模型增强MPC控制器。

mpcObj = mpc (ss2);

软件配置测量作为操作变量和输入噪音输入不可测量的干扰。

你也可以增广模型导入MPC设计师

mpcDesigner (ss2)

查看MPC信号配置MPC设计师,在MPC设计师选项卡上,单击MPC结构

视图对话框显示了MPC结构噪声通道作为不可测量的干扰。

配置输入扰动模型

当你确定了模型转换为一个增广状态空间模型,系统辨识工具箱软件假定噪声源unit-variance高斯噪声。然而,默认情况下,MPC控制器模型不可测量的输入作为集成的高斯噪声干扰。在设计控制器时,您可以:

  • 删除的集成商输入扰动模型,简化了控制器。使用这个选项如果条件下实验数据收集识别匹配预期的操作条件。在这种情况下,增强封装了状态空间模型的任何噪声动态识别系统。

  • 保持默认集成白噪声输入扰动模型,从而导致更激进的抗干扰性。使用这个选项如果实验数据收集识别受控条件下可能不匹配预期的操作条件。在这种情况下,控制器补偿噪声动态增强模式不封装。

请注意

当使用MPC设计师,您可以优化您的控制器抗干扰性属性通过调整状态估计滑块。有关更多信息,请参见抗干扰性优化

删除一个积分器的输入扰动模型通道,该通道配置为静态单位增益。例如,删除所有输入扰动模型的集成商渠道,设置输入扰动模型静态增益单位矩阵。在MATLAB命令行中,键入:

setindist (mpcObj ss(眼(Nd)));

在哪里Nd的数量是无限的干扰。

设置一个无边无际的干扰通道的干扰模型静态单位获得使用MPC设计师:

  1. 调优选项卡上,选择评估模型>输入扰动模型

  2. 在对话框中输入扰动模型,更新模型下拉列表中,选择指定一个自定义模型通道的通道

  3. 规范表,干扰下拉列表中,选择白噪声

  4. 指定一个1

  5. 重复步骤3和4为每一个无边无际的干扰。

  6. 应用更改和更新输入扰动模型,点击好吧应用

关于更改输入扰动模型的更多信息,见调整干扰和噪声模型

配置模拟场景

你可以模拟MPC控制器使用unit-variance高斯噪声不可测量的干扰信号,假定的系统辨识工具箱软件。这个场景中模拟实验条件下识别的数据收集。

配置无节制的干扰信号,创建一个MPC模拟选项设置控制器使用mpcsimopt。在MATLAB命令行中,键入:

选择= mpcsimopt (mpcObj);

配置UnmeasuredDisturbance选择使用randn

opt.UnmeasuredDisturbance = randn (T, Nd);

在哪里T仿真步骤的数量和吗Nd的数量是无限的干扰。

模拟控制器使用此选项设置和一个输出参考信号,outputRef

y = sim (mpcObj T outputRef,选择);

配置您的模拟MPC设计师:

  1. 调优选项卡,在编辑场景你想编辑选择仿真场景。

  2. 在仿真场景对话框无边无际的干扰节,在信号中,选择高斯

  3. 指定一个大小1,对应于一个单位方差。

  4. 应用扰动的仿真,从一开始就指定一个时间0

  5. 重复步骤2 - 4为每一个无边无际的干扰通道。

  6. 应用更改和更新MPC设计师响应图,点击好吧应用

另请参阅

应用程序

功能

相关的话题