手机网站打开手机app,企业解决方案ppt,四海网络网站建设建站,wordpress博客统计小工具系列文章目录
MATLAB 模型预测控制#xff08;MPC#xff09; 文章目录 系列文章目录前言一、使用 MPC Designer 设计控制器1.1 CSTR 模型1.2 导入被控对象并定义 MPC 结构1.3 定义输入和输出通道属性1.4 配置仿真场景1.5 配置控制器水平线1.6 定义输入约束条件1.7 指定控制…系列文章目录
MATLAB 模型预测控制MPC 文章目录 系列文章目录前言一、使用 MPC Designer 设计控制器1.1 CSTR 模型1.2 导入被控对象并定义 MPC 结构1.3 定义输入和输出通道属性1.4 配置仿真场景1.5 配置控制器水平线1.6 定义输入约束条件1.7 指定控制器调整权重1.8 消除输出超调1.9 测试控制器抗干扰能力1.10 指定浓度输出约束条件1.11 删除被控对象、控制器和场景 二、使用步骤1.引入库2.读入数据 总结 前言
模型预测控制工具箱™ 提供了用于开发模型预测控制 (MPC) 的函数、应用程序、Simulink® 模块和参考示例。对于线性问题该工具箱支持设计隐式、显式、自适应和增益调度 MPC。对于非线性问题您可以实现单级和多级非线性 MPC。该工具箱提供可部署的优化求解器还能让您使用自定义求解器。
您可以在 MATLAB® 和 Simulink 中通过运行闭环仿真来评估控制器性能。对于自动驾驶您还可以使用提供的符合 MISRA C™ 和 ISO 26262 标准的模块和示例快速开始车道保持辅助、路径规划、路径跟踪和自适应巡航控制应用。
工具箱支持 C 和 CUDA® 代码以及 IEC 61131-3 结构化文本生成。 一、使用 MPC Designer 设计控制器
本例说明如何使用 MPC Designer 为连续搅拌槽反应器 (CSTR) 设计模型预测控制器。
1.1 CSTR 模型
连续搅拌罐反应器CSTR的线性化模型见 CSTR 模型。在该模型中前两个状态变量分别是试剂浓度此处称为 CA单位为 kmol/m3和反应器温度此处称为 T单位为 K而前两个输入量分别是冷却剂温度Tc单位为 K用于控制被控对象和流入的进料试剂浓度 CAf单位为 kmol/m3通常被视为未测量的干扰。
在本例中冷却剂温度与标称值的变化范围为 ±10 度变化速率为每秒 ±2 度。
创建 CSTR 系统的状态空间模型。
A [ -5 -0.3427;47.68 2.785];
B [ 0 10.3 0];
C flipud(eye(2));
D zeros(2);
CSTR ss(A,B,C,D);1.2 导入被控对象并定义 MPC 结构
mpcDesigner在 MPC 设计器 选项卡的 结构 部分单击 “MPC 结构”。
在 通过导入定义 MPC 结构 对话框中在 从 MATLAB 工作区选择一个被控对象模型或一个 MPC 控制器 表中选择 CSTR 模型。
由于 CSTR 是一个稳定的连续时间 LTI 系统因此 MPC Designer 将控制器采样时间设置为 0.1 Tr其中 Tr 是 CSTR 的平均上升时间。在本例中在指定 MPC 控制器采样时间字段中输入 0.5 秒的采样时间。
默认情况下所有被控对象输入均定义为操纵变量所有被控对象输出均定义为测量输出。在 分配被控对象 i/o 通道 部分分配输入和输出通道索引以便 第一个输入即冷却液温度为操纵变量。 第二个输入进料浓度是一个未测量的干扰。 第一个输出反应器温度是一个测量输出。 第二个输出反应物浓度是一个未测量的输出。 单击导入。
应用程序会将 CSTR 被控对象导入数据浏览器。以下内容也会添加到数据浏览器中 mpc1 - 使用 CSTR 作为内部模型创建的默认 MPC 控制器。 scenario1 - 默认模拟场景。
该程序运行默认模拟场景并更新输入响应和输出响应图。闭环系统能够成功跟踪所需的测量输出而未测量输出则不然。由于被控对象只有一个操纵变量因此这种行为是意料之中的。 一旦定义了 MPC 结构就不能在当前的 MPC Designer 会话中进行更改。要使用不同的通道配置请启动新的应用程序会话。
1.3 定义输入和输出通道属性
在 MPC Designer 选项卡上选择 I/O Attributes。
在 输入和输出通道规格 对话框的 名称 栏中为每个输入和输出通道指定一个有意义的名称。
在 单位 栏中可选择指定每个通道的单位。
由于状态空间模型是使用与标称工作点的偏差来定义的因此请将每个输入和输出通道的标称值保持为 0。
各通道的比例因子保持默认值 1。 单击 “确定”。
输入响应和输出响应绘图标签会更新以反映新的信号名称和单位。
1.4 配置仿真场景
在 MPC 设计器 选项卡的 场景 部分单击 “编辑场景”“场景 1”。
在 模拟场景 对话框中将模拟持续时间设置为 20 秒。
在参考信号表的第一行指定步长为 2时间为 5。
在信号列第二行选择常量参考将浓度设定点保持在输入和输出通道规格对话框中定 义的标称值上本例中标称值为零。 默认设置为模拟参考反应器温度 T 在 5 秒钟内发生 2 开尔文的阶跃变化。
单击确定。
响应图更新以反映新的模拟方案配置。CA 的参考值不再是阶跃值而是等于零的常数。
在 MPC Designer 左下方的 情景 部分单击情景 1。第二次单击情景 1并将情景重命名为 stepT。
1.5 配置控制器水平线
在 调整 选项卡的 水平线 部分指定预测水平线为 15控制水平线为 3。 响应图更新以反映新的范围。输入响应图显示控制操作违反了对冷却剂温度变化率的限制要求。
1.6 定义输入约束条件
在 设计 部分单击 “约束”。
在 约束 对话框的 输入和输出约束 部分的 输入 行中分别在 最小值 和 最大值 列中输入冷却剂温度的上下限。
在 RateMin 和 RateMax 栏中指定变化率限制。 单击 “确定”。 输入响应图显示了受控变量的控制行动。输入响应图显示了受控变量的控制行动。
1.7 指定控制器调整权重
在 调整 选项卡的 设计 部分单击 “权重”。
在输入权重表中将操纵变量 (MV) 比率权重增加到 0.3。在控制器优化成本函数中增加 MV 率权重可抑制 MV 的大幅变化。
在输出权重表中保留默认权重值。默认情况下所有未测量的输出权重为零。
由于只有一个受控变量如果控制器试图将两个输出都保持在特定的设定点上则一个或两个输出的响应都会出现稳态误差。由于控制器会忽略权重为零的输出设定点因此将浓度输出权重设置为零可实现反应釜温度设定点跟踪且稳态误差为零。 单击 “确定”。 输入响应图显示了较为保守的控制操作这导致输出响应速度较慢。
1.8 消除输出超调
假设应用要求输出响应零过冲。在 性能调整 选项卡上向左拖动 闭环性能 滑块直到输出响应没有过冲。向左移动该滑块可同时增加控制器的操纵速率权重和减少输出变量权重使控制器更加稳健。假设应用要求输出响应零过冲。在 性能调整 选项卡上向左拖动 闭环性能 滑块直到输出响应没有过冲。向左移动该滑块可同时增加控制器的操纵速率权重和减少输出变量权重使控制器更加稳健。 使用 闭环性能 滑块调整控制器调整权重时MPC Designer 不会更改您在 权重 对话框中指定的权重。相反滑块控制一个调整系数该系数与用户指定的权重一起用于定义实际控制器权重。
当滑块居中时该系数为 1当滑块向左移动时其值减小当滑块向右移动时其值增大。权重系数乘以操纵变量和输出变量权重再除以权重对话框中的操纵变量速率权重。因此移动滑块增加鲁棒性会降低 OV 和 MV 权重增加 MV 率权重从而放宽对输出的控制使控制动作更加保守。
要查看实际控制器权重请将控制器导出到 MATLAB® 工作区然后查看导出控制器对象的权重属性。
1.9 测试控制器抗干扰能力
在过程控制应用中干扰抑制往往比设定点跟踪更重要。模拟控制器对进料浓度阶跃变化未测量干扰的响应。
在 MPC 设计器 选项卡的 情景 部分单击 “绘制情景”“新建情景”。
在模拟场景对话框中将模拟持续时间设为 20 秒。
在参考信号表的第一行信号下拉列表中选择步长然后指定步长为 2时间为 5。在第二行的信号列中保持恒定参考以将浓度设定点保持在标称值上。
在 未测量的干扰 行的信号下拉列表中选择 “步长”然后指定步长为 0.2时间为 5。 单击确定。
应用程序会将新方案添加到数据浏览器中并创建新的相应输入响应图和输出响应图。
在数据浏览器的 方案 部分将 NewScenario 重命名为 distReject。 从输出响应图中可以看出闭环系统仍能达到预期的反应器温度。在这种情况下所需的控制动作加上输入干扰会导致输出浓度 CA 稳态下降 0.1 kmol/m3。
1.10 指定浓度输出约束条件
之前您定义了控制器调整权重以实现跟踪反应釜温度设定点且稳态误差为零的主要控制目标。这样做可以使未测量的反应器浓度自由变化。假设反应器浓度相对于其标称值降至 0.05 kmol/m3 以下时会发生不必要的反应。要限制反应釜浓度请指定输出限制。
在 设计 部分的 调谐 选项卡上单击 “约束”。
在 约束 对话框的 输入 和 输出约束 部分的 输出 表第二行中指定最小未测量输出 (UO) 值为 -0.05。
默认情况下所有输出约束都是软约束即最小ECR 值和最大ECR 值都大于零。要进一步软化未测量输出 (UO) 约束请增加其最大ECR 值。 单击 “确定”。 在输出响应图中反应器浓度 CA 在 10 秒后稳定在-0.05 kmol/m3 的水平。由于只有一个控制变量控制器在两个相互竞争的控制目标之间进行了折中 温度跟踪和满足约束条件。较软的输出约束使控制器可以牺牲更多的约束要求来改善温度跟踪。
由于输出约束条件较软控制器可通过允许少量违反浓度约束条件来保持一定的温度控制水平。一般来说根据您的应用要求您可以尝试使用不同的约束设置来实现可接受的控制目标折衷。
输出控制器 在 调谐 选项卡的 分析 部分单击 导出控制器 将调谐控制器 mpc1 保存到 MATLAB 工作区。
1.11 删除被控对象、控制器和场景
要删除被控对象、控制器或场景请在 数据浏览器 中右键单击要删除的项目然后选择 “删除”。
不能删除当前控制器。此外如果被控对象是唯一列出的工厂或方案则无法删除。
如果某个工厂被任何控制器或场景使用则无法删除该工厂。
要删除多个被控对象、控制器或场景请按住 Shift 键并单击要删除的每个项目。
二、使用步骤
1.引入库 代码如下示例 import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings(ignore)
import ssl
ssl._create_default_https_context ssl._create_unverified_context2.读入数据
代码如下示例
data pd.read_csv(https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv)
print(data.head())该处使用的url网络请求的数据。 总结
提示这里对文章进行总结
例如以上就是今天要讲的内容本文仅仅简单介绍了pandas的使用而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。