电力系统潮流计算的计算机算法(四)——PQ快速解耦潮流算法

2024-05-16 08:36

本文主要是介绍电力系统潮流计算的计算机算法(四)——PQ快速解耦潮流算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

本篇为本科课程《电力系统稳态分析》的笔记。

本篇为这一章的第四篇笔记。上一篇传送门。

潮流计算的快速解耦法

牛顿-拉夫逊法潮流计算,主要的工作量在于形成雅可比矩阵和求解修正方程。由于雅可比矩阵的阶数为n+m-1,约为节点总数的两倍,非对称矩阵,且在迭代过程中需要不断的变化,所以大规模的电力系统中应用该算法很费时费力。

PQ分解法潮流计算的修正方程

有一种快速解耦法,是最有效且应用最广。电力系统中线路的电阻远小于电抗,即 R ≪ X R\ll X RX,换成导纳表示即 G ≪ B G\ll B GB,说明可以忽略所有的G,令 G = 0 G=0 G=0。前面一章已经推理过,从物理意义上,有功功率P主要和电压相角 θ \theta θ相关,无功功率主要和电压有效值U相关。

节点的分类保持不变。修正方程式如下:
[ Δ P Δ Q ] = − [ H N M L ] [ Δ θ Δ U ~ ] \begin{bmatrix} \Delta \boldsymbol{P}\\ \Delta \boldsymbol{Q} \end{bmatrix}=-\begin{bmatrix} \boldsymbol{H} & \boldsymbol{N}\\ \boldsymbol{M} & \boldsymbol{L} \end{bmatrix} \begin{bmatrix} \Delta \boldsymbol{\theta}\\ \Delta \boldsymbol{\widetilde{U}} \end{bmatrix} [ΔPΔQ]=[HMNL][ΔθΔU ]

根据有功功率P主要和电压相角 θ \theta θ相关,无功功率主要和电压有效值U相关,可以将 N , M \boldsymbol{N},\boldsymbol{M} N,M置为零,从而将修正方程化为:
[ Δ P Δ Q ] = − [ H 0 0 L ] [ Δ θ Δ U ~ ] \begin{bmatrix} \Delta \boldsymbol{P}\\ \Delta \boldsymbol{Q} \end{bmatrix}=-\begin{bmatrix} \boldsymbol{H} & 0\\ 0 & \boldsymbol{L} \end{bmatrix} \begin{bmatrix} \Delta \boldsymbol{\theta}\\ \Delta \boldsymbol{\widetilde{U}} \end{bmatrix} [ΔPΔQ]=[H00L][ΔθΔU ]

所以得到两个独立的方程,第一个式子只和相角和有功功率有关,第二个式子只和电压和无功功率有关:
− H Δ θ = Δ P − L Δ U ~ = Δ Q -\boldsymbol{H}\Delta\boldsymbol{\theta}=\Delta\boldsymbol{P}\\\\ -\boldsymbol{L}\Delta\boldsymbol{\widetilde{U}}=\Delta\boldsymbol{Q} HΔθ=ΔPLΔU =ΔQ

另外,各个节点之间的相角差很小,即 θ ≈ 0 ° \theta\approx 0\degree θ,再考虑到 G ≪ B G\ll B GB,所以有 cos ⁡ θ ≈ 1 , G cos ⁡ θ ≪ B \cos\theta\approx 1,G\cos\theta\ll B cosθ1,GcosθB

所以,雅可比矩阵的各个元素可以化简为:
H i j = U i U j B i j H i i = − U i ∑ j = 1 j ≠ i n U j B i j = − U i ∑ j = 1 n U j B i j + U i 2 B i i = Q i + U i 2 B i i L i j = U i U j B i j L i i = U i ∑ j = 1 j ≠ i n U j B i j + 2 U i 2 B i i = U i ∑ j = 1 n U j B i j + U i 2 B i i = − Q i + U i 2 B i i \begin{aligned} &H_{ij}=U_{i}U_{j}B_{ij}\\ &H_{ii}=-U_{i}\sum_{j=1\atop j\neq i}^{n}U_{j}B_{ij}=-U_{i}\sum_{j=1}^{n}U_{j}B_{ij}+U_{i}^{2}B_{ii}=Q_{i}+U_{i}^{2}B_{ii}\\ &L_{ij}=U_{i}U_{j}B_{ij}\\ &L_{ii}=U_{i}\sum_{j=1\atop j\neq i}^{n}U_{j}B_{ij}+2U_{i}^{2}B_{ii}=U_{i}\sum_{j=1}^{n}U_{j}B_{ij}+U_{i}^{2}B_{ii}=-Q_{i}+U_{i}^{2}B_{ii} \end{aligned} Hij=UiUjBijHii=Uij=ij=1nUjBij=Uij=1nUjBij+Ui2Bii=Qi+Ui2BiiLij=UiUjBijLii=Uij=ij=1nUjBij+2Ui2Bii=Uij=1nUjBij+Ui2Bii=Qi+Ui2Bii

按照导纳的定义,上面两个式子中 U i 2 B i i U_{i}^{2}B_{ii} Ui2Bii应是各元件电抗远大于电阻的前提下,除了节点i之外的其他节点都接地的时候,由节点i注入的无功功率。它必然远大于正常运行时节点i的注入无功功率,即 U i 2 B i i ≫ Q i U_{i}^{2}B_{ii}\gg Q_i Ui2BiiQi,则可以化简:
H i i = U i 2 B i i L i i = U i 2 B i i H_{ii}=U_{i}^{2}B_{ii}\\\\ L_{ii}=U_{i}^{2}B_{ii} Hii=Ui2BiiLii=Ui2Bii

这样,矩阵 H , L \boldsymbol{H},\boldsymbol{L} H,L具有相同的表达式,但是他们的阶数不同,前者为(n-1)阶,后者为(m-1)阶。

矩阵 H \boldsymbol{H} H可以表示为:
b o l d s y m b o l H = [ U 1 2 B 11 U 1 U 2 B 12 ⋯ U 1 U n − 1 B 1 , n − 1 U 2 U 1 B 21 U 2 2 B 22 ⋯ U 2 U n − 1 B 2 , n − 1 ⋮ ⋮ ⋱ ⋮ U n − 1 U 1 B n − 1 , 1 U n − 1 U 2 B n − 1 , 2 ⋯ U n − 1 2 B n − 1 , n − 1 ] = [ U 1 0 ⋯ 0 0 U 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ U n − 1 ] [ B 11 B 12 ⋯ B 1. n − 1 B 21 B 22 ⋯ ⋮ ⋮ ⋮ ⋱ ⋮ B n − 1 , 1 B n − 1 , 2 ⋯ B n − 1 , n − 1 ] [ U 1 0 ⋯ 0 0 U 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ U n − 1 ] boldsymbol{H}=\begin{bmatrix} U_1^2B_{11}&U_1U_2B_{12}&\cdots&U_1U_{n-1}B_{1,n-1}\\U_2U_1B_{21}&U_2^2B_{22}&\cdots&U_2U_{n-1}B_{2,n-1}\\\vdots&\vdots&\ddots&\vdots\\U_{n-1}U_1B_{n-1,1}&U_{n-1}U_2B_{n-1,2}&\cdots&U_{n-1}^2B_{n-1,n-1} \end{bmatrix}=\begin{bmatrix} U_1&0&\cdots&0\\0&U_2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&U_{n-1} \end{bmatrix} \begin{bmatrix} B_{11}&B_{12}&\cdots&B_{1.n-1}\\B_{21}&B_{22}&\cdots&\vdots\\\vdots&\vdots&\ddots&\vdots\\B_{n-1,1}&B_{n-1,2}&\cdots&B_{n-1,n-1} \end{bmatrix} \begin{bmatrix} U_1&0&\cdots&0\\0&U_2&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&U_{n-1} \end{bmatrix} boldsymbolH= U12B11U2U1B21Un1U1Bn1,1U1U2B12U22B22Un1U2Bn1,2U1Un1B1,n1U2Un1B2,n1Un12Bn1,n1 = U1000U2000Un1 B11B21Bn1,1B12B22Bn1,2B1.n1Bn1,n1 U1000U2000Un1

而矩阵 L \boldsymbol{L} L可以表示为:
L = [ U 1 2 B 11 U 1 U 2 B 12 ⋯ U 1 U m B 1 m U 2 U 1 B 21 U 2 2 B 22 ⋯ U 2 U m B 2 m ⋮ ⋮ ⋱ ⋮ U m U 1 B m 1 U m U 2 B m 2 ⋯ U m 2 B m m ] = [ U 1 0 ⋯ 0 0 U 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ U m ] [ B 11 B 12 ⋯ B 1 m B 21 B 22 ⋯ B 2 m ⋮ ⋮ ⋱ ⋮ B m 1 B m 2 ⋯ B m m ] [ U 1 0 ⋯ 0 0 U 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ U m ] \boldsymbol{L}=\begin{bmatrix} U_{1}^{2}B_{11}&U_{1}U_{2}B_{12}&\cdots&U_{1}U_{m}B_{1m}\\U_{2}U_{1}B_{21}&U_{2}^{2}B_{22}&\cdots&U_{2}U_{m}B_{2m}\\\vdots&\vdots&\ddots&\vdots\\U_{m}U_{1}B_{m1}&U_{m}U_{2}B_{m2}&\cdots&U_{m}^{2}B_{mm} \end{bmatrix}=\begin{bmatrix} U_{1}&0&\cdots&0\\0&U_{2}&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&U_{m} \end{bmatrix} \begin{bmatrix} B_{11}&B_{12}&\cdots&B_{1m}\\B_{21}&B_{22}&\cdots&B_{2m}\\\vdots&\vdots&\ddots&\vdots\\B_{m1}&B_{m2}&\cdots&B_{mm} \end{bmatrix} \begin{bmatrix} U_{1}&0&\cdots&0\\0&U_{2}&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&U_{m} \end{bmatrix} L= U12B11U2U1B21UmU1Bm1U1U2B12U22B22UmU2Bm2U1UmB1mU2UmB2mUm2Bmm = U1000U2000Um B11B21Bm1B12B22Bm2B1mB2mBmm U1000U2000Um

然后将变化过的矩阵 H , L \boldsymbol{H},\boldsymbol{L} H,L带入上面说过的两个独立方程式内,可得新的修正方程,第一个式子为:
− [ U 1 0 ⋯ 0 0 U 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ U n − 1 ] [ B 11 B 12 ⋯ B 1 , n − 1 B 21 B 22 ⋯ B 2 , n − 1 ⋮ ⋮ ⋱ ⋮ B n − 1 , 1 B n − 1 , 2 ⋯ B n − 1 , n − 1 ] [ U 1 Δ θ 1 U 2 Δ θ 2 ⋮ U n − 1 Δ θ n − 1 ] = [ Δ P 1 Δ P 2 ⋮ Δ P n − 1 ] -\begin{bmatrix} U_{1}&0&\cdots&0\\0&U_{2}&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&U_{n-1} \end{bmatrix} \begin{bmatrix} B_{11}&B_{12}&\cdots&B_{1,n-1}\\B_{21}&B_{22}&\cdots&B_{2,n-1}\\\vdots&\vdots&\ddots&\vdots\\B_{n-1,1}&B_{n-1,2}&\cdots&B_{n-1,n-1} \end{bmatrix} \begin{bmatrix} U_{1}\Delta\theta_{1}\\U_{2}\Delta\theta_{2}\\\vdots\\U_{n-1}\Delta\theta_{n-1} \end{bmatrix}= \begin{bmatrix} \Delta P_{1}\\\Delta P_{2}\\\vdots\\\Delta P_{n-1} \end{bmatrix} U1000U2000Un1 B11B21Bn1,1B12B22Bn1,2B1,n1B2,n1Bn1,n1 U1Δθ1U2Δθ2Un1Δθn1 = ΔP1ΔP2ΔPn1
进一步化简为:
− [ B 11 B 12 ⋯ B 1 , n − 1 B 21 B 22 ⋯ B 2 , n − 1 ⋮ ⋮ ⋱ ⋮ B n − 1 , 1 B n − 1 , 2 ⋯ B n − 1 , n − 1 ] [ U 1 Δ θ 1 U 2 Δ θ 2 ⋮ U n − 1 Δ θ n − 1 ] = [ Δ P 1 / U 1 Δ P 2 / U 2 ⋮ Δ P n − 1 / U n − 1 ] -\begin{bmatrix} B_{11}&B_{12}&\cdots&B_{1,n-1}\\B_{21}&B_{22}&\cdots&B_{2,n-1}\\\vdots&\vdots&\ddots&\vdots\\B_{n-1,1}&B_{n-1,2}&\cdots&B_{n-1,n-1} \end{bmatrix} \begin{bmatrix} U_{1}\Delta\theta_{1}\\U_{2}\Delta\theta_{2}\\\vdots\\U_{n-1}\Delta\theta_{n-1} \end{bmatrix}= \begin{bmatrix} \Delta P_{1}/U_{1}\\\Delta P_{2}/U_{2}\\\vdots\\\Delta P_{n-1}/U_{n-1} \end{bmatrix} B11B21Bn1,1B12B22Bn1,2B1,n1B2,n1Bn1,n1 U1Δθ1U2Δθ2Un1Δθn1 = ΔP1/U1ΔP2/U2ΔPn1/Un1

第二个式子为:
− [ U 1 0 ⋯ 0 0 U 2 ⋯ 0 ⋮ ⋮ ⋱ ⋮ 0 0 ⋯ U m ] [ B 11 B 12 ⋯ B 1 m B 21 B 22 ⋯ B 2 m ⋮ ⋮ ⋱ ⋮ B m 1 B m 2 ⋯ B m m ] [ Δ U 1 Δ U 2 ⋮ Δ U m ] = [ Δ Q 1 Δ Q 2 ⋮ Δ Q m ] -\begin{bmatrix} U_{1}&0&\cdots&0\\0&U_{2}&\cdots&0\\\vdots&\vdots&\ddots&\vdots\\0&0&\cdots&U_{m} \end{bmatrix} \begin{bmatrix} B_{11}&B_{12}&\cdots&B_{1m}\\B_{21}&B_{22}&\cdots&B_{2m}\\\vdots&\vdots&\ddots&\vdots\\B_{m1}&B_{m2}&\cdots&B_{mm} \end{bmatrix} \begin{bmatrix} \Delta U_{1}\\\Delta U_{2}\\\vdots\\\Delta U_{m} \end{bmatrix} =\begin{bmatrix} \Delta Q_{1}\\\Delta Q_{2}\\\vdots\\\Delta Q_{m} \end{bmatrix} U1000U2000Um B11B21Bm1B12B22Bm2B1mB2mBmm ΔU1ΔU2ΔUm = ΔQ1ΔQ2ΔQm
进一步化简为:
− [ B 11 B 12 ⋯ B 1 m B 21 B 22 ⋯ B 2 m ⋮ ⋮ ⋱ ⋮ B m 1 B m 2 ⋯ B m m ] [ Δ U 1 Δ U 2 ⋮ Δ U m ] = [ Δ Q 1 / U 1 Δ Q 2 / U 2 ⋮ Δ Q m / U m ] -\begin{bmatrix} B_{11}&B_{12}&\cdots&B_{1m}\\B_{21}&B_{22}&\cdots&B_{2m}\\\vdots&\vdots&\ddots&\vdots\\B_{m1}&B_{m2}&\cdots&B_{mm} \end{bmatrix} \begin{bmatrix} \Delta U_{1}\\\Delta U_{2}\\\vdots\\\Delta U_{m} \end{bmatrix}= \begin{bmatrix} \Delta Q_{1}/U_{1}\\\Delta Q_{2}/U_{2}\\\vdots\\\Delta Q_{m}/U_{m} \end{bmatrix} B11B21Bm1B12B22Bm2B1mB2mBmm ΔU1ΔU2ΔUm = ΔQ1/U1ΔQ2/U2ΔQm/Um

则第一个方程式可以简写为:
B ′ Δ θ ∘ U = Δ P / U \boldsymbol{B}'\Delta\boldsymbol{\theta}\circ\boldsymbol{U}=\Delta\boldsymbol{P}/\boldsymbol{U}\\\\ BΔθU=ΔP/U

其中, ∘ \circ 表示两个矩阵逐元素相乘, / / /表示两个矩阵逐元素相除。矩阵 B ′ \boldsymbol{B}' B − B -\boldsymbol{B} B的前n-1行前n-1列,是对称常定矩阵, Δ θ , Δ P , U \Delta\boldsymbol{\theta},\Delta\boldsymbol{P},\boldsymbol{U} Δθ,ΔP,U均为n-1行的列向量。

第二个方程式可以简写为:
B ′ ′ Δ U = Δ Q / U \boldsymbol{B}''\Delta\boldsymbol{U}=\Delta\boldsymbol{Q}/\boldsymbol{U} B′′ΔU=ΔQ/U

其中, / / /表示两个矩阵逐元素相除。矩阵 B ′ ′ \boldsymbol{B}'' B′′ − B -\boldsymbol{B} B的前m行前m列,是对称常定矩阵, Δ θ , U , Δ P \Delta\boldsymbol{\theta},\boldsymbol{U},\Delta\boldsymbol{P} Δθ,U,ΔP均为m行的列向量。

将上述方程化简,可得:
B ′ Δ θ ~ = Δ P ~ B ′ ′ Δ U = Δ Q ~ \boldsymbol{B}'\Delta\widetilde{\boldsymbol{\theta}}=\Delta\widetilde{\boldsymbol{P}}\\\\ \boldsymbol{B}''\Delta\boldsymbol{U}=\Delta\widetilde{\boldsymbol{Q}} BΔθ =ΔP B′′ΔU=ΔQ

其中, Δ θ ~ = [ U 1 Δ θ 1 U 2 Δ θ 2 ⋯ U n − 1 Δ θ n − 1 ] T \Delta\widetilde{\boldsymbol{\theta}}=[U_1\Delta\theta_1\quad U_2\Delta\theta_2\quad \cdots \quad U_{n-1}\Delta\theta_{n-1}]^T Δθ =[U1Δθ1U2Δθ2Un1Δθn1]T Δ P ~ = [ Δ P 1 / U 1 Δ P 2 / U 2 ⋯ Δ P n − 1 / U n − 1 ] T \Delta\widetilde{\boldsymbol{P}}=[\Delta P_1/U_1\quad \Delta P_2/U_2\quad \cdots \quad \Delta P_{n-1}/U_{n-1}]^T ΔP =[ΔP1/U1ΔP2/U2ΔPn1/Un1]T,\Delta\widetilde{\boldsymbol{Q}}=[\Delta Q_1/U_1\quad \Delta Q_2/U_2\quad \cdots \quad \Delta Q_{m}/U_{m}]^T。第一个方程式为相位修正方程,第二个方程为幅值修正方程。

PQ分解法潮流计算的步骤

计算方法的前三步和牛顿法相同,而后面的迭代过程为:

  1. 形成两个系数矩阵 B ′ , B ′ ′ \boldsymbol{B}',\boldsymbol{B}'' B,B′′,并对他们做三角分解,即Cholesky分解,如下所示:
    B ′ = L ′ D ′ ( L ′ ) T B ′ ′ = L ′ ′ D ′ ′ ( L ′ ′ ) T \boldsymbol{B}'=\boldsymbol{L}'\boldsymbol{D}'(\boldsymbol{L}')^T\\\\ \boldsymbol{B}''=\boldsymbol{L}''\boldsymbol{D}''(\boldsymbol{L}'')^T B=LD(L)TB′′=L′′D′′(L′′)T
  2. 设置迭代次数为k=0。
  3. θ ( k ) , U ( k ) \boldsymbol{\theta}^{(k)},\boldsymbol{U}^{(k)} θ(k),U(k)、各PV节点的电压有效值和平衡节点的电压有效值以及相角,按照有功功率误差的计算公式计算出各个PQ节点和PV节点的 Δ P i ( k ) \Delta P_i^{(k)} ΔPi(k),然后再进一步计算出 Δ P ~ i ( k ) \Delta \widetilde{P}_i^{(k)} ΔP i(k)。这一步不要计算无功功率误差。
  4. 通过前代和回代求解出修正方程的第一个式子,得到各节点的相角修正值 Δ θ i ( k ) ( i = 1 , 2 , ⋯ , n − 1 ) \Delta\theta_i^{(k)}\quad(i=1,2,\cdots,n-1) Δθi(k)(i=1,2,,n1)
  5. 修正各个节点的相角值,即 θ i ( k + 1 ) = θ i ( k ) + Δ θ i ( k ) ( i = 1 , 2 , ⋯ , n − 1 ) \theta_i^{(k+1)}=\theta_i^{(k)}+\Delta\theta_i^{(k)}\quad(i=1,2,\cdots,n-1) θi(k+1)=θi(k)+Δθi(k)(i=1,2,,n1)
  6. 利用 θ ( k + 1 ) , U ( k ) \boldsymbol{\theta}^{(k+1)},\boldsymbol{U}^{(k)} θ(k+1),U(k)、各PV节点的电压有效值和平衡节点的电压有效值以及相角,按照无功功率误差的计算公式计算出各个PQ节点、的 Δ Q i ( k ) \Delta Q_i^{(k)} ΔQi(k),然后再进一步计算出 Δ Q ~ i ( k ) \Delta \widetilde{Q}_i^{(k)} ΔQ i(k)
  7. 通过前代和回代求解出修正方程的第二个式子,得到各节点的电压有效值的修正值 Δ U i ( k ) ( i = 1 , 2 , ⋯ , m ) \Delta U_i^{(k)}\quad(i=1,2,\cdots,m) ΔUi(k)(i=1,2,,m)
  8. 修正各个节点的电压有效值,即 U i ( k + 1 ) = U i ( k ) + Δ U i ( k ) ( i = 1 , 2 , ⋯ , m ) U_i^{(k+1)}=U_i^{(k)}+\Delta U_i^{(k)}\quad(i=1,2,\cdots,m) Ui(k+1)=Ui(k)+ΔUi(k)(i=1,2,,m)
  9. 使用收敛判据判断是否收敛,若收敛,则执行牛顿法潮流计算步骤中的第11步,然后结束,若不收敛,则设置k=k+1,然后返回第2步,进行下一轮的迭代。

这篇关于电力系统潮流计算的计算机算法(四)——PQ快速解耦潮流算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/994403

相关文章

springboot security快速使用示例详解

《springbootsecurity快速使用示例详解》:本文主要介绍springbootsecurity快速使用示例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝... 目录创www.chinasem.cn建spring boot项目生成脚手架配置依赖接口示例代码项目结构启用s

SpringBoot实现MD5加盐算法的示例代码

《SpringBoot实现MD5加盐算法的示例代码》加盐算法是一种用于增强密码安全性的技术,本文主要介绍了SpringBoot实现MD5加盐算法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习... 目录一、什么是加盐算法二、如何实现加盐算法2.1 加盐算法代码实现2.2 注册页面中进行密码加盐2.

Java时间轮调度算法的代码实现

《Java时间轮调度算法的代码实现》时间轮是一种高效的定时调度算法,主要用于管理延时任务或周期性任务,它通过一个环形数组(时间轮)和指针来实现,将大量定时任务分摊到固定的时间槽中,极大地降低了时间复杂... 目录1、简述2、时间轮的原理3. 时间轮的实现步骤3.1 定义时间槽3.2 定义时间轮3.3 使用时

C++快速排序超详细讲解

《C++快速排序超详细讲解》快速排序是一种高效的排序算法,通过分治法将数组划分为两部分,递归排序,直到整个数组有序,通过代码解析和示例,详细解释了快速排序的工作原理和实现过程,需要的朋友可以参考下... 目录一、快速排序原理二、快速排序标准代码三、代码解析四、使用while循环的快速排序1.代码代码1.由快

Win32下C++实现快速获取硬盘分区信息

《Win32下C++实现快速获取硬盘分区信息》这篇文章主要为大家详细介绍了Win32下C++如何实现快速获取硬盘分区信息,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实现代码CDiskDriveUtils.h#pragma once #include <wtypesbase

如何通过Golang的container/list实现LRU缓存算法

《如何通过Golang的container/list实现LRU缓存算法》文章介绍了Go语言中container/list包实现的双向链表,并探讨了如何使用链表实现LRU缓存,LRU缓存通过维护一个双向... 目录力扣:146. LRU 缓存主要结构 List 和 Element常用方法1. 初始化链表2.

Spring AI与DeepSeek实战一之快速打造智能对话应用

《SpringAI与DeepSeek实战一之快速打造智能对话应用》本文详细介绍了如何通过SpringAI框架集成DeepSeek大模型,实现普通对话和流式对话功能,步骤包括申请API-KEY、项目搭... 目录一、概述二、申请DeepSeek的API-KEY三、项目搭建3.1. 开发环境要求3.2. mav

Python如何快速下载依赖

《Python如何快速下载依赖》本文介绍了四种在Python中快速下载依赖的方法,包括使用国内镜像源、开启pip并发下载功能、使用pipreqs批量下载项目依赖以及使用conda管理依赖,通过这些方法... 目录python快速下载依赖1. 使用国内镜像源临时使用镜像源永久配置镜像源2. 使用 pip 的并

SpringBoot快速接入OpenAI大模型的方法(JDK8)

《SpringBoot快速接入OpenAI大模型的方法(JDK8)》本文介绍了如何使用AI4J快速接入OpenAI大模型,并展示了如何实现流式与非流式的输出,以及对函数调用的使用,AI4J支持JDK8... 目录使用AI4J快速接入OpenAI大模型介绍AI4J-github快速使用创建SpringBoot

golang字符串匹配算法解读

《golang字符串匹配算法解读》文章介绍了字符串匹配算法的原理,特别是Knuth-Morris-Pratt(KMP)算法,该算法通过构建模式串的前缀表来减少匹配时的不必要的字符比较,从而提高效率,在... 目录简介KMP实现代码总结简介字符串匹配算法主要用于在一个较长的文本串中查找一个较短的字符串(称为