主要内容

线性化动态仿真模块模型

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

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

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

请注意

下面的例子要求Simulink控制设计™软件

您可以线性化Simulink模型:

线性化使用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;opspec
opspec = CSTR_OpenLoop模型的工作点规范。(时变组件评估在时间t = 0) : ---------- x已知稳态分钟马克斯dxMin dxMax  ___________ ___________ ___________ ___________ ___________ ___________ ___________ ( 1)。CSTR_OpenLoop/CSTR/C_A 8.5695 false true 0 Inf -Inf Inf (2.)CSTR_OpenLoop /装运箱/ T_K 311.267假真的0正无穷正输入 : ---------- 你知道最小最大  _____ _____ _____ _____ ( 1)。CSTR_OpenLoop /冷却剂温度0错误负无穷到正无穷输出 : ---------- y已知的最小最大  _____ _____ _____ _____ ( 1)。CSTR_OpenLoop/CSTR 2 true -Inf

搜索满足规格的操作点。

Op1 = findop(“CSTR_OpenLoop”, opspec);
操作点搜索报告 : ---------------------------------
opreport =模型CSTR_OpenLoop的工作点搜索报告。(time - varying Components evaluate at time t=0)满足工作点规格。州 : ---------- 最小x最大dxMin dx dxMax  ___________ ___________ ___________ ___________ ___________ ___________ ( 1)。CSTR_OpenLoop/CSTR/C_A 0 2 Inf 0 -4.6683e-12 0 (2.)CSTR_OpenLoop /装运箱/ T_K 0 373.1311正0 5.5678 e-11 0输入 : ---------- 最小u最大  ________ ________ ________ ( 1)。CSTR_OpenLoop/Coolant Temperature -Inf 299.0349 Inf输出:---------- Min y Max ___ ___ ___ (1.)CSTR_OpenLoop/CSTR 2 2 2

计算工作点为C_A= 2 k o l / 3. T_K= 373 k。请注意,稳态冷却剂温度也被给出为299 K,这是用于控制工厂的输入的标称值。

指定:

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

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

例如,下面的代码指定冷却剂温度为305k和初始的猜测值C_AT_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)
操作点搜索报告 : ---------------------------------
opreport =模型CSTR_OpenLoop的工作点搜索报告。(time - varying Components evaluate at time t=0)满足工作点规格。州 : ---------- 最小x最大dxMin dx dxMax  ___________ ___________ ___________ ___________ ___________ ___________ ( 1)。CSTR_OpenLoop/CSTR/C_A 0 1.7787 Inf 0 -1.5987e-14 0 (2.)CSTR_OpenLoop /装运箱/ T_K 0 376.5371正0 7.1054 e-14 0输入 : ---------- 最小u最大  ___ ___ ___ ( 1)。CSTR_OpenLoop/Coolant Temperature 305 305 305输出:无---------- .输出说明
op2 =模型CSTR_OpenLoop的工作点。(时变组件评估在时间t = 0) : ---------- x  ________ ( 1)。CSTR_OpenLoop/CSTR/C_A 1.7787 (2.)CSTR_OpenLoop /装运箱/ T_K 376.5371输入 : ---------- 你___(1)。CSTR_OpenLoop/冷却剂温度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连续时间状态空间模型。

也在工作点附近线性化模型,《凤凰社》第2章,使用相同的输入/输出信号。

系统=线性化(“CSTR_OpenLoop”、《凤凰社》第2章io)
sys = A = C_A T_K C_A -5.622 -0.3458 T_K 55.1 2.822 B =冷却液温度进料浓度进料Tempera 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 CSTR/2 0 0 0连续时间状态空间模型。

使用模型线性化动态仿真模块控制设计

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

开放动态仿真模块模型

本例使用CSTR模型,CSTR_OpenLoop

open_system (“CSTR_OpenLoop”

指定线性化输入和输出

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

要指定一个信号作为线性化输入或输出,首先在Simulink中应用程序选项卡上,单击线性化管理。然后,在Simulink模型窗口中,单击该信号。最后,在插入分析点画廊,在闭环部分,选择其中之一输入扰动对于线性化输入或者输出测量对于线性化输出。

开放式线性器

打开模型线性化电路,在应用程序选项卡上,单击模型线性化电路

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

要指定残余浓度为已知的修整常数,首先在Simulink中应用程序选项卡上,单击线性化管理。然后,在Simulink模型窗口中,单击CA输出信号从装运箱块。最后,在插入分析点画廊,在修剪部分中,选择配平输出约束

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

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

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

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

创建并验证工作点

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

项中指定的特征在模型的状态输入空间中找到一个点的优化进程将打开Trim进度查看器窗口输入,输出选项卡。在优化过程结束后,关闭修剪进度窗口以及修剪模型对话框。

操作点op_trim1显示在线性分析工作区模型线性化电路。选择op_trim1,显示基本信息线性分析工作区部分。

双击op_trim1以在“编辑”对话框中查看生成的工作点。

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

稳定状态下的冷却液温度为299 K,符合要求。关闭“编辑”对话框。

线性化模型

线性分析选项卡,在操作点下拉列表,确保op_trim1被选中。

线性化部分中,点击一步对Simulink模型进行线性化,并显示线性化模型的阶跃响应。

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

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

导出线性化结果

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

另请参阅

(Simulink控制设计)|(Simulink控制设计)

相关的话题

Baidu
map