主要内容

参数化增益计划

通常,Simulink中的增益预定控制系统万博1manbetx®使用查找表或Matlab功能块以指定增益值作为调度变量的函数。要调整,您可以通过参数增益曲面替换这些块。一种参数增益表面是一个基础函数扩展,其系数是可调的。例如,您可以模拟一个时变的增益K.T.)作为立方体多项式T.

K.T.)=K.0.+K.1T.+K.2T.2+K.3.T.3.

这里,K.0.,......,K.3.是可调系数。通过这种方式参数化计划的增益,Systune.可以调整增益表面系数,以满足您在代表性的操作条件集中的控制目标。对于利用调度变量平滑地变化的应用程序,这种方法为增益提供了明确的公式,软件可以直接写入Matlab功能块。当您使用查找表时,此方法可让您调整几个系数而不是许多单独查找表条目,大大减少了参数的数量并确保了操作点之间的平滑转换。

基函数参数化

在增益计划的控制器中,计划的增益是调度变量的函数,σ.。例如,增益计划的PI控制器具有以下形式:

C S. σ. = K. P. σ. + K. 一世 σ. S.

调整该控制器需要确定功能形式K.P.σ.) 和K.一世σ.)通过操作范围产生最佳系统性能σ.价值观。但是,调整任意功能很难。因此,必须仅考虑仅在有限的点集中考虑功能值,或者限制功能本身的一般性。

在第一种方法中,您可以选择一系列设计点,σ.,并调整收益K.P.K.一世在每个设计点上独立。得到的一组增益值存储在由调度变量驱动的查找表中,σ.。这种方法的缺点是调谐可能为相邻设计点产生基本不同的值,在从一个操作点转换到另一个操作点时导致不期望的跳跃。

或者,您可以将增益模拟为平滑功能σ.,但是通过使用特定的基函数扩展来限制这些功能的一般性。例如,假设σ.是标量变量。你可以模型K.P.σ.)作为一种二次函数σ.

K. P. σ. = K. 0. + K. 1 σ. + K. 2 σ. 2

调谐后,该参数增益可能具有诸如以下内容的简档(曲线的特定形状取决于调谐系数值和范围σ.):

或者,假设σ.由两个调度变量组成,α.V.。然后,你可以模拟K.P.σ.)作为双线性功能α.V.

K. P. α. V. = K. 0. + K. 1 α. + K. 2 V. + K. 3. α. V.

调整后,该参数增益可能具有如下配置文件。这里也是,曲线的特定形状取决于调谐系数值和范围σ.价值观:

用于调整增益计划Systune.,你用一个参数增益表面这是基于基础函数的特定扩展σ.

K. σ. = K. 0. + K. 1 F 1 N σ. + ...... + K. m F m N σ.

基本职能F1,......,Fm用户选择和修复。这些功能运行Nσ.), 在哪里N是一个函数,可缩放并将调度变量归一成到间隔[-1,1](或您指定的间隔)。扩展系数,K.0.,......,K.m,是增益表面的可调参数。K.0.,......,K.m可以是标量或矩阵值,具体取决于增益的I / O大小K.σ.)。基础函数的选择是有问题的,但一般来说,首先尝试低阶多项式扩展。

可调增益表面

使用Tunablyurface.命令以构建增益表面的可调模型,在设计点网格上采样(σ.价值观)。例如,考虑与双程依赖性的两个调度变量的增益,α.V.

K. P. α. V. = K. 0. + K. 1 α. + K. 2 V. + K. 3. α. V.

假设α.是一个发病率,范围为0°至15°,以及V.是速度从300米/秒到700米/秒的速度。创建跨越这些范围的设计点网格。这些设计点必须匹配您对变化或非线性工厂采样的参数值。(看用于增益预定控制器调整的工厂模型。)

[alpha,v] = ndgrid(0:5:15,300:100:700);Domain = struct('α',α,'v',v);

指定此表面参数化的基本函数,α.V., 和α。这Tunablyurface.命令希望基础函数被安排为两个输入变量的函数的向量。您可以使用匿名功能来表达基础函数。

shapefcn = @(alpha,v)α[alpha,v,alpha * v];

或者,使用PolyBasis.傅立冻, 要么ndbasis.根据需要生成与许多调度变量的基函数。

使用设计点和基本功能创建可调表面。

kp = tunballulface('kp',1,域,shapefcn);

kp.是增益表面的可调模型。Tunablyurface.将表面参数化为:

K. P. α. V. = K. ¯ 0. + K. ¯ 1 α. ¯ + K. ¯ 2 V. ¯ + K. ¯ 3. α. ¯ V. ¯

在哪里

α. ¯ = α. - 7.5 7.5 V. ¯ = V. - 500. 200.

表面以归一化变量表示的表面, α. ¯ V. ¯ [ - 1 1 ] 2 而不是α.V.。这种正常化,哪个Tunablyurface.默认情况下执行,从而提高了所执行的优化的调节Systune.。如果需要,您可以更改默认缩放和归一化。(看Tunablyurface.)。

第二个输入论点Tunablyurface.指定恒定系数的初始值,K.0.。默认情况下,K.0.当所有调度变量位于其范围内的所有调度变量时,都是增益。Tunablyurface.从中获取增益表面的I / O尺寸K.0.。因此,您可以通过为该输入提供数组来创建数组值可调增益。

karr = tunballureface('karr',(2),域,shapefcn);

karr.是一个2×2矩阵,其中每个条目是具有独立系数的调度变量的双线性函数。

可调谐增益与两个独立的调度变量

此示例显示如何模拟标量增益K.依赖于两个调度变量的双线性依赖。您通过创建代表两个变量的独立依赖性的设计点网格来这样做。

假设第一个变量α.是一种发病率,范围为0到15度,以及第二个变量V.是一个范围从300到600米/秒的速度。默认情况下,归一化变量是:

X = α. - 7. 5. 7. 5. y = V. - 4. 5. 0. 1 5. 0.

增益表面被建模为:

K. α. V. = K. 0. + K. 1 X + K. 2 y + K. 3. X y

在哪里 K. 0. K. 3. 是可调参数。

创建一个设计点网格,(α.V.),线性间隔α.V.。这些设计点是用于调整增益表面系数的调度变量值。它们必须对应于您对工厂进行采样的参数值。

[alpha,v] = ndgrid(0:3:15,300:50:600);

这些阵列,αV.,表示两个调度变量的独立变化,每个都在其全部范围内。将它们放入结构中以定义可调表面的设计点。

Domain = struct('α',α,'v',v);

创建描述双线性扩展的基本函数。

shapefcn = @(x,y)[x,y,x * y];%或使用polybasis('canonical',1,2)

在阵列中返回shapefcn.,基础职能是:

F 1 X y = X F 2 X y = y F 3. X y = X y

创建可调增益表面。

k = Tunablyurface('K',1,域,shapefcn);

您可以使用可调谐曲面作为Simulink模型中查找表块或MATLAB功能块的参数化。万博1manbetx或者,使用型号互连命令将其作为可调谐元素在Matlab中建模的控制系统中结合。调整系数后,您可以使用使用的生成增益曲面Viewsurf.命令。对于此示例,而不是调谐,手动将系数设置为非零值并查看结果增益。

ktuned = setdata(k,[100,28,40,10]);Viewsurf(Ktuned)

图包含轴。具有标题增益K(alpha,V)的轴包含类型表面的物体。

Viewsurf.显示增益表面作为调度变量的函数,用于指定的值范围领域并储存在SamplingGrid.增益表面的财产。

可调表面万博1manbetx

在Simulin万博1manbetxk模型中,您使用查找表块模型增益计划,Matlab功能块,或者矩阵插值块,如上所述模型在Simulink中获得增益预定控制系统万博1manbetx。调整这些增益表面,使用Tunablyurface.为每个块创建增益表面。在里面SLTUNER.界面到模型,将每个增益计划指定为块进行调谐,并将其参数化设置为相应的增益曲面。例如,rct_cstr.模型包括增益预定的PI控制器,浓缩控制器子系统,其中增益kp.ki.随着调度变量而变化CR.

调整查找表kp.ki.,为每个创建可调谐表面。假设CREQ.是设计点的矢量,你希望收益差异差异CR.

tuninggrid = struct('CR',CREQ);shapefcn = @(cr)[cr,cr ^ 2];kp = tunballulface('kp',0,tuninggrid,shapefcn);ki = tunballureface('ki',-2,tuninggrid,shapefcn);

假设你有一个数组Gd.植物子系统的线性化,Cstr.,在每个设计点CREQ.。(看用于增益预定控制器调整的工厂模型)。创建一个SLTUNER.替换该阵列的接口用于工厂子系统,并指定用于调谐的两个查找表块。

blocksubs = struct('名称''rct_cstr / cstr''价值',GD);st0 = sltuner('rct_cstr',{'kp''ki'},blocksubs);

最后,使用可调谐曲面参数化查找表。

st0.setBlockParam('kp',kp);st0.setBlockParam('ki',ki);

当你调整时sto.Systune.调整可调表面的系数kp.ki.,因此每个可调谐表面代表关注的关系CR.和增益。将调谐值写回块以进行验证时,setBlockParam.通过在您在相应块中指定的断点处评估可调谐曲面自动生成调谐的查找表数据。

有关此示例的更多详细信息,请参阅增益预定化学反应器的控制

可调表面马铃薯

用于在MATLAB中建模的控制系统®,使用可调表面构造更复杂的增益计划控制元件,例如增益计划的PID控制器,过滤器或状态空间控制器。例如,假设您创建了两个增益曲面kp.ki.使用Tunablyurface.。以下命令构造可调谐增益预定的PI控制器。

c0 = pid(kp,ki);

同样,假设您创建了四个矩阵值增益曲面一种B.CD.。以下命令构造可调谐增益预定的状态空间控制器。

C1 = SS(A,B,C,D);

然后,您将增益计划的控制器合并到整个控制系统的广义模型中。例如,假设G是在指定的设计点上采样的植物的一系列模型kp.ki.。然后,以下命令构建增益计划的单循环PID控制系统的可调模型。

T0 =反馈(G * C0,1);

当您使用其他LTI模型互连可调谐表面时,得到的模型是可调化的阵列雄鸡楷模。可调表面中的设计点确定阵列的尺寸。因此,阵列中的每个条目表示在相应的调度变量值处的系统。这SamplingGrid.阵列的属性存储这些设计点。

T0 =反馈(G * KP,1)
T0 = 4x5广义连续时间 - 空间模型阵列。每个模型都有1个输出,1个输入,3个状态,以及以下块:kp:parametric 1x4矩阵,1个出现。键入“ss(t0)”以查看当前值,“get(t0)”以查看所有属性,以及“t0.blocks”以与块交互。

生成的广义模型具有与用于创建模型的增益曲面对应的可调块。在此示例中,系统具有一个增益表面,kp.,它具有对应的四个可调系数K.0.K.1K.2, 和K.3.。因此,可调块是矢量值实际参数有四个条目。

当您调整控制系统时Systune.,软件调整可调谐表面中指定的每个设计点的系数。

有关MATLAB中整个工作流程的示例,请参阅“MATLAB中的”控制器调整“部分增益预定化学反应器的控制

也可以看看

相关话题