在模型工作点处线性化 Simulink 模型
如果线性化 Simulink® 模型时未指定工作点,软件默认使用在模型中指定的工作点。模型工作点由存储在模型中的初始状态和输入信号值组成。
有关在不同工作点处线性化模型的信息,请参阅在配平工作点处进行线性化和在仿真快照处线性化。
使用模型线性化器线性化 Simulink 模型
此示例说明如何使用模型线性化器在模型中指定的工作点处线性化 Simulink 模型。
打开 Simulink 模型。
mdl = 'watertank';
open_system(mdl)
Water-Tank System 模块表示此控制系统中的被控对象,包括所有系统非线性部分。
要指定要线性化的模型部分,请先打开线性化选项卡。为此,请在 Simulink 窗口的 App 库中,点击线性化管理器。
要指定信号的分析点,请点击模型中的信号。然后,在线性化选项卡上的插入分析点库中,选择分析点的类型。
将 PID Controller 模块的输出信号配置为输入扰动。
将 Water-Tank System 模块的输出信号配置为开环输出。开环输出点是一个后跟环路开口的输出测量,它可在不改变模型工作点的情况下消除反馈信号对线性化的影响。
添加线性分析点时,该软件将在模型中其各自的位置添加标记。有关不同类型分析点的详细信息,请参阅指定要线性化的模型部分。
有关在 Simulink 模型中定义分析点的详细信息,请参阅Specify Portion of Model to Linearize in Simulink Model。或者,如果您不想 Simulink 模型有任何更改,则可以使用模型线性化器定义分析点。有关详细信息,请参阅指定要在模型线性化器中线性化的模型部分。
要打开模型的模型线性化器,请在 Simulink 模型窗口的 App 库中,点击模型线性化器。
要使用您在 Simulink 模型中定义的分析点作为线性化 I/O,请在线性分析选项卡上的分析 I/O 下拉列表中,选择模型 I/O。
对于此示例,使用模型工作点进行线性化。在工作点下拉列表中,使模型初始条件处于选中状态。
要线性化系统并生成用于分析的响应图,请在线性化部分中点击一个响应。对于此示例,要为生成的线性模型生成波特图,请点击 波特。
该软件会将线性化模型 linsys1
添加到线性分析工作区并生成模型的波特图。linsys1
是从指定输入到指定输出的线性模型,在默认模型工作点处进行计算。
有关分析线性模型的详细信息,请参阅Analyze Results Using Model Linearizer Response Plots。
您也可以将线性化模型导出到 MATLAB® 工作区。为此,请在数据浏览器的线性分析工作区中右键点击 linsys1
并选择导出到 MATLAB 工作区。
在命令行中线性化 Simulink 模型
此示例说明如何使用 linearize
命令在模型工作点处线性化 Simulink® 模型。
打开 Simulink 模型。
mdl = 'watertank';
open_system(mdl)
对于此系统,Water-Tank System 模块包含了所有的非线性动态特性。要指定要线性化的模型部分,请使用 linio
命令创建一个线性化 I/O 对象数组。
在 PID Controller 模块的输出端创建一个输入扰动分析点。
io(1) = linio('watertank/PID Controller',1,'input');
在 Water-Tank System 模块的输出端创建一个开环输出分析点。开环输出点是一个后跟环路开口的输出测量,它可在不改变模型工作点的情况下消除反馈信号对线性化的影响。
io(2) = linio('watertank/Water-Tank System',1,'openoutput');
有关不同类型的分析点的信息,请参阅指定要线性化的模型部分。
使用指定的分析点在模型工作点处线性化模型。
linsys1 = linearize(mdl,io);
linsys1
是从指定输入到指定输出的线性模型,在默认模型工作点处进行计算。
然后,您可以分析线性化模型的响应。例如,绘制其波特响应。
bode(linsys1)
有关分析线性模型的详细信息,请参阅线性分析。