广义状态平均法功率变换器建模分析

news2025/4/6 8:52:15

两种状态平均法在功率变换器建模的应用比较

[!info] Bibliography
[1] 高朝晖, 林辉张晓斌 & 吴小华, “两种状态平均法在功率变换器建模的应用比较,” 计算机仿真, no. 241-244+248, 2008.

[!note]

状态空间平均法采用直流量近似(线性系统模型),广义状态空间平均采用直流量和基波分量近似。也即状态空间平均法采用0阶傅里叶级数近似,广义状态空间平均采用0阶和1阶傅里叶级数近似

应用状态空间平均法分析 Buck变换器

广义状态平均法(GSSA)

广义状态平均采用傅里叶级数拟合系统状态:
x ( t ) = ∑ n = − ∞ ∞ ⟨ x ⟩ n ( t ) e j n ω t x(t) = \sum_{n = -\infty}^\infty \langle x \rangle_n(t) e^{j n \omega t} x(t)=n=xn(t)ejnωt

  • ω = 2 π / T \omega = 2\pi / T ω=2π/T
    ⟨ x ⟩ n ( t ) \langle x \rangle_n(t) xn(t) 代表傅里叶系数:

⟨ x ⟩ n ( t ) = 1 T ∫ t − T t x ( τ ) e − j n ω τ d τ \langle x \rangle_n(t) = \frac 1T \int_{t-T}^t x(\tau) e^{-j n \omega \tau}d\tau xn(t)=T1tTtx(τ)ejnωτdτ

  • n n n is AKA index-k average
    三角形式傅里叶级数:

x ( τ ) = ⟨ x ⟩ 0 + 2 ∑ n = 1 ∞ ( a 1 cos ⁡ ( n ω τ ) + b 1 sin ⁡ ( n ω τ ) ) x(\tau)=\langle x\rangle_0+2 \sum_{n=1}^{\infty}\left(a_1 \cos (n \omega \tau) + b_1 \sin (n \omega \tau)\right) x(τ)=x0+2n=1(a1cos(τ)+b1sin(τ))

  • ⟨ x ⟩ n ( t ) = a n − j b n \langle x\rangle_n(t) = a_n - j b_n xn(t)=anjbn

a n = 1 2 π ∫ 0 2 π x ( ω τ ) cos ⁡ ( ω τ ) d ( ω τ ) b n = 1 2 π ∫ 0 2 π x ( ω τ ) sin ⁡ ( ω τ ) d ( ω τ ) ⟨ x ⟩ 0 = 1 T ∫ t − T t x ( τ ) d τ \begin{aligned} {a}_n &=\frac{1}{2 \pi} \int_0^{2 \pi} {x}(\omega \tau) \cos (\omega \tau) \mathrm{d}(\omega \tau) \\ {b}_n &=\frac{1}{2 \pi} \int_0^{2 \pi} {x}(\omega \tau) \sin (\omega \tau) \mathrm{d}(\omega \tau) \\ \langle{x}\rangle_0 &=\frac{1}{{T}} \int_{t-{T}}^t {x}(\tau) \mathrm{d} \tau \end{aligned} anbnx0=2π102πx(ωτ)cos(ωτ)d(ωτ)=2π102πx(ωτ)sin(ωτ)d(ωτ)=T1tTtx(τ)dτ

性质:

  • d ⟨ x ⟩ n ( t ) d t = ⟨ d x d t ⟩ n ( t ) − j n ω ⟨ x ⟩ n ( t ) \frac{d \langle x\rangle_n(t)}{d t}=\left\langle\frac{d x}{d t}\right\rangle_n(t)-j n \omega\langle x\rangle_n(t) dtdxn(t)=dtdxn(t)jnωxn(t)

    [!note] Proof

    ⟨ x ⟩ n ( t ) = 1 T ∫ 0 T x ( t − T + s ) e − j n ω ( t − T + s ) d s \langle x \rangle_n(t) = \frac1T \int_0^T x(t - T + s) e^{-j n \omega(t-T+s)}ds xn(t)=T10Tx(tT+s)ejnω(tT+s)ds

  • ⟨ q x ⟩ n = ∑ i = − ∞ ∞ ⟨ q ⟩ n − i ⟨ x ⟩ i \langle qx \rangle_n = \sum_{i = -\infty}^\infty \langle q \rangle_{n -i} \langle x \rangle_i qxn=i=qnixi

Suppose that x ( t ) x(t) x(t) and q ( t ) q(t) q(t) can be approximated by 0- and 1-order Fourier series (即直流和基波量):
q ( t ) ≈ ⟨ q ⟩ 0 + ⟨ q ⟩ − 1 e − j ω t + ⟨ q ⟩ 1 e j ω t x ( t ) ≈ ⟨ x ⟩ 0 + ⟨ x ⟩ − 1 e − j ω t + ⟨ x ⟩ 1 e j ω t \begin{aligned} q(t) &\approx \langle q \rangle_0 + \langle q \rangle_{-1} e^{- j \omega t} + \langle q \rangle_1 e^{j \omega t} \\ x(t) &\approx \langle x \rangle_0 + \langle x \rangle_{-1} e^{- j \omega t} + \langle x \rangle_1 e^{j \omega t} \end{aligned} q(t)x(t)q0+q1et+q1etx0+x1et+x1et

[!note]

这里注意,三角形式傅里叶级数中的直流和基波项( a 0 / 2 + a 1 cos ⁡ ( ω t ) + b 1 sin ⁡ ( ω t ) a_0/2 + a_1 \cos(\omega t) + b_1 \sin(\omega t) a0/2+a1cos(ωt)+b1sin(ωt))对应于复数形式的傅立叶级数中 0 0 0 ± 1 ±1 ±1次项( c 0 + c − 1 e − i ω t + c 1 e i ω t c_0 + c_{-1}e^{-i \omega t}+ c_{1} e^{i\omega t} c0+c1et+c1et)

x x x q q q 乘积可表示为:
⟨ q x ⟩ 0 = ⟨ q ⟩ 0 ⟨ x ⟩ 0 + ⟨ q ⟩ − 1 ⟨ x ⟩ 1 + ⟨ q ⟩ 1 ⟨ x ⟩ − 1 ⟨ q x ⟩ 1 = ⟨ q ⟩ 0 ⟨ x ⟩ 1 + ⟨ q ⟩ 1 ⟨ x ⟩ 0 ⟨ q x ⟩ − 1 = ⟨ q ⟩ 0 ⟨ x ⟩ − 1 + ⟨ q ⟩ − 1 ⟨ x ⟩ 0 \begin{aligned} \langle qx \rangle_0 &= \langle q \rangle_0 \langle x \rangle_0 + \langle q \rangle_{-1} \langle x \rangle_1 + \langle q \rangle_1 \langle x \rangle_{-1} \\ \langle qx \rangle_1 &= \langle q \rangle_0 \langle x \rangle_1 + \langle q \rangle_{1} \langle x \rangle_0\\ \langle qx \rangle_{-1} &= \langle q \rangle_0 \langle x \rangle_{-1} + \langle q \rangle_{-1} \langle x \rangle_0 \end{aligned} qx0qx1qx1=q0x0+q1x1+q1x1=q0x1+q1x0=q0x1+q1x0
正负平均指数互为共轭 ⟨ x ⟩ 1 = ⟨ x ⟩ − 1 ∗ \langle x \rangle_1 = \langle x \rangle_{-1}^* x1=x1

  • ⟨ q ⟩ 1 = ⟨ q ⟩ 1 R + j ⟨ q ⟩ 1 I = ⟨ q ⟩ − 1 ∗ = ( ⟨ q ⟩ − 1 R + ⟨ q ⟩ − 1 I ) ∗ \langle q \rangle_1 = \langle q \rangle_1^R + j \langle q \rangle_1^I = \langle q \rangle_{-1}^* = \left(\langle q \rangle_{-1}^R + \langle q \rangle_{-1}^I\right)^* q1=q1R+jq1I=q1=(q1R+q1I)
  • ⟨ x ⟩ 1 = ⟨ x ⟩ 1 R + j ⟨ x ⟩ 1 I = ⟨ x ⟩ − 1 ∗ = ( ⟨ x ⟩ − 1 R + ⟨ x ⟩ − 1 I ) ∗ \langle x \rangle_1 = \langle x \rangle_1^R + j \langle x \rangle_1^I = \langle x \rangle_{-1}^* = \left(\langle x \rangle_{-1}^R + \langle x \rangle_{-1}^I\right)^* x1=x1R+jx1I=x1=(x1R+x1I)

于是
⟨ q x ⟩ 0 = ⟨ q ⟩ 0 ⟨ x ⟩ 0 + 2 ( ⟨ q ⟩ 1 R ⟨ x ⟩ 1 R + ⟨ q ⟩ 1 I ⟨ x ⟩ 1 I ) ⟨ q x ⟩ 1 R = ⟨ q ⟩ 0 ⟨ x ⟩ 1 R + ⟨ q ⟩ 1 R ⟨ x ⟩ 0 ⟨ q x ⟩ 1 I = ⟨ q ⟩ 0 ⟨ x ⟩ 1 I + ⟨ q ⟩ 1 I ⟨ x ⟩ 0 \begin{aligned} \langle qx \rangle_0 &= \langle q \rangle_0 \langle x \rangle_0 + 2\left(\langle q \rangle_{1}^R \langle x \rangle_1^R + \langle q \rangle_1^I \langle x \rangle_{1}^I\right) \\ \langle qx \rangle_1^R &= \langle q \rangle_0 \langle x \rangle_1^R + \langle q \rangle_{1}^R \langle x \rangle_0\\ \langle qx \rangle_{1}^I &= \langle q \rangle_0 \langle x \rangle_{1}^I + \langle q \rangle_{1}^I \langle x \rangle_0 \end{aligned} qx0qx1Rqx1I=q0x0+2(q1Rx1R+q1Ix1I)=q0x1R+q1Rx0=q0x1I+q1Ix0

GSSA 建模 BUCK

定义开关函数
q ( t ) = { 0 关 1 开 q(t) =\left\{ \begin{matrix} 0 & 关 \\ 1 & 开 \end{matrix} \right. q(t)={01
BUCK system model:
L d i L d t = v i n q ( t ) − v o C d v o d t = i L − v o R \begin{aligned} & L \frac{d {i_L}}{d t}=v_{i n} q(t)-v_o \\ & C \frac{d v_o}{d t}=i_L-\frac{v_o}{R} \end{aligned} LdtdiL=vinq(t)voCdtdvo=iLRvo
0 平均指数模型:
L d ⟨ i L ⟩ 0 d t = V i n ⟨ q ⟩ 0 − ⟨ v o ⟩ 0 C d ⟨ v o ⟩ 0 d t = ⟨ i L ⟩ 0 − ⟨ v o ⟩ 0 R \begin{aligned} & L\frac{d\langle i_L\rangle_0}{dt}=V_{in} \langle q \rangle_0 - \langle v_o \rangle_0 \\ & C\frac{d\langle v_o\rangle_0}{dt}=\langle{i_L}\rangle_0-\frac{\left\langle\mathrm{v}_o\right\rangle_0}{{R}} \end{aligned} LdtdiL0=Vinq0vo0Cdtdvo0=iL0Rvo0
1平均指数模型:
d ⟨ i L ⟩ 1 d t = − j ω ⟨ i L ⟩ 1 + 1 L ( V i n ⟨ q ⟩ 1 − ⟨ v o ⟩ 1 ) d ⟨ v o ⟩ 1 d t = − j ω ⟨ v o ⟩ 1 + 1 C ( ⟨ i L ⟩ 0 − ⟨ v o ⟩ 0 R ) \begin{aligned} \frac{d\langle i_L\rangle_1}{dt} &= -j\omega \langle i_L\rangle_1 + \frac1L \left( V_{in} \langle q \rangle_1 - \langle v_o \rangle_1 \right)\\ \frac{d\langle v_o\rangle_1}{dt} &= -j\omega \langle v_o \rangle_1 + \frac 1C \left( \langle{i_L}\rangle_0-\frac{\left\langle\mathrm{v}_o\right\rangle_0}{{R}} \right) \end{aligned} dtdiL1dtdvo1=iL1+L1(Vinq1vo1)=vo1+C1(iL0Rvo0)
考虑共轭关系,1平均指数模型的实部虚部分别可以写作:
d ⟨ i L ⟩ 1 R d t = ω ⟨ i L ⟩ 1 I + 1 L ( V i n ⟨ q ⟩ 1 R − ⟨ v o ⟩ 1 R ) d ⟨ i L ⟩ 1 I d t = − ω ⟨ i L ⟩ 1 R + 1 L ( V i n ⟨ q ⟩ 1 I − ⟨ v o ⟩ 1 I ) d ⟨ v o ⟩ 1 R d t = ω ⟨ v o ⟩ 1 I + 1 C ( ⟨ i L ⟩ 1 R − ⟨ v o ⟩ 1 R R ) d ⟨ v o ⟩ 1 I d t = − ω ⟨ v o ⟩ 1 R + 1 C ( ⟨ i L ⟩ 1 I − ⟨ v o ⟩ 1 I R ) \begin{aligned} \frac{d\langle i_L\rangle_1^R}{dt} &= \omega \langle i_L\rangle_1^I + \frac1L \left( V_{in} \langle q \rangle_1^R - \langle v_o \rangle_1^R \right)\\ \frac{d\langle i_L\rangle_1^I}{dt} &= -\omega \langle i_L\rangle_1^R + \frac1L \left( V_{in} \langle q \rangle_1^I - \langle v_o \rangle_1^I \right)\\ \frac{d\langle v_o\rangle_1^R}{dt} &= \omega \langle v_o \rangle_1^I + \frac 1C \left( \langle{i_L}\rangle_1^R-\frac{\left\langle\mathrm{v}_o\right\rangle_1^R}{{R}} \right)\\ \frac{d\langle v_o\rangle_1^I}{dt} &= -\omega \langle v_o \rangle_1^R + \frac 1C \left( \langle{i_L}\rangle_1^I -\frac{\left\langle\mathrm{v}_o\right\rangle_1^I}{{R}} \right) \end{aligned} dtdiL1RdtdiL1Idtdvo1Rdtdvo1I=ωiL1I+L1(Vinq1Rvo1R)=ωiL1R+L1(Vinq1Ivo1I)=ωvo1I+C1(iL1RRvo1R)=ωvo1R+C1(iL1IRvo1I)
选取状态变量 x = [ ⟨ i L ⟩ 1 R , ⟨ i L ⟩ 1 I , ⟨ v o ⟩ 1 R , ⟨ v o ⟩ 1 I , ⟨ i L ⟩ 0 R , ⟨ v o ⟩ 0 R ] T x = [\langle i_L\rangle_1^R, \langle i_L\rangle_1^I, \langle v_o \rangle_1^R, \langle v_o \rangle_1^I,\langle i_L \rangle_0^R, \langle v_o \rangle_0^R]^T x=[⟨iL1R,iL1I,vo1R,vo1I,iL0R,vo0R]T, 可以得到状态空间方程:
x ˙ = A x + B u \begin{aligned} \dot x &= Ax + Bu\\ \end{aligned} x˙=Ax+Bu

  • A = [ 0 ω − 1 / L 0 0 0 − ω 0 0 − 1 / L 0 0 1 / C 0 − 1 / ( R C ) ω 0 0 0 1 / C − ω − 1 / ( R C ) 0 0 0 0 0 0 0 − 1 / L 0 0 0 0 1 / C − 1 / ( R C ) ] A = \left[\begin{matrix} 0 & \omega & -1/L &0 & 0&0 \\ -\omega & 0 & 0 & -1/L & 0 & 0\\ 1/C & 0 & -1/(RC) & \omega & 0 & 0\\ 0 & 1/C & -\omega & -1/(RC) & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & -1/L \\ 0 & 0 & 0 & 0 & 1/C & -1 / (RC) \end{matrix}\right] A= 0ω1/C000ω001/C001/L01/(RC)ω0001/Lω1/(RC)00000001/C00001/L1/(RC)
  • B = [ ⟨ q ⟩ 1 R L , ⟨ q ⟩ 1 I L , 0 , 0 , ⟨ q ⟩ 0 L , 0 ] T B = \left[\frac{\langle q \rangle_1^R}L, \frac{\langle q \rangle_1^I}L, 0, 0, \frac{\langle q \rangle_0}L,0 \right]^T B=[Lq1R,Lq1I,0,0,Lq0,0]T
  • u = V i n u = V_{in} u=Vin

开关函数 q ( t ) q(t) q(t) 的 0 阶和 1 阶傅里叶系数:
⟨ q ⟩ 1 R = 1 2 π ∫ 0 2 π D cos ⁡ ( ω τ ) d ( ω τ ) = 1 2 π sin ⁡ ( 2 π D ) ⟨ q ⟩ 1 I = − 1 2 π ∫ 0 2 π D sin ⁡ ( ω τ ) d ( ω τ ) = 1 2 π [ cos ⁡ ( 2 π D ) − 1 ] ⟨ q ⟩ 0 = D \begin{aligned} \langle q \rangle_1^R &= \frac 1{2\pi} \int_0^{2\pi D} \cos (\omega \tau ) d(\omega \tau) = \frac1{2\pi} \sin (2\pi D)\\\langle q \rangle_1^I &= -\frac 1{2\pi} \int_0^{2\pi D} \sin (\omega \tau ) d(\omega \tau) = \frac1{2\pi} [\cos (2\pi D) - 1]\\ \langle q \rangle_0 &= D\\ \end{aligned} q1Rq1Iq0=2π102πDcos(ωτ)d(ωτ)=2π1sin(2πD)=2π102πDsin(ωτ)d(ωτ)=2π1[cos(2πD)1]=D
根据广义状态模型的解 x x x,可以得到系统输出为
i L = 2 x 1 cos ⁡ ( ω t ) − 2 x 2 sin ⁡ ( ω t ) + x 5 v o = 2 x 3 cos ⁡ ( ω t ) − 2 x 4 sin ⁡ ( ω t ) + x 6 \begin{aligned} i_L &= 2x_1 \cos (\omega t) - 2x_2 \sin (\omega t) + x_5\\ v_o &= 2x_3 \cos (\omega t) - 2x_4 \sin (\omega t) + x_6\\ \end{aligned} iLvo=2x1cos(ωt)2x2sin(ωt)+x5=2x3cos(ωt)2x4sin(ωt)+x6
namely:
i L = 2 ⟨ i L ⟩ 1 R cos ⁡ ( ω t ) − 2 ⟨ i L ⟩ 1 I sin ⁡ ( ω t ) + ⟨ i L ⟩ 0 v o = 2 ⟨ v o ⟩ 1 R cos ⁡ ( ω t ) − 2 ⟨ v o ⟩ 1 I sin ⁡ ( ω t ) + ⟨ v o ⟩ 0 \begin{aligned} i_L &= 2\langle i_L \rangle_1^R \cos (\omega t) - 2\langle i _L\rangle_1^I \sin (\omega t) + \langle i_L\rangle_0\\ v_o &= 2\langle v_o \rangle_1^R \cos (\omega t) - 2\langle v_o \rangle_1^I \sin (\omega t) + \langle v_o \rangle_0\\ \end{aligned} iLvo=2iL1Rcos(ωt)2iL1Isin(ωt)+iL0=2vo1Rcos(ωt)2vo1Isin(ωt)+vo0
另外,普通状态平均的解其实是
i L S S A = x 5 , v o S S A = x 6 i_{L_{SSA}} = x_5, v_{o_{SSA}} = x_6 iLSSA=x5,voSSA=x6

仿真研究

MATLAB Code:

 %---------------------------------------
% This is the simulation from  
% 两种状态平均法在功率变换器建模的应用比较
%
% hu 2023-03-03
%---------------------------------------

clc,clear,close all

Vin = 20;
R   = 10;
L   = 1e-3;
C   = 1e-6;
f   = 40e3;
w   = 2 * pi * f;
T   = 1 / f;
sim my_power_BuckConverter
D   = .5;
q1R = 1 / 2 / pi * sin(2 * pi * D);
q1I = 1 / 2 / pi * (cos(2 * pi * D) - 1);
q0  = D;

A = [0   w   -1/L     0        0   0
     -w  0   0        -1/L     0   0
     1/C 0   -1/(R*C) w        0   0
     0   1/C -w       -1/(R*C) 0   0
     0   0   0        0        0   -1/L
     0   0   0        0        1/C -1/(R*C)];
B = [q1R / L, q1I / L, 0, 0, q0 / L, 0]';
x = zeros(6,1);
u = Vin;

ts = 0;
h  = T/500;
tf = 1e-3;

iLGSSAout = [];
voGSSAout = [];
iLSSAout  = [];
voSSAout  = [];

for t=ts:h:tf
    xdot      = A * x + B * u;
    x         = x + xdot * h;
    iLGSSA    = 2 * x(1) * cos(w * t) - 2 * x(2) * sin(w * t) + x(5);
    voGSSA    = 2 * x(3) * cos(w * t) - 2 * x(4) * sin(w * t) + x(6);
    iLSSA     = x(5);
    voSSA     = x(6);
    
    iLGSSAout = [iLGSSAout;iLGSSA];
    voGSSAout = [voGSSAout;voGSSA];
    iLSSAout  = [iLSSAout;iLSSA];
    voSSAout  = [voSSAout;voSSA];
end


t = ts:h:tf;
pos = mypos(8);
i   = 1;
linewidth = 1.5;
fontsize  = 12;
tSIM      = iLSIMout.Time;
iLGSSAout_interp = interp1(t,iLGSSAout,tSIM);
iLSSAout_interp  = interp1(t,iLSSAout,tSIM);
voGSSAout_interp = interp1(t,voGSSAout,tSIM);
voSSAout_interp  = interp1(t,voSSAout,tSIM);

figure
plot(tSIM,iLGSSAout_interp,tSIM,iLSSAout_interp,tSIM,iLSIMout.Data,'linewidth',linewidth);
h = legend('$i_{L_{GSSA}}$','$i_{L_{SSA}}$','$i_{L_{SIM}}$');
h.Interpreter = 'latex';
h.FontSize    = fontsize;
h.Location    = 'southeast';
h.Orientation = 'horizon';
set(gcf,'position',pos{i});
i = i + 1;
grid on

figure
plot(tSIM,voGSSAout_interp,tSIM,voSSAout_interp,tSIM,voSIMout.Data,'linewidth',linewidth);
h = legend('$v_{o_{GSSA}}$', '$v_{o_{SSA}}$', '$v_{o_{SIM}}$');
h.Interpreter = 'latex';
h.FontSize    = fontsize;
h.Location    = 'southeast';
h.Orientation = 'horizon';
set(gcf,'position',pos{i});
i = i + 1;
grid on

mypos function:

function pos = mypos(i,figs1,figs2)
% mypos.m                    给定 figure 对象个数求解合适的摆放位置向量以防止图片堆叠
% i                          figure 个数
% figs1,figs2                figure 对象的长和高
% pos = mypos(i,figs1,figs2) 求出 i 个 figure 对象的合理摆放位置,且大小设置为[figs1,figs2]
%                            输出 pos 是元胞数组,使用规范(已生成figure对象后):set(gcf,'position',pos{i})
% Remark                     更方便的绘图程序见 myplot.m

% hu 2018-6-11
% hu 2018-8-8  Modified Remark is added
% hu 2018-11-3 Modified Description is updated

if nargin ~= 3
	figs = [400,300]; %default size is 560*420, 500*280 is suitable for paper shows
else
    figs = [figs1,figs2];
end
if i > 8
    disp('too many figures! The maximum number is 8')
end
scr = get(0,'screensize');
for k = 1:i
    if k <= 4
        pos{k} = [scr(1) + (k - 1) * figs(1),scr(2) + scr(4) / 2,figs];
    end
    if k > 4
        pos{k} = [scr(1) + (k - 5) * scr(3) / 4,scr(2) + 30,figs];
    end
end
end

真实数据用 SIMULINK 2018a 得到,PWM 频率 f = 40 k H z f = 40kHz f=40kHz,可以看到 GSSA 基本和 SIMULINK 数据重合,SSA 仅代表了其直流分量

电感电流比较
电容电压比较

仿真文件: 链接: https://pan.baidu.com/s/1ftQQ68H0nHVZ3LQkPNEObw?pwd=mgf4 提取码: mgf4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/391848.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

通达信指标公式颜色代码的四种写法(COLOR/RGB)

通达信指标公式颜色代码有四种写法&#xff0c;分别为COLOR颜色的英文、COLOR十六进制、RGBX十六进制、RGB(R,G,B)。标题有点尴尬&#xff0c;让我想到孔乙己“茴”字的四种写法&#xff0c;哈哈。 一、COLOR颜色的英文 “COLOR颜色的英文”这种写法比较简单&#xff0c;函数库…

【C++】bsearch函数的使用及二分法查找介绍

写程序的时候&#xff0c;肯定避免不了需要从集合中找到符合条件的元素&#xff0c;一般情况下&#xff0c;最简单也最常用的就是循环遍历元素&#xff0c;这种方法虽然写的简单&#xff0c;但是小数据量还行&#xff0c;但是数据过大的话&#xff0c;这样效率就低了。循环的时…

浅谈游戏中运用到的人工智能

电子游戏中的人工智能意味着电子游戏中角色的创造性行为就像人类游戏玩家正在控制他们一样。它提供了自适应和响应式的视频游戏体验。1949年初&#xff0c;密码学家克劳德香农发现了游戏中的人工智能&#xff0c;从而联想到了电脑上的单人国际象棋游戏。对于人工智能的发展&…

Android的基础介绍

一、Android介绍 Android是一种基于Linux的自由及开放源代码的操作系统,Android 分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。 Android 是Google开发的基于Linux平台的开源手机操作系统。它包括操作系统、用户界面和应用程序——…

力扣-可回收且低脂的产品

大家好&#xff0c;我是空空star&#xff0c;本篇带大家了解一道超级超级超级简单的力扣sql练习题。 文章目录前言一、题目&#xff1a;1757. 可回收且低脂的产品二、解题1.正确示范①提交SQL运行结果2.正确示范②提交SQL运行结果3.正确示范③提交SQL运行结果4.正确示范④提交S…

iview tree树形菜单实践之数据回显与选中

iview tree树形菜单在使用过程中&#xff0c;多多少少有一些小坑&#xff0c;本文简单罗列几个&#xff1a; 避坑指南&#xff1a; 关于iview tree树形菜单在使用过程中存在父级菜单的数据传输和回显问题 简单就是两个方面&#xff1a;勾选后数据传输和回显问题。 一&#xff…

mac 环境下安装MongoDB

目录 一、下载MongoDB数据库并进行安装 二. 解压放在/usr/local目录下 三. 配置环境变量 “无法验证开发者”的解决方法 mongodb可视化工具的安装与使用 一、下载MongoDB数据库并进行安装 下载地址&#xff1a;https://www.mongodb.com/try/download/community 二. 解压…

大数据项目实战之数据仓库:用户行为采集平台——第2章 项目需求及架构设计

第2章 项目需求及架构设计 2.1 项目需求分析 1&#xff09;采集平台 &#xff08;1&#xff09;用户行为数据采集平台搭建 &#xff08;2&#xff09;业务数据采集平台搭建 2&#xff09;离线需求 3&#xff09;实时需求 4&#xff09;思考题 1、项目技术如何选型&…

索引调优的一点基础知识

索引是什么 通过 show profile for query 1&#xff1b; 可以查看该查询语句执行的整个过程&#xff0c;则我们就能分析出那部分是需要优化的索引是帮助Mysql高效获取数据的数据结构 索引存储在文件系统中 索引的文件存储形式与存储引擎有关 索引文件的结构 hash 范围查找不方便…

深度学习-第T2周——彩色图片分类

深度学习-第T2周——彩色图片分类深度学习-第P1周——实现mnist手写数字识别一、前言二、我的环境三、前期工作1、导入依赖项并设置GPU2、导入数据集3、归一化4、可视化图片四、构建简单的CNN网络五、编译并训练模型1、设置超参数2、编写训练函数六、预测七、模型评估深度学习-…

产品经理如何去做需求分析,建议收藏

目录 一、需求收集 1. 产品需求 2. 功能需求 3. 迭代需求 二、需求分析 1. 系统了解需求&#xff08;5W2H法&#xff09; 2. 判断需求真实性 3. 分析现有解决方案-竞品分析 4. 行业结构分析 5. 总结 三、方案验证 四、商业模式 五、路线规划 六、战略制定 七、总…

基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5;&#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密…

监控视频模糊看不清怎么处理提高监控视频清晰度?

随着监控设备的日益普及&#xff0c;监控视频的画质也成为了人们关注的焦点。然而&#xff0c;很多人反映监控视频画质不佳&#xff0c;有些甚至看不清。那么&#xff0c;对于这样的问题&#xff0c;我们该如何去处理呢&#xff1f;监控画面模糊变清晰处理方法如下&#xff1a;…

网上购物网站的设计

技术&#xff1a;Java、JSP等摘要&#xff1a;本文介绍了JSP和JAVA等相关技术&#xff0c;针对网上购物系统的实际需求&#xff0c;设计开发了一个基于JSP的小型电子商务网站也就是网上购物系统&#xff0c;。在设计开发中&#xff0c;采用的是SSH框架&#xff08;strutsspring…

一篇教你解决如何在不加锁的情况下解决多线程问题!

怎样在不加锁的情况下解决线程安全问题&#xff0c;你需要了解lock free和wait free这两个概念&#xff0c;在此之前我们先从最简单的有锁编程开始。 我们知道&#xff0c;多线程同时修改共享变量时会出现数据不一致的问题&#xff0c;比如多个线程同时对一个变量加1&#xff…

angular自定义实现管道

参考angular官方文档角 - 管 (angular.io)选择描述name要在模板绑定中使用的管道名称。 通常使用较小的驼峰大小写&#xff0c;因为名称不能包含连字符。pure?如果为 true&#xff0c;则管道是纯的&#xff0c;这意味着仅当该方法的输入参数时才调用该方法 改变。默认情况下&a…

JavaScript基础四、集合类型

零、文章目录 文章地址 个人博客-CSDN地址&#xff1a;https://blog.csdn.net/liyou123456789个人博客-GiteePages&#xff1a;https://bluecusliyou.gitee.io/techlearn 代码仓库地址 Gitee&#xff1a;https://gitee.com/bluecusliyou/TechLearnGithub&#xff1a;https:…

C++源程序的构成————学习笔记

以下内容为&#xff0c;在学校上课时的课堂总结&#xff0c;偶尔我也会扩展一些内容内容仅供参考&#xff0c;欢迎大佬的指正简单的C程序#include <iostream> using namespace std;int main() {int x0;int y 0;cout << "请输入x,y的值"<<endl;cin…

计算机网络第八版——第二章课后题答案(超详细)

第二章 该答案为博主在网络上整理&#xff0c;排版不易&#xff0c;希望大家多多点赞支持。后续将会持续更新&#xff08;可以给博主点个关注~ 第一章 答案 【2-01】物理层要解决哪些问题&#xff1f;物理层的主要特点是什么&#xff1f; 解答&#xff1a;物理层考虑的是怎…

《C++代码分析》第二回:函数重载const char* ,char*,const char[],char[]汇编代码上的区别

一、前言 C相比C是支持函数重载的&#xff0c;现在我们详细探讨一下C函数重载与类方法承载。 二、案例代码 我们编译如下代码&#xff0c;同样的我们关闭代码优化&#xff0c;删除符号链接文&#xff08;.pdb&#xff09; #include "windows.h" #include "w…