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` 中,以便在優化問題中考慮這兩個約束條件。
這段代碼的目的可能是確保系統的開關狀態連續時間滿足一定的要求,分別針對開啟和關閉狀態。具體約束條件的形式可能取決于具體的數學模型或問題設置。如果需要更詳細的解釋或有其他問題,請隨時提出。