主要内容

SLTUNER.

控制系统调整的界面万博1manbetx楷模

描述

英石= sltuner(MDL.tuned_blocks创造一个SLTUNER.界面,英石,用于调整Simulink的控制系统块万博1manbetx®模型,MDL.。接口添加了模型中标记为的线性分析点分析点英石。该接口还添加了暗示开口的线性分析点永久性开口。例如,当接口执行线性化时,例如调整块,它将模型初始条件作为操作点使用。

英石= sltuner(MDL.tuned_blocksPt.将指定的点添加到分析点列表中英石,忽略模型中标记的线性分析点。

英石= sltuner(MDL.tuned_blocks帕纳指定在调整模型块时要在调整模型块时所需的值的参数。

英石= sltuner(MDL.tuned_blocksop.指定用于调整模型块的操作点。

英石= sltuner(MDL.tuned_blocksBlocksub.指定块和子系统的替代线性化。例如,使用此语法为块指定自定义线性化。您还可以使用此语法for ocks,这些块不成功,例如具有不连续或触发子系统的块。

英石= sltuner(MDL.tuned_blocks选项配置线性化算法选项。

英石= sltuner(MDL.tuned_blocksPt.op.帕纳Blocksub.选项使用输入参数的任何组合Pt.op.帕纳Blocksub., 和选项去创造英石。例如,您可以使用:

  • st = sltuner(mdl,tuned_blocks,pt,param)

  • st = sltuner(mdl,tuned_blocks,op,param)

对象描述

SLTUNER.提供Simulink模型和调谐命令之间的接口万博1manbetxSystune.loopune.SLTUNER.允许您:

  • 指定控制架构。

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

  • 调整控制系统。

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

  • 将调谐值写回模型。

因为调整命令如Systune.在线性模型操作SLTUNER.界面自动计算并存储Simulink模型的线性化。万博1manbetx更改任何属性时,此线性化会自动更新SLTUNER.界面。当您调用查询存储在接口中的线性化的命令时发生更新。这些命令包括Systune.loopune.getiotransfer, 和getLooptransfer.。有关线性化的更多信息,请参阅什么是线性化?

例子

全部收缩

创建和配置SLTUNER.用于Simulink®模型的界面万博1manbetx,用于指定要调整哪个块Systune.要么loopune.

打开Simulin万博1manbetxk模型。

mdl ='scdcascade';Open_System(MDL);

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

  • 跟踪设定点变化R.在系统输出Y1M.零稳态误差和指定的上升时间。

  • 拒绝所代表的干扰D2

Systune.命令可以共同调整控制器块以满足这些设计要求,您可以使用它使用TuningGoal.对象。这SLTUNER.接口设置此调整任务。

创建一个SLTUNER.界面的模型。

st = sltuner(mdl,{'c1''c2'});

此命令初始化SLTUNER.接口并将两个PI控制器块指定为可调谐。每个可调谐块根据其类型自动参数化,并在Simulink模型中初始化其值。万博1manbetx计算和存储剩余的剩余无因素部分的线性化并存储在SLTUNER.界面。

要配置SLTUNER.接口,指定为分析点与您的设计要求相关的任何信号位置。添加输出和参考输入以进行跟踪要求。另外,添加干扰拒绝位置。

addpoint(st,{'r''y1m''d2'});

模型中的这些位置现在可以参考TuningGoal.捕获您的设计目标的对象。

显示摘要SLTUNER.Command窗口中的接口配置。

英石
SLTuner调整界面为“scdcascade”:2个调谐块:(只读TunedBlocks属性)---------------------------------------- SCCASCADE /C1块2:SCDCASCADE / C2 3分析点:-----------------------第1页:信号“R”,位于“输出端口”1'SCDCASCADE /设定点2:信号“Y1M”,位于SCDCASCADE / SUM点3的“输出端口1”:SCDCASCADE / D2的“输出端口1”无永久开口。使用addopening命令添加新的永久性开口。具有点符号的属性GET / SET Access:参数:[]操作点:[](将使用型号初始条件。)blocksubstutions:[]选项:[1x1 linearize.sltuneroptions] ts:0

显示屏列出了指定的可调块,分析点和有关接口的其他信息。在“命令”窗口中,单击任何突出显示的信号,以在Simulink模型中查看其位置。万博1manbetx请注意,指定块名称'd2'在里面addpoint.命令等同于将该块的单个输出信号指定为分析点。

您现在可以捕捉您的设计目标TuningGoal.对象和使用Systune.要么loopune.调整控制系统以满足这些设计目标。

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

t = getiotransfer(st,'r''y1m');Stepplot(t)

输入参数

全部收缩

万博1manbetxSimulink模型名称,指定为字符向量或字符串。

例子:'scdcascade'

要添加到调谐块列表中的块英石,指定为:

  • 字符矢量或字符串 - 块路径。您可以指定完整的块路径或部分路径。部分路径必须与完整块路径的末尾匹配,并明确识别要添加的块。例如,您可以通过其名称引用块,只要块名称仅在Simulink模型中显示一次。万博1manbetx

    例如,blk ='scdcascade / c1'

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

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

分析点要添加到分析点列表中英石,指定为:

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

    • 例如,信号名称Pt ='扭矩'

    • 例如,具有单个输出端口的块的块路径Pt ='motor / pid'

    • 例如,块路径和端口源自信号Pt ='发动机型号/ 1'

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

    pt = {'torque','motor / pid','发动机型号/ 1'}
  • 线性化I / O对象的矢量 - 创建Pt.使用Linio.。例如:

    Pt(1)= Linio('scdcascade / setpoint',1,'输入');Pt(2)= Linio('scdcascade / sum',1,'输出');

    这里,Pt(1)指定输入,和Pt(2)指定输出。

    该接口添加了所指定的所有要点Pt.并忽略他们的I / O类型。该界面还添加了所有'loopbreak'键入信号永久性开口

用于线性化的参数样本MDL.,指定为:

  • 结构 - 通过指定来改变单个参数的值帕纳作为具有以下领域的结构:

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

      param.name ='v(1)';
    • 价值- 参数样本值,指定为双数组。

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

    param.name ='一种';param.value = 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,1.1 * B,3));Params(1).name ='一种';params(1).value = a_grid;Params(2).name ='B';params(2).value = b_grid;

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

如果帕纳仅指定可调谐参数,然后软件批处理使用单个编译线性化模型。如果您还配置了St.OperatingPoints.仅使用操作点对象,软件使用单一模型编译。

有关示例,展示了如何使用参数采样工作的批量线性化,请参阅改变参数值并获得多个传输函数。这例示例使用SLINESERIZER.,但过程是相同的SLTUNER.

计算所需的偏移量LPV系统块,指定帕纳和集合st.options.storeOffsets.真的。然后,您可以在调用线性化功能时返回额外的线性化信息getiotransfer,并使用偏移来提取getOffsetsForLPV

线性化的操作点MDL.,指定为:

  • 操作点对象,使用查找具有单个操作点规范或单个快照时间。

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

    要创建一系列操作点对象,可以:

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

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

  • 单个操作点。

  • 操作点对象数组,其大小与参数网格的大小匹配参数财产。当你批量线性化MDL.,该软件仅使用一个模型编译。要获取与参数值组合对应的操作点,请使用批量修剪模型帕纳在线性化。的例子线性化命令,参见从参数变体导出的多个操作点的批次线性化模型

  • 多个快照时间。当你批量线性化MDL.,软件为每个快照时间和参数网格点组合模拟模型。该操作可以计算得昂贵。

替换为块和模型子系统的线性化,指定为结构或一个结构N-By-1结构阵列,在哪里N是要指定线性化的块数。采用Blocksub.为块或子系统指定自定义线性化。例如,您可以为没有分析线性化的块指定线性化,例如具有不连续或触发子系统的块。

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

如果用不同于原始块或子系统的采样时间来替代线性化,则最好设置总体线性化采样时间(选项。采样时间)到一个不合适的价值。

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

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

替换为块的线性化,指定为以下之一:

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

  • 一组双打 - 指定MIMO块的线性化作为一个N-经过-Ny增益值数组,在哪里N是输入和输入的数量Ny是输出的数量。

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

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

    • 使用型号参数使用帕纳并指定价值作为模型阵列,尺寸为价值必须匹配参数网格尺寸。

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

  • 结构与以下字段:

    场地 描述
    规格

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

    指定的表达式或函数必须返回以下其中一项:

    • 线性模型以D矩阵的形式

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

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

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

    类型

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

    • '表达'

    • '功能'

    ParameterNames

    线性化函数参数名称,指定为字符向量的单元格数组。指定ParameterNames只有当type ='函数'并且您的块线性化功能需要输入参数。这些参数仅影响指定块的线性化。

    您还必须指定相应的blocksub.value.parametervalues.场地。

    parametervalues.

    线性化函数参数值,指定为双精度向量。参数值的顺序必须与中参数名称的顺序相对应blocksub.value.parameternames.parameternames.。指定parametervalues.只有当type ='函数'并且您的块线性化功能需要输入参数。

SLTUNER.选项,指定为一个SLTUNEROPTIONS.选项设置。

例子:选项= SLTUNEROPTIONS('INGOREDISCRETESTATES','ON')

特性

SLTUNER.对象属性包括:

TunedBlocks.

要调整的块MDL.,指定为字符向量的小区数组。

当你创造一个SLTUNER.界面,界面TunedBlocks.属性自动使用您在中指定的块填充tuned_blocks输入参数。指定现有的其他可调块SLTUNER.接口,使用addblock.

TS.

分析和调整的采样时间MDL.,指定为非负标量。

使用点表示法设置此属性(St.Ts = TS)。

默认:0(暗示连续时间)

参数

用于线性化的参数样本MDL.,指定为结构或结构阵列。

使用该属性设置此属性帕纳输入参数或点表示法(St.Parameters = Param.)。帕纳必须是以下之一:

如果帕纳仅指定可调谐参数,然后软件批处理使用单个编译线性化模型。如果您还配置了St.OperatingPoints.仅使用操作点对象,软件使用单一模型编译。

手术点

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

使用该属性设置此属性op.输入参数或点表示法(St.OperatingPoints = Op.)。op.必须是以下之一:

  • 操作点对象,使用查找具有单个操作点规范或单个快照时间。

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

    要创建一系列操作点对象,可以:

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

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

  • 单个操作点。

  • 操作点对象数组,其大小与参数网格的大小匹配参数财产。当你批量线性化MDL.,该软件仅使用一个模型编译。要获取与参数值组合对应的操作点,请使用批量修剪模型帕纳在线性化。的例子线性化命令,参见从参数变体导出的多个操作点的批次线性化模型

  • 多个快照时间。当你批量线性化MDL.,软件为每个快照时间和参数网格点组合模拟模型。该操作可以计算得昂贵。

blocksubstured.

替换为结构或结构阵列的块和模型子系统的线性化。

使用此属性为块或子系统指定自定义线性化。您还可以使用此语法进行没有分析线性化的块,例如具有不连续性或触发子系统的块。

使用该属性设置此属性Blocksub.输入参数或点表示法(st.blocksubstitutions = blocksub.)。有关所需结构的信息,请参阅Blocksub.

选项

线性化算法选项,指定为使用的选项集SLTUNEROPTIONS.

使用该属性设置此属性选择输入参数或点表示法(st.Options = opt.)。

模型

要线性化的Simulin万博1manbetxk模型的名称,由输入参数指定为字符向量MDL.

时髦

时间变量的单位。此属性指定返回的线性化模型的时间单位getiotransfergetLooptransfer.Getsitive, 和持久性。使用以下任何值:

  • '纳秒'

  • '微秒'

  • '毫秒'

  • '秒'

  • '分钟'

  • '小时'

  • '天'

  • '周'

  • “月”

  • '年'

默认:'秒'

对象功能

addblock. 将块添加到调谐块列表SLTUNER.界面
递抄 将信号添加到开口列表中SLINESERIZER.要么SLTUNER.界面
addpoint. 将信号添加到分析点列表中SLINESERIZER.要么SLTUNER.界面
GetPoints. 获得分析点的列表SLINESERIZER.要么SLTUNER.界面
阁下 获取开放列表SLINESERIZER.要么SLTUNER.界面
getblockparam. 获取调谐块的参数化SLTUNER.界面
getblockvalue. 获取调谐块参数化的当前值SLTUNER.界面
gettunedvalue. 获取当前调谐变量的值SLTUNER.界面
getblockrateconversion. 获取调谐块的速率转换设置SLTUNER.界面
setBlockParam. 设置调谐块的参数化SLTUNER.界面
setblockValue. 中设置调优块参数化的值SLTUNER.界面
setblockrateconversion. 设置调谐块的速率转换设置SLTUNER.界面
Systune. 调谐控制系统参数万博1manbetx使用SLTUNER.界面
loopune. 调整MIMO反馈循环万博1manbetx使用SLTUNER.界面
LoopView. 图形分析了控制系统调整的结果SLTUNER.界面
looptunesetup. 构建调整设置loopune.调整设置Systune.使用SLTUNER.界面
展示 显示可调谐块的参数化值SLTUNER.界面
getiotransfer 使用指定的I / O设置的传递函数SLINESERIZER.要么SLTUNER.界面
getLooptransfer. 使用指定点的开环传输功能SLINESERIZER.要么SLTUNER.界面
Getsitive 使用指定点的灵敏度函数SLINESERIZER.要么SLTUNER.界面
持久性 使用指定点的互补敏感函数SLINESERIZER.要么SLTUNER.界面
writeblockvalue. 更新块值万博1manbetx模型
WriteLookuplapleata. 更新调谐查找表的部分
removepoint. 从分析点列表中删除点SLINESERIZER.要么SLTUNER.界面
removeallpoints. 从分析点列表中删除所有要点SLINESERIZER.要么SLTUNER.界面
removeallopenings. 从永久开口列表中删除所有开口SLINESERIZER.要么SLTUNER.界面
刷新 重新同步SLINESERIZER.要么SLTUNER.与当前模型状态的接口

更多关于

全部收缩

分析点

分析点,用于SLINESERIZER.SLTUNER.接口,识别与线性分析和控制系统调谐相关的模型中的位置。您将分析点用作线性化命令的输入,例如getiotransfergetLooptransfer.Getsitive, 和持久性。作为线性化命令的输入,分析点可以在模型中指定任何开环或闭环传输函数。您还可以使用分析点来指定使用命令调整控制系统时的设计要求Systune.

地点参考模型内的特定块输出端口或在这种输出端口中的总线元件。为方便起见,您可以使用源自此端口的信号的名称来引用分析点。

您可以添加分析点到SLINESERIZER.要么SLTUNER.界面,S.,创建界面时。例如:

s = slinearizer('scdcascade',{‘u1’'y1'});

或者,您可以使用addpoint.命令。

查看所有分析点S., 类型S.在命令提示符处显示接口内容。对于每个分析点S.,显示屏包括块名称和端口号以及发起此时的信号的名称。您还可以编程方式使用所有分析点的列表GetPoints.

有关如何使用分析点的详细信息,请参阅标记对控制系统分析和设计感兴趣的信号标记批次线性化感兴趣的信号

永久的空缺

永久性开口,用于SLINESERIZER.SLTUNER.接口,识别软件打破信号流的型号内的位置。该软件强制执行这些开口以进行线性化和调整。使用永久开口来隔离特定的模型组件。假设您有一个大规模的模型捕获飞行器动态,并且您希望仅对机动帧进行线性分析。您可以使用永久开口来排除模型的所有其他组件。另一个例子是您在模型中具有级联循环,并且要分析特定循环。

地点指模型内的特定块输出端口。为方便起见,您可以使用源自此端口的信号的名称来引用一个开口。

您可以将永久性开口添加到SLINESERIZER.要么SLTUNER.界面,S.,当您创建界面或使用时递抄命令。要从永久开口列表中删除位置,请使用去掉命令。

查看所有开口S., 类型S.在命令提示符处显示接口内容。为每一个永久开放S.,显示屏包括块名称和端口号以及发起此位置的信号的名称。您还可以编程方式使用所有永久循环开口的列表阁下

自定义线性化功能

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

您的自定义线性化功能必须有一个blockdata.输入参数,它是软件创建和传递给功能的结构。blockdata.有以下字段:

场地 描述
BlockName 您指定自定义线性化的块的名称。
参数 阻止参数值,指定为结构阵列名称价值字段。参数包含您在中指定参数的名称和值blocksub.value.parameternames.parameternames.blocksub.value.parametervalues.字段。
输入

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

场地 描述
BlockName 块的全块路径,其输出连接到相应的块输入。
portindex. 由此指定的块的输出端口BlockName连接到相应的块输入。
价值 指定的信号的值BlockNameportindex.。如果此信号是矢量信号,则价值是一个具有相同维度的矢量。
纽约 块线性化的输出通道数。
nu. 块线性化的输入通道数。
块线性化 当前块的默认默认线性化指定为状态空间模型。您可以指定块线性化,这取决于使用默认线性化块线性化

您的自定义函数必须返回模型nu.输入和纽约输出。该模型必须是以下之一:

  • 线性模型以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.parameternames.blocksub.value.parametervalues.字段。

blocksub.value.parameternames = {'td'“t”};blocksub.value.parametervalues = [0.5 0.1];

算法

SLTUNER.使用中描述的算法来利用SIMUL万博1manbetxINK模型进行线性化精确的线性化算法

在R2014A介绍