matlab安装yalmip和cplex出错 - 知乎 (zhihu.com)
Cplex的安装和使用实例-CSDN博客
一条龙教程:Matlab下使用yalmip(工具箱)+cplex(求解器)_使用yalmip和cplex求解器进行建模和求解的步骤如下:-CSDN博客
啊啊啊,好开心,matlab实验的结果出来了,但是运行时间起码有十分钟,真的哭泣,cry ,救命,弄错了,是python的结果,无语了,撤回我说的话。
妈的,matlab快运行了半个小时了。
MATLAB+YALMIP+CPLEX
成功了一部分了,加油!!!差点把本名打上去了,哈哈哈!!!
%约束 caseName = case30; p30=sum(caseName.bus(:,3));%当前节点功率之和 pbl=pload./p30; pload1=repmat(pbl,30,1).*repmat(caseName.bus(:,3),1,T); P_D=0.85.*pload1;%固定负荷
这段MATLAB代码执行以下操作:
1. `caseName = case30;`: 将变量`case30`的值赋给变量`caseName`。这表明`case30`可能是一个包含有关电力系统案例信息的数据集或结构。
2. `p30=sum(caseName.bus(:,3));`: 对`caseName`数据集中的`bus`字段的第三列的值进行求和。这计算了当前节点的总功率。
3. `pbl=pload./p30;`: 通过将向量`pload`除以当前节点的总功率(`p30`)来计算归一化的功率需求向量`pbl`。
4. `pload1=repmat(pbl,30,1).*repmat(caseName.bus(:,3),1,T);`: 通过将归一化的功率需求向量`pbl`和`caseName`中`bus`字段的第三列进行扩展后进行逐元素相乘,创建一个矩阵`pload1`。扩展是为了匹配维度以进行逐元素相乘。
5. `P_D=0.85.*pload1;`: 通过将0.85的固定负载系数应用于`pload1`矩阵中的值,计算实际功率需求`P_D`。这代表考虑了固定负载系数后的最终功率需求。
总体而言,该代码似乎在处理电力系统案例中的与功率相关的数据,对功率需求进行归一化,并考虑了固定负载系数计算实际功率需求。
这段代码涉及到约束条件的处理,具体解释如下:
1. `cons`: 可能是一个存储约束条件的变量,用于存储新的约束条件。
2. `consequtiveON([OnOff_history ugone(i,:)],On_min)`: 这部分代码可能是调用一个函数或子程序,用于检查输入的向量 `[OnOff_history ugone(i,:)]` 中连续值为1的元素的个数是否大于等于 `On_min`。这可能用于约束条件的判断,确保系统处于某种状态的连续时间超过设定的最小值。
3. `consequtiveON(1-[OnOff_history ugone(i,:)],Off_min)`: 这部分代码可能是调用另一个函数或子程序,用于检查输入的向量 `1-[OnOff_history ugone(i,:)]` 中连续值为1的元素的个数是否大于等于 `Off_min`。这也可能用于约束条件的判断,确保系统处于另一种状态的连续时间超过设定的最小值。
4. `cons=[cons, consequtiveON([OnOff_history ugone(i,:)],On_min), consequtiveON(1-[OnOff_history ugone(i,:)],Off_min)];`: 这行代码将上述两个约束条件添加到 `cons` 中,以便在优化问题中考虑这两个约束条件。
这段代码的目的可能是确保系统的开关状态连续时间满足一定的要求,分别针对开启和关闭状态。具体约束条件的形式可能取决于具体的数学模型或问题设置。如果需要更详细的解释或有其他问题,请随时提出。