主要内容

线性化金宝app模型

一般来说,真实系统是非线性的。要为非线性系统设计MPC控制器,可以在Simulink中对设备进行建模金宝app®

虽然MPC控制器可以调节非线性设备,但控制器内使用的模型必须是线性的。换句话说,控制器采用非线性装置的线性近似。这种近似的精度显著地影响控制器的性能。

为了得到这样的线性近似,你线性化在指定位置的非线性装置操作点

请注意

金宝appSimulink控制设计™必须安装软件来线性化非线性Simulink模型。金宝app

您可以线性化Simulink模型:金宝app

线性化使用MATLAB代码

这个例子展示了如何使用MATLAB脚本获得一个植物的线性模型。

对于这个CSTR模型的例子,CSTR_OpenLoop,是线性化的。模型输入是冷却液温度(MPC控制器的操作变量),进料流中的限制反应物浓度和进料温度。模型状态是产物流中极限反应物的温度和浓度。两种状态都被测量并用于反馈控制。

获得稳态工作点

工作点定义了线性化模型的标称条件。它通常是一个稳态条件。

假设你计划用输出浓度操作CSTR,C_A,在 2 k o l / 3. .标称进料浓度为 1 0 k o l / 3. ,进料温度公称为300k。创建一个工作点规范对象来定义稳态条件。

Opspec = operspec(“CSTR_OpenLoop”);Opspec = addoutputspec(Opspec,“CSTR_OpenLoop /装运箱”2);opspec.Outputs(1)。已知=真实;opspec.Outputs(1)。Y = 2;Op1 = findop(“CSTR_OpenLoop”, opspec);
操作点搜索报告:---------------------------------模型CSTR_OpenLoop的操作点搜索报告。(time - varying Components evaluate at time t=0)满足工作点规格。国家:---------- (1.)CSTR_OpenLoop/CSTR/C_A x: 2 dx: -4.6e-12 (0) (2.)CSTR_OpenLoop /装运箱/ T_K x: 373 dx: 5.48 e-11(0)输入 : ---------- ( 1)。CSTR_OpenLoop/冷却液温度u: 299 [-Inf Inf]输出:---------- (1.)CSTR_OpenLoop/CSTR y: 2 (2)

计算工作点为C_A 2 k o l / 3. 而且T_K= 373 k。请注意,稳态冷却剂温度也被给出为299 K,这是MPC控制器被操纵变量的标称值。

指定:

  • 已知输入的值,使用输入。已知的而且Input.u领域的opspec

  • 状态值的初始猜测,请使用State.x领域的opspec

例如,下面的代码指定冷却剂温度为305k和初始的猜测值C_A而且T_K计算稳态工作点前的状态:

Opspec = operspec(“CSTR_OpenLoop”);opspec.States(1)。X = 1;opspec.States(2)。X = 400;opspec.Inputs(1)。已知=真实;opspec.Inputs(1)。U = 305;Op2 = findop(“CSTR_OpenLoop”, opspec);
操作点搜索报告:---------------------------------模型CSTR_OpenLoop的操作点搜索报告。(time - varying Components evaluate at time t=0)满足工作点规格。国家:---------- (1.)CSTR_OpenLoop/CSTR/C_A x: 1.78 dx: -4.8e-14 (0) (2.)CSTR_OpenLoop /装运箱/ T_K x: 377 dx: 5.4 e-13(0)输入 : ---------- ( 1)。CSTR_OpenLoop/Coolant Temperature u: 305输出:无---------- .输出说明

指定线性化输入和输出

如果线性化输入和输出信号已经在模型中定义,如CSTR_OpenLoop,然后用下面的方法得到信号集。

IO = getlinio(“CSTR_OpenLoop”);

否则,指定如下所示的输入和输出信号。

Io (1) = linio(“CSTR_OpenLoop /冷却剂温度”, 1“输入”);Io (2) = linio(“CSTR_OpenLoop /进料浓度”, 1“输入”);Io (3) = linio(CSTR_OpenLoop /进料温度的, 1“输入”);Io (4) = linio(“CSTR_OpenLoop /装运箱”, 1“输出”);Io (5) = linio(“CSTR_OpenLoop /装运箱”2,“输出”);

线性化模型

使用指定的工作点线性化模型,op1,输入/输出信号,io

系统=线性化(“CSTR_OpenLoop”、op1 io)
sys = A = C_A T_K C_A -5 -0.3427 T_K 47.68 2.785 B =冷却液温度进给浓度进给温度C_A 0 1 0 T_K 0.3 0 1 C = C_A T_K CSTR/1 0 1 CSTR/2 1 0 D =冷却液温度进给浓度进给温度CSTR/1 0 0 0 CSTR/2 0 0 0连续时间状态空间模型。

使用模型线性化金宝app控制设计

方法对Simulink模型进行线性化金宝app模型线性化电路,由金宝appSimulink控制设计软件

开放金宝app模型

本例使用CSTR模型,CSTR_OpenLoop

open_system (“CSTR_OpenLoop”

指定线性化输入和输出

线性化输入和输出已经指定CSTR_OpenLoop.输入信号与输出信号相对应进料浓度进料温度,冷却液温度块。输出信号是输入装运箱温度而且残留浓度块。

要将信号指定为线性化输入或输出,首先打开线性化选项卡。要做到这一点,在Simulink中金宝app应用程序画廊,点击线性化管理.然后,在Simulink模金宝app型窗口中,单击该信号。

将信号指定为a:

  • 线性化输入线性化选项卡,在插入分析点画廊,点击输入扰动

  • 线性化输出,上线性化选项卡,在插入分析点画廊,点击输出测量

开放式线性器

打开模型线性化电路,在应用程序画廊,点击模型线性化电路

指定剩余浓度为已知修剪约束

在Simuli金宝appnk模型窗口中,单击CA输出信号从装运箱块。然后,在线性化选项卡,在插入分析点画廊,点击配平输出约束

模型线性化电路,在线性分析选项卡上,选择操作点>调整模型

在“修剪模型”对话框中,在输出标签:

  • 选择已知的复选框。频道- 1CSTR_OpenLoop /装运箱

  • 设置相应的价值2kmol / m3.

创建并验证工作点

在“修剪模型”对话框中,单击开始削减

操作点op_trim1显示在线性分析工作区

双击op_trim1查看结果工作点。

在“编辑”对话框中,选择输入选项卡。

稳定状态下的冷却液温度为299 K,符合要求。

线性化模型

线性分析选项卡,在操作点下拉列表,选择op_trim1

点击一步线性化模型。

该选项创建线性模型linsys1线性分析工作区并为这个模型生成阶跃响应。linsys1使用optrim1作为它的作业点。

进料浓度到产量的阶跃响应装运箱/ 2显示一个有趣的反向响应。对线性模型的检查表明装运箱/ 2为CSTR残留浓度,C_A.当饲料浓度增加时,C_A最初增加是因为更多的反应物进入,这增加了反应速率。这一速率的增加导致了更高的反应器温度(输出装运箱/ 1),进一步提高反应速率和C_A大幅减少。

导出线性化结果

如果有必要,您可以重复这些步骤中的任何一个来改进您的模型性能。一旦你对你的线性化结果感到满意,在模型线性化电路,将其拖放到线性分析工作区MATLAB的工作区.现在您可以使用线性模型来设计MPC控制器。

另请参阅

(金宝appSimulink控制设计)|(金宝appSimulink控制设计)

相关的话题