4.3.4 AOE动作定义

AOE动作定义(边声明)配置内容:AOE ID、首尾节点、动作名称、失败模式、动作类型、动作参数。

AOE ID首尾节点动作名称失败模式动作类型动作参数
<u64><u64>;<u64><String>Default
Ignore
StopFailed
StopAll
None
Set_Points
SET_POINTS_WITH_CHECK
Set_Points2
SET_POINTS_WITH_CHECK2
Solve
NLSOLVE
MILP
SimpleMilp
NLP
< \ >
<String>:<Expr>;…
<Expr>
<Expr>
<Expr>
<Expr>
<Expr>
<Expr>
<Expr>
  • AOE ID:声明动作属于哪个AOE网络,用<u64>(64位无符号整数)表示。

  • 首尾节点:边需要声明首尾节点,用一对正整数表示,格式为:<尾节点ID>;<首节点ID>。边的方向为:尾节点→首节点。节点ID与AOE事件定义中相对应。

  • 动作名称:便于理解动作内容,是对动作的简要文字解释,用<String>(表示字符串类型)表示。

  • 失败模型:指动作执行失败后需要采取的措施。执行失败后可以选择以下几种处理措施:Default(尝试重新执行失败的动作)、Ignore(忽略本次失败并不影响其它动作)、StopFailed(停止受到影响的动作)、StopAll(停止本次控制策略的执行)。

  • 动作类型:分为None(无动作)、SET_POINTS(置点)、SET_POINTS_WITH_CHECK(带检查的置点)、SET_POINTS2(支持向量计算的置点)、SET_POINTS_WITH_CHECK2(支持向量计算的带检查置点)、Solve(线性方程组求解)、NLSOLVE(非线性方程组求解)、MILP与SimpleMilp(混合整数线性规划)、NLP(非线性规划)。其中,SetPoints除了对测点设值之外,还可以进行变量定义和计算,动作参数分为数字量和模拟量。动作的含义及其参数详见 AOE动作类型

  • 动作参数:根据动作类型不同而表示不同的含义:

    • 动作类型为无动作时,动作参数缺省;
    • 动作类型为置点时,动作参数为字符串和表达式,并按照变量类型分为数字量和模拟量两部分,置点动作既可以进行变量的定义,也可以把数字量或者模拟量设置给测点,其中字符串表示变量或测点名称,表达式表示变量定义式或者测点被设置的值;
    • 动作类型为线性方程组求解、稀疏混合整数线性规划问题求解、稠密描述的混合整数线性规划问题求解和非线性规划问题求解时,动作参数为描述对应的数学模型的字符串及相应参数。

失败模型说明

对节点i的事件是否会进行判断,取决于指向它的“动作“执行结果及失败模式,有以下几种情况:

  • 动作1,2,3全部成功,将进入节点i事件判断;
  • 动作1,2,3有失败的情况。这里假设动作1失败,又分为以下几种情况:
    • 动作1失败模式是Ignore,会进入节点i事件判断;
    • 动作1失败模式是Stop_Failed,不会进入节点i事件判断;
    • 动作1失败模式是Stop_All,不会进入节点i事件判断,而且会退出整个AOE;
    • 动作1失败模式是Default,会进入节点i事件判断。

综上,会进入节点i判断必须同时满足两个条件:

  • 没有失败模式为StopAll或StopFailed的动作执行失败;
  • 至少有一个执行成功或失败模式为Ignore的动作。

举例如下:

AOE ID首尾节点动作名称失败模式动作类型动作参数1动作参数2
700001;2动作1DefaultNone
700001;3动作2DefaultNone
700002;6动作3IgnoreMILPmax(x1+x2);
x1>=0;
x1:2,x2:2
700003;4动作4DefaultNone
700003;5动作5DefaultNone
700004;6动作6Stop_FailedMILPmax(x1+x2);
x1>=0;
x1:2,x2:2
700005;6动作7Stop_AllMILPmax(x1+x2);
x1>=0;
x1:2,x2:2
700006;7动作8DefaultSet_Pointsa4:a4+1;

该例子中,由于MILP优化不收敛,动作将会失败,动作3、6、7都将失败,但只有经过失败模式为“Ignore”的动作3才会进入节点6,然后进行动作8的赋值。

附件:失败模式.rar

动作类型示例说明

None(无动作)

AOE ID首尾节点动作名称失败模式动作类型动作参数1动作参数2
700011;2事件不动作DefaultNone

动作含义:ID为70001的AOE网络,节点1至节点2无动作。

SetPoints(置点)

AOE ID首尾节点动作名称失败模式动作类型动作参数1动作参数2
700022;3变量赋值DefaultSetPointsa:1;b:1.0;

动作含义:ID为70002的AOE网络,节点2至节点3进行赋值动作,离散型测点a(或变量)赋值为1,连续型测点b(或变量)赋值为1.0。

具体例子:房屋温度控制——AOE边声明。

SET_POINTS_WITH_CHECK(带检查的置点)

AOE ID首尾节点动作名称失败模式动作类型动作参数1动作参数2
700022;3赋值并检查DefaultSET_POINTS_WITH_CHECKa:1;b:1.0;

动作含义:ID为70002的AOE网络,节点2至节点3进行赋值并检查动作,离散型测点a(或变量)赋值为1,连续型测点b(或变量)赋值为1.0,并且等待测点a、b置点完成后,节点3事件才算发生。

Set_Points2(支持向量计算的置点)

AOE ID首尾节点动作名称失败模式动作类型动作参数1动作参数2
700022;3赋值并检查DefaultSet_Points2[a1,a2]:([1,2]+[15,10])*[10,100]+[1,2];[b1,b2]:([1.0,2.5]+[15.0,10.0])*[10.0,100.0]+[1.0,2.0];

动作含义:ID为70002的AOE网络,节点2至节点3进行向量计算并赋值。等式右边向量计算结果为[161,1202],并赋值给向量[a1,a2],即a1=161,a2=1202, b1=161.0, b2=1252.0。

SET_POINTS_WITH_CHECK2(支持向量计算的带检查置点)

AOE ID首尾节点动作名称失败模式动作类型动作参数1动作参数2
700022;3赋值并检查DefaultSET_POINTS_WITH_CHECK2[a1,a2]:[t1,t2]*[10,10]*[10,10]+[1,1];[b1,b2]:[t1,t2]*[10.0,10.0]*[10.0,10.0]+[1.5,1.5];

动作含义:ID为70002的AOE网络,节点2至节点3进行向量计算后赋值并检查动作。等式1右边向量计算结果为[100*t1+1,100*t2+1],等式2右边向量计算结果为[100.0*t1+1.5,100.0*t2+1.5]。测点b1赋值为100.0*t1+1.5,测点b2赋值为100.0*t2+1.5,并且等待向量[b1,b2]置点完成后,节点3事件才算发生。

Solve(线性方程组求解)

AOE ID首尾节点动作名称失败模式动作类型动作参数1动作参数2
700032;3方程组求解DefaultSolvex1+5/3*x2+min(2,5)*x3 = 1;
3*x2 = 4*3;
3*x2+sin(8-2)*x3 = 7;
x1,x2,x3

动作含义:ID为70003的AOE网络,节点2至节点3进行非线性方程组求解动作。

具体例子:直流法潮流计算——AOE边声明。

NLSOLVE(非线性方程组求解)

AOE ID首尾节点动作名称失败模式动作类型动作参数1动作参数2
700032;3非线性方程组求解DefaultNLSOLVEx1^2-10*x1+x2^2+8;
x1*x2^2+x1-10*x2+8;
x1,x2
max_iter:50;
tol:1e-6

动作含义:ID为70003的AOE网络,节点2至节点3进行非线性方程组求解动作。动作参数2为可选求解参数,默认值为最大迭代次数max_iter=50,收敛精度tol=1e-6。

具体例子:交流法潮流计算——AOE边声明。

MILP与SimpleMilp(混合整数线性规划)

AOE ID首尾节点动作名称失败模式动作类型动作参数1动作参数2
700042;3混合整数线性规划DefaultMILPmax((5*2)*x1+3*x2+2*x3+(10-3)*x4+4*x5);
2*x1+(2*4)*x2+4*x3+2*x4+max(1,5)*x5 <= 5*2;
x1:1,x2:1,x3:1,x4:1,x5:1
maxIt:500;
primalT:1e-6

动作含义:ID为70004的AOE网络,节点2至节点3进行混合整数线性规划动作。动作参数2为可选求解参数,默认值为最大迭代次数maxIt=500,收敛精度primalT=1e-6等。

具体例子:储能辅助调频——AOE边声明。

NLP(非线性规划)

AOE ID首尾节点动作名称失败模式动作类型动作参数1动作参数2
700052;3非线性规划DefaultNLPx1*x4*(x1+x2+x3)+x3;
x1*x2*x3*x4:[25/2e19];
x1^2+x2^2+x3^2+x4^2:[40/40];
x1:[1/5],x2:[1/5],x3:[1/5],x4:[1/5]
max_iter:500;
tol:1e-6

动作含义:ID为70005的AOE网络,节点2至节点3进行非线性规划动作。动作参数2为可选求解参数,默认值为最大迭代次数max_iter=50,收敛精度tol=1e-6等,详见Ipopt设置文档

具体例子:最优潮流计算——AOE边声明。