主要内容

线性化

线性逼近万博1manbetx模型或子系统

描述

例子

linsys=线性化(mdlio返回非线性Simulink的线性近似万博1manbetx®模型mdl在模型运行点使用中指定的分析点io.如果你省略了io,然后线性化使用模型的根级导入和输出作为分析点。

例子

linsys=线性化(mdlio人事处使模型在工作点处线性化人事处

例子

linsys=线性化(mdlio参数中指定的参数值变化使模型线性化参数.您可以用模型工作区MATLAB中的变量给出的值来改变任何模型参数®工作区,或者数据字典。

例子

linsys=线性化(mdlioblocksub中指定的替代块或子系统线性化对模型进行线性化blocksub

例子

linsys=线性化(mdlio选项使用附加的线性化选项使模型线性化。

linsys=线性化(mdlio人事处参数blocksub选项的任意组合线性化模型人事处参数blocksub,选项任何顺序。

例子

linsys=线性化(mdlblockpath返回模型中块或子系统的线性近似mdl,由blockpath,在模型工作点处。在线性化之前,软件将该块与模型的其余部分隔离开来。

例子

linsys=线性化(mdlblockpath人事处在工作点线性化块或子系统人事处

linsys=线性化(mdlblockpath参数中指定的参数值变化将块或子系统线性化参数.您可以使用模型工作区、MATLAB工作区或数据字典中的变量给出的值来改变任何模型参数。

linsys=线性化(mdlblockpathblocksub中指定的替代块或子系统线性化来线性化块或子系统blocksub

linsys=线性化(mdlblockpath选项使用附加的线性化选项线性化块或子系统。

linsys=线性化(mdlblockpath人事处参数blocksub选项的任意组合线性化块或子系统人事处参数blocksub,选项任何顺序。

例子

linsys=线性化(___“StateOrder”,stateorder指定任何前面语法的线性化模型中的状态顺序。

例子

linsyslinop=线性化(___返回模型被线性化的工作点。在模拟快照中线性化或在线性化过程中改变参数时,请使用此语法。

例子

linsyslinop信息=线性化(___返回额外的线性化信息。选择要返回的线性化信息信息,启用相应的选项选项

例子

全部折叠

打开Simulin万博1manbetxk模型。

mdl =“watertank”;open_system (mdl)

在PID控制器块的输出端指定线性化输入,这是水箱系统块的输入信号。

Io (1) = linio(“watertank / PID控制器”,1,“输入”);

在水箱系统块的输出端指定线性化输出点。将输出点指定为开环,可以在不改变模型工作点的情况下消除反馈信号对线性化的影响。

Io (2) = linio(“watertank /水箱系统”,1,“openoutput”);

使用指定的I/O集线性化模型。

Linsys =线性化(mdl,io);

linsys是该装置在模型工作点处的线性近似。

打开Simulin万博1manbetxk模型。

mdl =“magball”;open_system (mdl)

找到球高度的稳态工作点0.05.创建一个默认的操作点规范,并将高度状态设置为一个已知值。

Opspec = operspec(mdl);opspec.States(5)。已知= 1;opspec.States(5)。X = 0.05;

修剪模型以找到操作点。

选项= findopOptions(“DisplayReport”“关闭”);Op = findop(mdl,opspec,options);

指定线性化输入和输出信号来计算闭环传递函数。

Io (1) = linio(“magball /期望的高度”,1,“输入”);Io (2) = linio(“磁球/磁球工厂”,1,“输出”);

使用指定的I/O集在指定的工作点线性化模型。

Linsys =线性化(mdl,io,op);

打开Simulin万博1manbetxk模型。

mdl =“watertank”;open_system (mdl)

为了计算闭环传递函数,首先指定线性化输入和输出信号。

Io (1) = linio(“watertank / PID控制器”,1,“输入”);Io (2) = linio(“watertank /水箱系统”,1,“输出”);

模拟sys10然后线性化模型。

Linsys =线性化(mdl,io,10);

打开Simulin万博1manbetxk模型。

mdl =“scdcascade”;open_system (mdl)

指定外环控制器增益的参数变化,Kp1而且Ki1.为每个增益值创建参数网格。

Kp1_range = linspace(Kp1*0.8,Kp1*1.2,6);Ki1_range = linspace(Ki1*0.8,Ki1*1.2,4);[Kp1_grid,Ki1_grid] = ndgrid(Kp1_range,Ki1_range);

创建带有字段的参数值结构的名字而且价值

参数(1)。Name =“Kp1”;参数(1)。价值= Kp1_grid; params(2).Name =“Ki1”;参数(2)。价值= Ki1_grid;

参数个数是一个6 × 4的参数值网格,其中每个网格点对应于的唯一组合Kp1而且Ki1值。

定义线性化输入输出点,用于计算系统的闭环响应。

Io (1) = linio(“scdcascade /选点”,1,“输入”);Io (2) = linio(“scdcascade /总和”,1,“输出”);

使用指定的参数值在模型工作点线性化模型。

Linsys =线性化(mdl,io,params);

打开Simulin万博1manbetxk模型。

mdl =“scdpwm”;open_system (mdl)

从模型中提取线性化输入和输出。

IO = getlinio(mdl);

在模型工作点处线性化模型。

Linsys =线性化(mdl,io)
linsys = D = Step Plant Model 0静态增益。

电压到PWM块的不连续导致模型线性化到零。若要在线性化期间将此块视为单位增益,请指定此块的替代线性化。

blocksub。Name ='scdpwm/电压到PWM';blocksub。价值= 1;

使用指定的块替换线性化模型。

Linsys =线性化(mdl,blocksub,io)
linsys = A =状态空间(状态空间(0.9999 -0.0001状态空间(0.0001 1 B =阶跃状态空间(0.0001状态空间(5e-09 C =状态空间(状态空间(Plant Model 01 D = Step Plant Model 0采样时间:0.0001秒离散时间状态空间模型。

打开Simulin万博1manbetxk模型。

mdl =“watertank”;open_system (mdl)

若要线性化水箱系统块,请指定线性化输入和输出。

Io (1) = linio(“watertank / PID控制器”,1,“输入”);Io (2) = linio(“watertank /水箱系统”,1,“openoutput”);

创建线性化选项集,并为线性化模型指定采样时间。

选项=线性化选项(“SampleTime”, 0.1);

使用指定的选项线性化工厂。

Linsys =线性化(mdl,io,options)
linsys = A = H H 0.995 B = PID control H 0.02494 C = H水箱s1 D = PID control水箱S 0采样时间:0.1秒离散时间状态空间模型。

线性化植物是一个采样时间为的离散状态空间模型0.1

打开Simulin万博1manbetxk模型。

mdl =“watertank”;open_system (mdl)

指定要线性化的块的完整块路径。

blockpath =“watertank /水箱系统”

在模型工作点线性化指定块。

Linsys =线性化(mdl,blockpath);

打开Sim万博1manbetxulink模型。

mdl =“magball”;open_system (mdl)

找到球高度的稳态工作点0.05.创建一个默认的操作点规范,并将高度状态设置为一个已知值。

Opspec = operspec(mdl);opspec.States(5)。已知= 1;opspec.States(5)。X = 0.05;
选项= findopOptions(“DisplayReport”“关闭”);Op = findop(mdl,opspec,options);

指定要线性化的块的块路径。

blockpath =“磁球/磁球工厂”

在指定的工作点线性化指定的块。

Linsys =线性化(mdl,blockpath,op);

打开Simulin万博1manbetxk模型。

mdl =“magball”;open_system (mdl)

在模型工作点线性化工厂。

blockpath =“磁球/磁球工厂”;Linsys =线性化(mdl,blockpath);

查看线性化工厂的默认状态顺序。

linsys。StateName
ans = 3x1单元格数组{'height'} {'Current'} {'dhdt'}

在线性化模型中线性化植物并重新排列状态。设置高度的变化率为第二个状态。

Stateorder = {磁球/磁球植物/高度...magball/Magnetic Ball Plant/dhdt...磁球/磁球装置/电流};Linsys =线性化(mdl,blockpath,“StateOrder”, stateorder);

查看新的状态顺序。

linsys。StateName
ans = 3x1单元格数组{'height'} {'dhdt'} {'Current'}

打开Simulin万博1manbetxk模型。

mdl =“watertank”;open_system (mdl)

为了计算闭环传递函数,首先指定线性化输入和输出信号。

Io (1) = linio(“watertank / PID控制器”,1,“输入”);Io (2) = linio(“watertank /水箱系统”,1,“输出”);

模拟sys线性化模型0而且10秒。返回与这些快照时间对应的操作点;也就是说,模型线性化的工作点。

[linsys,linop] =线性化(mdl,io,[0,10]);

打开Simulin万博1manbetxk模型。

mdl =“watertank”;open_system (mdl)

不同的参数一个而且b其标称价值的10%以内。

[A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,3),...linspace (0.9 * b, b 1.1 * 4));

创建一个参数结构数组,为每个参数指定名称和网格点。

参数(1)。Name =“一个”;参数(1)。价值= A_grid; params(2).Name =“b”;参数(2)。价值= b_grid;

为模型创建一个默认的操作点规范。

Opspec = operspec(mdl);

使用指定的工作点规格、参数网格修整模型。禁止显示作业点搜索报告。

opt = findopOptions(“DisplayReport”“关闭”);[op,opreport] = findop(mdl,opspec,params,opt);

人事处对应于指定参数网格点的操作点对象的3 × 4数组。

为工厂模型指定块路径。

blockpath =“水箱/理想水位”

若要在线性化期间存储偏移量,请创建线性化选项set和setStoreOffsets真正的

选项=线性化选项(“StoreOffsets”,真正的);

使用指定的I/O点和参数变化,在修剪后的工作点批量线性化工厂。

[linsys,linop,info] =线性化(mdl,blockpath,op,params,options);

您可以使用偏移量信息。偏移量配置LPV System块时。

信息。偏移量
ans = 3x4结构数组,字段:x dx u y StateName InputName OutputName Ts

输入参数

全部折叠

万博1manbetxSimulink模型名称,指定为字符向量或字符串。模型必须在当前工作文件夹或MATLAB路径中。

包含输入、输出和开口的分析点集,指定为线性化I/O对象或线性化I/O对象的向量。创建io

  • 使用定义输入、输出和开口linio

  • 如果在Simulink模型中指定了输入、输出和开口,则使用万博1manbetxgetlinio

每个线性化I/O对象io必须对应于Simulink模型万博1manbetxmdl或者模型层次结构中的一些普通模式模型引用。

如果你省略了io,然后线性化使用模型的根级导入和输出作为分析点。

有关指定线性化输入、输出和开口的详细信息,请参见指定要线性化的模型部分

线性化的工作点,指定为下列之一:

  • OperatingPoint对象,使用:

  • 的数组OperatingPoint对象,指定多个工作点。的数组创建OperatingPoint对象,你可以:

  • 表示一个或多个模拟快照时间的正标量向量。软件模拟sys并在指定的快照时间线性化模型。

    如果还使用参数,软件模拟模型对每个快照时间和参数网格点进行组合。这个操作的计算开销很大。

如果您使用参数,参数为:

  • 影响模型工作点,然后指定人事处作为与参数值网格具有相同尺寸的工作点数组。为了获得与参数值组合相对应的工作点,使用批量修剪模型参数在线性化。有关更多信息,请参见基于参数变化的多工作点批量线性化模型

  • 不影响模型的工作点,然后指定人事处作为一个单一的工作点。

要线性化的块或子系统,指定为包含其完整块路径的字符向量或字符串。

该软件将指定块的输入和输出作为开环输入和输出,在线性化之前将块与模型的其余部分隔离开来。

将线性化替换为块和子系统,指定为结构或n-by-1结构数组,其中n要为其指定线性化的块数。使用blocksub为块或子系统指定自定义线性化。例如,您可以为没有分析线性化的块指定线性化,例如具有不连续或触发子系统的块。

要研究改变块的线性化对模型动态的影响,可以通过为块指定多个替代线性化来批量线性化模型。

如果用与原始块或子系统的采样时间不同的采样时间代替线性化,则最佳实践是设置总体线性化采样时间(选项.SampleTime)到非默认值。

每个代用线性化结构都有以下字段。

要为其指定线性化的块的块路径,指定为字符向量或字符串。

用线性化代替块,指定为以下之一:

  • Double -指定作为增益的SISO块的线性化。

  • 双精度数组-指定MIMO块的线性化为nu——- - - - - -ny增益值数组,其中nu输入的数量和ny是输出的数量。

  • LTI模型、不确定的状态空间模型或不确定的真实对象-指定模型的I/O配置必须与指定块的配置相匹配的名字.使用不确定模型需要鲁棒控制工具箱™软件。

  • LTI模型、不确定状态空间模型或不确定真实对象的数组-使用多个块替换批量线性化模型。数组中每个模型的I/O配置必须与指定自定义线性化的块的配置相匹配。如果你:

    • 使用以下方法改变模型参数参数并指定价值的维数作为模型数组价值必须匹配参数网格大小。

    • 指定人事处作为工作点和的数组价值的维数作为模型数组价值一定要搭配大小的人事处

    • 定义多个块的块替换,并指定价值作为一个或多个这些块的LTI模型的数组,数组的尺寸必须匹配。

  • 结构,使用以下字段。

    描述
    规范

    块线性化,指定为包含以下之一的字符向量:

    指定的表达式或函数必须返回下列之一:

    • d -矩阵形式的线性模型

    • 控制系统工具箱™LTI模型对象

    • 不确定的状态空间模型或不确定的真实对象(需要鲁棒控制工具箱软件)

    返回模型的I/O配置必须与指定的块的配置相匹配的名字

    类型

    规格类型,指定为下列之一:

    • “表情”

    • “函数”

    ParameterNames

    线性化函数参数名称,指定为字符向量的单元格数组。指定ParameterNames只有当Type = 'Function'你的块线性化函数需要输入参数。这些参数只影响指定块的线性化。

    还必须指定相应的blocksub.Value.ParameterValues字段。

    ParameterValues

    线性化函数的参数值,指定为双精度向量。参数值的顺序必须与中参数名的顺序一致blocksub.Value.ParameterNames.指定ParameterValues只有当Type = 'Function'你的块线性化函数需要输入参数。

用于线性化的参数样本,指定为以下之一:

  • 结构-通过指定改变单个参数的值参数作为具有以下字段的结构:

    • 的名字—参数名称,以字符向量或字符串形式指定。您可以在模型工作空间、MATLAB工作空间或数据字典中指定任何变量的模型参数。如果模型使用的变量不是标量变量,则将参数名称指定为解析为数值标量值的表达式。例如,使用向量的第一个元素V作为参数,使用:

      参数。Name =“V(1)”
    • 价值-参数样例值,指定为双数组。

    例如,改变参数的值一个在10%范围内:

    参数。Name =“一个”;参数。价值= linspace(0.9*A,1.1*A,3);
  • 结构数组-改变多个参数的值。例如,改变参数的值一个而且b在10%范围内:

    [A_grid,b_grid] = ndgrid(linspace(0.9*A,1.1*A,3),...linspace (0.9 * b, b 1.1 * 3));参数(1)。Name =“一个”;参数(1)。价值= A_grid; params(2).Name =“b”;参数(2)。价值= b_grid;

有关更多信息,请参见为批量线性化指定参数样本

如果参数仅指定可调参数,软件批处理使用单个模型编译线性化模型。

方法所需的偏移量LPV系统块,指定参数,并设置选项。StoreOffsets真正的.然后您可以返回额外的线性化信息信息,并提取偏移量getOffsetsForLPV

线性化结果中的状态顺序,指定为块路径或状态名的单元格数组。块路径和状态的顺序stateorder中状态的顺序linsys

中的任何块都可以指定块路径mdl有状态的,或者任何命名状态的mdl

您不必指定来自的每个块和状态mdlstateorder.您指定的状态首先出现linsys,然后是其余状态的默认顺序。

线性化算法选项,指定为linearizeOptions选项设置。

输出参数

全部折叠

线性化结果,作为状态空间模型或状态空间模型数组返回。

对于大多数模型,linsys返回为党卫军对象的数组党卫军对象。然而,如果mdl定义的线性化路径中包含下列块之一io,然后linsys返回指定类型的状态空间模型。

linsys类型
块,使用指定为一族对象或可调模型对象 一族
块,使用指定为不确定模型的替换,例如号航空母舰 号航空母舰(鲁棒控制工具箱)
稀疏二阶 mechss
描述符状态配置为线性化为稀疏模型的块 桅杆

的维度linsys取决于指定的参数变化和块替换,以及线性化模型的操作点。

请注意

如果指定了多个人事处参数,或blocksub。价值作为数组,则它们的维度必须匹配。

参数变化 块替换 线性化在… 结果linsys
无参数变化 无块替换 模型工作点 单一状态空间模型
单个工作点,指定为OperatingPoint对象或快照时间的使用人事处
N1——- - - - - -...——- - - - - -N的数组OperatingPoint对象,由人事处 N1——- - - - - -...——- - - - - -N
N年代快照,指定为使用的快照时间向量人事处 长度列向量N年代
N1——- - - - - -...——- - - - - -N为至少一个块建模数组,由blocksub。价值 模型工作点 N1——- - - - - -...——- - - - - -N
单个工作点,指定为OperatingPoint对象或快照时间的使用人事处
N1——- - - - - -...——- - - - - -N的数组,指定为的数组OperatingPoint对象的使用人事处
N年代快照,指定为使用的快照时间向量人事处 N年代——- - - - - -N1——- - - - - -...——- - - - - -N
N1——- - - - - -...——- - - - - -N参数grid,由参数 要么没有块替换,要么是N1——- - - - - -...——- - - - - -N为至少一个块建模数组,由blocksub。价值 模型工作点 N1——- - - - - -...——- - - - - -N
单个工作点,指定为OperatingPoint对象或快照时间的使用人事处
N1——- - - - - -...——- - - - - -N的数组OperatingPoint对象,由人事处
N年代快照,指定为使用的快照时间向量人事处 N年代——- - - - - -N1——- - - - - -...——- - - - - -N

例如,假设:

  • 人事处是一个4乘3的数组OperatingPoint对象,并且不指定参数变化或块替换。在这种情况下,linsys是一个4 × 3模型数组。

  • 人事处是单一的OperatingPoint对象和参数指定一个3 × 4 × 2参数网格。在这种情况下,linsys是一个3 × 4 × 2的模型数组。

  • 人事处是一个正标量的行向量,有两个元素,你没有指定参数.在这种情况下,linsys是一个有两个元素的列向量。

  • 人事处一个正标量的列向量是否含有三个元素和参数指定一个5乘6的参数网格。在这种情况下,linsys是一个3 × 5 × 6的模型数组。

  • 人事处是单操作点对象,不指定参数变化,和blocksub。价值用于模型中的一个块的2 × 3模型数组。在这种情况下,linsys是一个2 × 3模型数组。

  • 人事处是一个正标量的列向量,有四个元素,你没有指定参数变化,和blocksub。价值用于模型中的一个块的1 × 2模型数组。在这种情况下,linsys是一个4 × 1 × 2模型数组。

有关模型数组的更多信息,请参见模型阵列

模型被线性化的工作点,返回为OperatingPoint对象的数组OperatingPoint具有相同尺寸的对象linsys.的每个元素linop操作点是对应于哪个linsys得到模型。

如果你指定人事处作为一个单一的工作点OperatingPoint对象的数组OperatingPoint对象,那么linop是一份人事处.如果你指定人事处作为单个操作点对象,还可以使用指定参数的变化参数,然后linop与参数grid具有相同尺寸的数组。在这种情况下,元素linop的标量扩展副本吗人事处

要确定模型是否在合理的工作点线性化,请查看中的状态和输入linop

线性化信息,作为具有以下字段的结构返回:

对应于模型被线性化的工作点的线性化偏移量,返回为[]如果选项。StoreOffsets.否则,偏移量返回为以下类型之一:

  • 如果linsys那么,它是一个单一状态空间模型吗偏移量是一个结构。

  • 如果linsys是状态空间模型的数组吗偏移量结构数组是否与尺寸相同linsys

每个偏移结构都有以下字段:

描述
x 用于线性化的状态偏移量,作为长度的列向量返回nx,在那里nx状态数是多少linsys
y 用于线性化的输出偏移量,作为长度的列向量返回ny,在那里ny输出的数量在吗linsys
u 用于线性化的输入偏移量,作为长度的列向量返回nu,在那里nu输入的数量是多少linsys
dx 连续时间系统的导数偏移量或离散时间系统的更新状态值,作为长度的列向量返回nx
StateName 返回的单元格数组中包含nx中的名称匹配的元素linsys。StateName
InputName 输入名称,作为包含的单元格数组返回nu中的名称匹配的元素linsys。InputName
OutputName 输出名称,作为单元格数组返回,其中包含ny中的名称匹配的元素linsys。OutputName
Ts 线性化系统的采样时间,返回为与中的采样时间匹配的标量linsys。Ts.对于连续时间系统,Ts0

如果偏移量是结构数组,可以配置一个LPV系统使用偏移量阻塞。为此,首先将它们转换为所需的格式getOffsetsForLPV.有关示例,请参见LTI系统阵列的近似非线性行为

线性化诊断信息,返回为[]如果选项。StoreAdvisor.否则,顾问返回为以下类型之一:

  • 如果linsys是一个单一状态空间模型,顾问是一个LinearizationAdvisor对象。

  • 如果linsys是状态空间模型的数组,顾问的数组。LinearizationAdvisor具有相同尺寸的对象linsys

LinearizationAdvisor对象存储单个线性化块的线性化诊断信息。对于使用的线性化结果进行故障排除的示例LinearizationAdvisor对象,看到排除命令行中的线性化结果

更多关于

全部折叠

自定义线性化函数

可以使用MATLAB路径上的自定义函数为Simulink模型中的块或子系统指定替代线性化。万博1manbetx

你的自定义线性化函数必须有一个BlockDataInput参数,这是软件创建并传递给函数的结构。BlockData具有以下字段:

描述
BlockName 要为其指定自定义线性化的块的名称。
参数 的结构数组指定的块参数值的名字而且价值字段。参数属性中指定的参数的名称和值blocksub.Value.ParameterNames而且blocksub.Value.ParameterValues字段。
输入

输入信号到您正在为其定义线性化的块,指定为每个块输入具有一个结构的结构数组。中的每个结构输入具有以下字段:

描述
BlockName 输出连接到相应块输入的块的全块路径。
PortIndex 指定的块的输出端口BlockName它连接到相应的块输入。
指定的信号的值BlockName而且PortIndex.如果这个信号是矢量信号,那么是一个具有相同维数的向量。
纽约 块线性化的输出通道数。
ν 块线性化的输入通道数。
BlockLinearization 块的当前默认线性化,指定为状态空间模型。您可以指定块线性化,该块线性化依赖于使用的默认线性化BlockLinearization

自定义函数必须返回带有的模型ν输入和纽约输出。此模型必须是以下其中之一:

  • d -矩阵形式的线性模型

  • 控制系统工具箱LTI模型对象

  • 不确定的状态空间模型或不确定的真实对象(需要鲁棒控制工具箱软件)

例如,下面的函数将当前默认块线性化乘以的延迟Td = 0.5秒。时延用带采样时间的Thiran滤波器表示Ts = 0.1.延迟和采样时间是存储在BlockData

函数sys = myCustomFunction(BlockData) Td = BlockData. parameters (1).Value;Ts = BlockData.Parameters(2).Value;sys = BlockData.BlockLinearization*Thiran(Td,Ts);结束

将此函数保存到MATLAB路径上的某个位置。

要将此函数用作块或子系统的自定义线性化,请指定blocksub.Value.Specification而且blocksub.Value.Type字段。

blocksub.Value.Specification =“myCustomFunction”;blocksub.Value.Type =“函数”

要设置延迟和采样时间参数值,请指定blocksub.Value.ParameterNames而且blocksub.Value.ParameterValues字段。

blocksub.Value.ParameterNames = {“Td”“t”};blocksub.Value.ParameterValues = [0.5 0.1];

算法

全部折叠

线性化的模型属性

默认情况下,线性化自动设置以下Simulink模型属性:万博1manbetx

  • BufferReuse = 'off'

  • RTWInlineParameters = 'on'

  • BlockReductionOpt = 'off'

  • 保存格式= 'StructureWithTime'

线性化后,Simulink恢复原始模型属性万博1manbetx。

一个线性化

万博1manbetxSimulink控制设计™软件使用一个块一个块的方法线性化模型。该软件单独线性化Simulink模型中的每个块,并通过组合各个块线性化产生整个系统的线性化。万博1manbetx

该软件从操作点确定每个块的输入和状态级别,并获得这些级别上每个块的雅可比矩阵。

对于某些块,软件不能以这种方式计算分析线性化。例如:

  • 有些非线性没有定义雅可比矩阵。

  • 一些离散块,如状态图和触发子系统,倾向于线性化为零。

  • 有些块不实现雅可比矩阵。

  • 自定义块,例如功能块和MATLAB函数块,没有分析雅可比矩阵。

您可以为您知道预期线性化的任何此类块指定自定义线性化。如果您没有指定自定义线性化,软件将通过扰动块输入和状态并测量对这些扰动的响应来线性化模型。对于每个输入和状态,默认扰动水平为:

  • 10 5 1 + | x | 用于双精度值。

  • 0.005 1 + | x | 对于单精度值。

在这里,x是在工作点上对应的输入或状态的值。有关如何更改单个块的扰动级别的信息,请参见在线性化过程中改变摄动块的摄动水平

有关更多信息,请参见线性化非线性模型而且精确线性化算法

全模型数值扰动

您可以使用全模型数值扰动来线性化您的系统,其中软件通过扰动根级输入和状态的值来计算整个模型的线性化。为此,创建一个linearizeOptions对象,并设置LinearizationAlgorithm属性为以下其中之一:

  • “numericalpert”-使用正向差异扰动输入和状态;也就是说,通过对输入值和状态值增加扰动。这种摄动方法通常比“numericalpert2”方法。

  • “numericalpert2”-使用中心差异扰动输入和状态;也就是说,通过在正方向和负方向上扰动输入和状态值。这种摄动方法通常比“numericalpert”方法。

对于每个输入和状态,软件扰动模型,并根据模型对这些扰动的响应计算线性模型。属性配置状态和输入扰动级别NumericalPertRel线性化的选择。

逐块线性化与全模型数值扰动相比有几个优点:

  • 大多数Si万博1manbetxmulink块都有预编程的线性化,可以提供块的精确线性化。

  • 您可以使用线性分析点指定要线性化的模型的一部分。

  • 您可以配置块以使用自定义线性化,而不影响您的模型模拟。

  • 结构上的非最小状态被自动移除。

  • 您可以指定包含不确定性的线性化(需要鲁棒控制工具箱软件)。

  • 您可以获取详细的诊断信息。

  • 在线性化多速率模型时,可以使用不同的速率转换方法。全模型数值摄动只能采用零阶保持速率转换。

有关更多信息,请参见线性化非线性模型而且精确线性化算法

选择

作为一种替代线性化函数,您可以使用以下方法之一线性化模型:

虽然两万博1manbetxSimulink控制设计软件和Simulink万博1manbetxlinmod函数执行逐块线性化,万博1manbetxSimulink控制设计线性化功能具有更灵活的用户界面,并使用控制系统工具箱数值算法。有关更多信息,请参见使用Simulink控制设计与Simul万博1manbetxink的线性化

版本历史

在R2006a中引入