主要内容

slTuner

接口控制系统的调谐金宝app模型

描述

= slTuner (mdltuned_blocks创建一个slTuner接口,,用于调整Simulink的控制系统块金宝app®模型中,mdl.界面将模型中标记的线性分析点添加为分析点属于.该界面还添加了线性分析点,暗示开口为永久空缺.例如,当界面执行线性化以调优块时,它使用模型初始条件作为工作点。

= slTuner (mdltuned_blockspt将指定的点添加到的分析点列表中,忽略模型中标记的线性分析点。

= slTuner (mdltuned_blocks参数指定在调优模型块时希望更改其值的参数。

= slTuner (mdltuned_blocksop指定调优模型块的操作点。

= slTuner (mdltuned_blocksblocksub指定块和子系统的替代线性化。例如,使用此语法为块指定自定义线性化。您还可以对没有成功线性化的块使用此语法,例如带有不连续或触发子系统的块。

= slTuner (mdltuned_blocks选项配置线性化算法选项。

= slTuner (mdltuned_blocksptop参数blocksub选项使用输入参数的任意组合ptop参数blocksub选项创建.例如,你可以使用:

  • 圣= slTuner (mdl tuned_blocks, pt、参数)

  • 圣= slTuner (mdl tuned_blocks, op,参数)

对象描述

slTuner提供Simulink模型和调优命令之间的接口金宝appsystune环调slTuner允许您:

  • 指定控制体系结构。

  • 指定和参数化要调优的块。

  • 调整控制系统。

  • 通过计算(线性化)开环和闭环响应来验证设计。

  • 将调整后的值写回模型。

因为调优命令如systune在线性模型上运行时slTuner界面会自动计算并存储Simulink模型的线性化。金宝app属性的任何属性更改时,此线性化将自动更新slTuner接口。当您调用查询存储在接口中的线性化的命令时,将发生更新。这样的命令包括systune环调getIOTransfergetLoopTransfer.有关线性化的更多信息,请参见线性化是什么?

例子

全部折叠

创建并配置slTunerSimulink®模型的接口,指金宝app定要使用哪些块进行调优systune环调

打开Simulin金宝appk模型。

mdl =“scdcascade”; 开放式系统(mdl)

该控制系统由两个反馈回路和一个带PI控制器的内环组成C2,以及带PI控制器的外环C1.假设您希望优化此模型以满足以下控制目标:

  • 跟踪设置更改为r在系统输出端y1m具有零稳态误差和规定的上升时间。

  • 拒绝为代表的扰动d2

systune命令可以联合调整控制器块,以满足这些设计要求,您指定使用调谐目标对象。的slTuner接口设置此调优任务。

创建一个slTuner模型的接口。

圣= slTuner (mdl, {“C1”C2的});

该命令初始化slTuner接口,并指定两个PI控制器块为可调。每个可调块都会根据其类型自动参数化,并使用其在Simulink模型中的值进行初始化。金宝app计算并存储模型中剩余的不可调优部分的线性化slTuner接口。

配置slTuner界面,指定任何与您的设计要求相关的信号位置作为分析点。为跟踪需求添加输出和参考输入。另外,添加干扰抑制位置。

地址(st{“r”“y1m”“d2”});

模型中的这些位置现在可以引用了调谐目标捕获您的设计目标的对象。

显示项目的摘要slTuner命令窗口的接口配置。

slTuner调优接口“scdcascade”:2调优块:(只读TunedBlocks属性)--------------------------块1:scdcascade/C1块2:scdcascade/C2 3分析点:--------------------------点1:信号“r”,位于scdcascade/setpoint的“输出端口1”点2:信号“y1m”,位于scdcascade的“输出端口1”/Sum Point 3: scdcascade/d2的“输出端口1”无永久开口。使用addopen命令添加新的永久开口。get/set access: Parameters: [] operingpoints:[](将使用模型初始条件。)[]选项:[1x1线性化。Ts: 0

该显示器列出了指定的可调块、分析点和有关接口的其他信息。在命令窗口中,单击任何突出显示的信号以查看其在Simulink模型中的位置。金宝app注意,要指定块名称“d2”addPoint命令等效于指定该块的单个输出信号作为分析点。

现在,您可以使用调谐目标对象和使用systune环调调整控制系统以满足这些设计目标。

除了指定设计目标之外,您还可以使用分析点来提取系统响应。例如,提取和绘制参考信号之间的阶跃响应“r”和输出“y1m”

T = getIOTransfer(圣“r”“y1m”);步进图(T)

输入参数

全部折叠

金宝appSimulink模型名称,指定为字符向量或字符串。

例子:“scdcascade”

的调优块列表中添加的块指定为:

  • 字符向量或字符串-块路径。您可以指定完整块路径或部分路径。部分路径必须与完整块路径的结尾匹配,并明确标识要添加的块。例如,如果块名称在Simulink模型中仅出现一次,则可以按其名称引用块。金宝app

    例如,blk='scdcascade/C1'

  • 字符向量或字符串数组的单元格数组-多个块路径。

    例如,黑色= {' scdcascade / C1”、“scdcascade / C2 '}

分析点要添加到的分析点列表中指定为:

  • 字符向量或字符串-分析点标识符,可以是下列任何一种:

    • 例如,信号名称pt =“扭矩”

    • 例如,具有单个输出端口的块的块路径pt = '汽车/ PID '

    • 例如,发送信号的块路径和端口pt='发动机型号/1'

  • 字符向量单元数组或字符串数组-指定多个分析点标识符。例如:

    pt={'torque','Motor/PID','Engine Model/1'}
  • 线性化I/O对象的向量-创建pt使用linio.例如:

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

    在这里pt(1)指定输入,并且pt(2)指定一个输出。

    该接口添加指定的所有点pt忽略它们的I/O类型。该界面还添加了所有“loopbreak”将信号类型为永久空缺

用于线性化的参数样本mdl指定为:

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

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

      参数。Name ="V(1)"
    • 价值—参数样本值,指定为双数组。

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

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

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

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

如果参数只指定可调参数,然后软件批处理使用单个编译将模型线性化。如果你还配置st.OperatingPoints该软件仅使用工作点对象,采用单模型编译。

有关如何使用参数取样进行批处理线性化的示例,请参阅改变参数值并获得多个传递函数.这个示例使用单反线性化器,但过程是相同的slTuner

来计算所需的偏移量LPV系统块,指定参数,并设置st.Options.StoreOffsets符合事实的.然后,您可以在调用线性化函数时返回额外的线性化信息,例如getIOTransfer,并提取偏移量getOffsetsForLPV

线性化工作点mdl指定为:

  • 操作点操作报告创建的对象,使用findop使用单个操作点规范或单个快照时间。

  • 的数组操作点操作报告对象,指定多个操作点。

    创建。的数组操作点操作报告对象,您可以:

  • 正标量的向量,指定模拟快照时间。

如果您配置st.Parameters,然后指定op作为以下内容之一:

  • 操作点操作报告对象

  • 的数组操作点操作报告对象的大小与参数财产。当你批量线性化mdl,该软件只使用一个模型编译。为了获得与参数值组合对应的操作点,使用批量修剪您的模型参数在线性化。的例子线性化命令,看到基于参数变化的多工作点批量线性化模型

  • 多个快照时间。当你批量线性化mdl,软件对每个快照时间和参数格点组合模型进行仿真。这个操作在计算上很昂贵。

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

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

如果用不同于原始块或子系统的采样时间来替代线性化,则最好设置总体线性化采样时间(选项.采样时间)设置为非默认值。

每个替代的线性化结构有以下字段。

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

将block替换为线性化,指定为以下方式之一:

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

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

  • 指定模型的I/O配置必须与指定的块的配置相匹配的名字.使用不确定模型需要鲁棒控制工具箱™软件。

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

    • 使用以下方法改变模型参数参数并具体说明价值作为一个模型数组,价值必须匹配参数网格大小。

    • 定义多个块的块替换,并指定价值作为多个块的LTI模型阵列,阵列的尺寸必须匹配。

  • 结构中包含以下字段:

    描述
    规范

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

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

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

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

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

    返回模型的I/O配置必须与的名字

    类型

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

    • “表情”

    • “函数”

    ParameterNames

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

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

    ParameterValues

    线性化函数参数值,指定为双精度向量。参数值的顺序必须与中参数名称的顺序相对应blocksub.Value.ParameterNames.指定ParameterValues只有当类型=“函数”块线性化函数需要输入参数。

slTuner选项,指定为slTunerOptions选项设置。

例子:选项=slTunerOptions('IgnoreDiscreteTestes','on')

属性

slTuner对象属性包括:

调谐块

要调谐的块mdl,指定为字符向量的单元格数组。

当您创建slTuner接口,调谐块属性中指定的块将自动填充tuned_blocks输入参数。在现有文件中指定附加的可调块slTuner接口,使用addBlock

Ts

用于分析和调整的采样时间mdl,指定为非负标量。

使用点符号设置此属性(st.Ts = Ts).

默认值:0(意味着连续时间)

参数

用于线性化的参数样本mdl,指定为结构或结构数组。

属性设置此属性参数输入参数或点符号(st.Parameters =参数).参数必须是下列情况之一:

如果参数只指定可调参数,然后软件批处理使用单个编译将模型线性化。如果你还配置st.OperatingPoints该软件仅使用工作点对象,采用单模型编译。

操作点

线性化的操作点mdl,指定为操作点对象,数组的操作点对象或正标量数组。

属性设置此属性op输入参数或点符号(st.OperatingPoints = op).op必须是下列情况之一:

  • 操作点操作报告创建的对象,使用findop使用单个操作点规范或单个快照时间。

  • 的数组操作点操作报告对象,指定多个操作点。

    创建。的数组操作点操作报告对象,您可以:

  • 正标量的向量,指定模拟快照时间。

如果您配置st.Parameters,然后指定op作为以下内容之一:

  • 操作点操作报告对象

  • 的数组操作点操作报告对象的大小与参数财产。当你批量线性化mdl,该软件只使用一个模型编译。为了获得与参数值组合对应的操作点,使用批量修剪您的模型参数在线性化。的例子线性化命令,看到基于参数变化的多工作点批量线性化模型

  • 多个快照时间。当你批量线性化mdl,软件对每个快照时间和参数格点组合模型进行仿真。这个操作在计算上很昂贵。

BlockSubstitutions

用线性化代替块和模型子系统,指定为结构或结构数组。

使用此属性可指定块或子系统的自定义线性化。您还可以将此语法用于没有解析线性化的块,例如带有不连续或触发子系统的块。

属性设置此属性blocksub输入参数或点符号(st.BlockSubstitutions=blocksubs).有关所需结构的信息,请参见blocksub

选项

线性化算法选项,指定为使用创建的选项集slTunerOptions

属性设置此属性选择输入参数或点符号(st.Options =选择).

模型

要线性化的Simulin金宝appk模型的名称,由输入参数指定为字符向量mdl

时间单位

时间变量的单位。此属性指定由返回的线性化模型的时间单位getIOTransfergetLoopTransfer获取灵敏度GetCompensitivity.使用以下任一值:

  • “纳秒”

  • 微秒的

  • “毫秒”

  • “秒”

  • “分钟”

  • “小时”

  • “天”

  • “周”

  • “月”

  • “年”

默认值:“秒”

对象的功能

addBlock 将块添加到调优块列表中slTuner接口
addOpening 添加信号到列表的开口单反线性化器slTuner接口
addPoint 将信号添加到分析点列表中单反线性化器slTuner接口
getPoints 获得分析点的列表单反线性化器slTuner接口
getOpenings 获得空缺职位的名单单反线性化器slTuner接口
getBlockParam 获取调优块的参数化slTuner接口
getBlockValue 中获得调优块参数化的当前值slTuner接口
getTunedValue 获取中调谐变量的当前值slTuner接口
getBlockRateConversion 获取调优块的速率转换设置slTuner接口
setBlockParam 设置调优块的参数slTuner接口
setBlockValue 中设置调优块参数化的值slTuner接口
setBlockRateConversion 在中设置调谐块的速率转换设置slTuner接口
systune 调整控制系统参数金宝app使用slTuner接口
环调 调整MIMO反馈回路金宝app使用slTuner接口
环视图 用图形化方法分析控制系统的整定结果slTuner接口
looptuneSetup 构造的优化设置环调调优设置systune使用slTuner接口
showTunable 的可调块的参数化值slTuner接口
getIOTransfer 传递函数用于指定的I/O集使用单反线性化器slTuner接口
getLoopTransfer 开环传递函数在指定点使用单反线性化器slTuner接口
获取灵敏度 在指定点使用灵敏度函数单反线性化器slTuner接口
GetCompensitivity 用在指定点上的互补灵敏度函数单反线性化器slTuner接口
writeBlockValue 中的块值更新金宝app模型
writeLookupTableData 更新调优查找表的部分
removePoint 从分析点列表中删除点单反线性化器slTuner接口
removeAllPoints 从分析点列表中删除所有点单反线性化器slTuner接口
removeAllOpenings 从永久开口列表中删除所有开口单反线性化器slTuner接口
刷新 重新同步单反线性化器slTuner与当前模型状态的接口

更多关于

全部折叠

分析点

分析点,由单反线性化器slTuner接口,在模型中识别与线性分析和控制系统调谐相关的位置。您使用分析点作为线性化命令的输入,例如getIOTransfergetLoopTransfer获取灵敏度GetCompensitivity.作为线性化命令的输入,分析点可以指定模型中的任意开环或闭环传递函数。当使用命令对控制系统进行调优时,您还可以使用分析点来指定设计需求systune

位置指模型中的特定块输出端口或此类输出端口中的总线元素。为方便起见,您可以使用来自该端口的信号的名称来引用一个分析点。

您可以添加分析点到单反线性化器slTuner接口,年代,当您创建接口时。例如:

s = slLinearizer (“scdcascade”,{‘u1’“日元”});

或者,您可以使用addPoint命令。

来查看所有的分析要点年代、类型年代在命令提示符处显示接口内容。对于每个分析点年代,显示包括块名称和端口号,以及由此发出的信号的名称。您还可以使用以下方法以编程方式获取所有分析点的列表getPoints

有关如何使用分析点的更多信息,请参见为控制系统分析和设计标记感兴趣的信号标记感兴趣的信号,用于批量线性化

永久的空缺

永久的空缺,由单反线性化器slTuner接口,识别模型中软件中断信号流的位置。软件对这些开口进行线性化和调优。使用永久开口来隔离特定的模型组件。假设您有一个捕获飞机动力学的大型模型,并且您只想对机身进行线性分析。您可以使用永久开口来排除模型的所有其他组件。另一个例子是,当你的模型中有级联循环时,你想要分析一个特定的循环。

位置指模型中特定的块输出端口。为方便起见,您可以使用来自该端口的信号的名称来引用一个开口。

你可以在一个单反线性化器slTuner接口,年代,当您创建接口或使用addOpening命令。要从永久开口列表中删除某个位置,请使用removeOpening命令。

看所有的开口年代、类型年代在命令提示符处显示接口内容。为每一个永久开放年代,显示包括块名称和端口号以及在此位置发出的信号的名称。还可以使用以下方法以编程方式获取所有永久循环开口的列表getOpenings

自定义线性化函数

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

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

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

要为其定义线性化的块的输入信号,指定为结构阵列,每个块输入有一个结构。中的每个结构输入具有以下字段:

描述
BlockName 块的全块路径,其输出连接到相应的块输入。
PortIndex 指定块的输出端口BlockName它连接到相应的块输入。
由指定的信号值BlockNamePortIndex.如果这个信号是矢量信号,那么是一个维度相同的向量。
纽约 块线性化的输出通道数。
怒族 块线性化的输入通道数。
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.Specificationblocksub.Value.Type字段。

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

要设置延迟和采样时间参数值,请指定blocksub.Value.ParameterNamesblocksub.Value.parametervalue字段。

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

算法

slTuner使用中描述的算法线性化Simul金宝appink模型精确线性化算法

R2014a中引入