Chapter8.3:控制系统校正的根轨迹法

该系列博客主要讲述Matlab软件在自动控制方面的应用,如无自动控制理论基础,请先学习自动控制系列博文,该系列博客不再详细讲解自动控制理论知识。
自动控制理论基础相关链接:https://blog.csdn.net/qq_39032096/category_10287468.html?spm=1001.2014.3001.5482
博客参考书籍:《MATLAB/Simulink与控制系统仿真》。



3.控制系统校正的根轨迹法

3.1 概述
  • 根轨迹法是一种图解法,描述了系统某一参数从零变化到无穷大时,其闭环极点位置的变化;
  • 通过引入适当的校正装置来改变原来系统的根轨迹,以获得期望的系统性能;
  • 引入校正装置即在系统中增加零极点,通过零极点的变化改变根轨迹的形状;
  • 用根轨迹法进行校正的基础,是通过在系统开环传递函数中增加零极点来改变根轨迹的形状,从而使系统根轨迹在 s s s平面上通过希望的闭环极点;
  • 根轨迹法校正的特征是基于闭环系统具有一对主导闭环极点,零点和附加的极点会影响响应特性;
  • 应用根轨迹进行校正,实质上是通过采用校正装置改变根轨迹,从而将一对主导闭环极点配置到期望的位置上;
  • 在开环传递函数中增加极点,可以使根轨迹向右方移动,从而降低系统的相对稳定性,增大系统调节时间;
  • 在开环传递函数中增加零点,可以使根轨迹向左方移动,从而提高系统的相对稳定性,减小系统调节时间;
  • 当系统性能指标是以最大超调量、上升时间、调节时间、阻尼比,及希望的闭环阻尼比、闭环极点无阻尼频率等表示时,采用根轨迹法进行校正较为方便;
  • 采用根轨迹法确定串联校正参数的条件是:
    • 已确定采用串联校正方案;
    • 给定时域指标: σ p 、 t s 、 e s s ( ∞ ) \sigma_p、t_s、e_{ss}(\infty) σptsess()
3.2 基于根轨迹法的超前校正

用根轨迹法设计超前校正装置步骤:

  • 先假定系统的控制性能由靠虚轴最近的一对闭环共轭极点 s d s_d sd主导;

  • 应用二阶系统参量 ζ \zeta ζ ω n \omega_n ωn与时域指标之间的关系,按给定的 σ p \sigma_p σp t s t_s ts确定闭环主导极点的位置;

  • 绘制原系统根轨迹,如果根轨迹不能通过希望的闭环主导极点,则表明仅调整增益不能满足给定要求,需要增加校正装置;如果原系统根轨迹位于期望极点的右侧,则应加入超前校正装置;

  • 计算超前校正装置应提供的超前相角;

  • 按下式计算校正装置零极点位置:
    φ c = ± ( 2 k + 1 ) π − ∠ G 0 ( s d ) \varphi_c=±(2k+1)\pi-\angle{G_0(s_d)} φc=±(2k+1)πG0(sd)

  • 由幅值条件确定校正后系统增益;

  • 校验系统的性能指标,如果系统不能满足要求指标,适当调整零极点位置;如果需要大的静态误差系数,则应采用其他方案;

3.3 基于根轨迹法的滞后校正

用根轨迹法设计滞后校正装置步骤:

  • 绘制出未校正系统的根轨迹;
  • 根据要求的瞬态响应指标,确定希望的闭环主导极点,根据根轨迹的幅值条件,计算与主导极点对应的开环增益;
  • 按给定的性能指标中关于稳态误差的要求,计算应增大的误差系数值;
  • 由应增大的误差系数值确定校正装置 β \beta β值,通常 β \beta β取值不超过 10 10 10
  • 确定滞后校正装置的零极点,原则是使零极点靠近坐标原点,且两者相距 β \beta β倍;
  • 绘制校正后系统的根轨迹,并求出希望的主导极点;
  • 由希望的闭环极点,根据幅值条件,适当调整放大器的增益;
  • 校验校正后系统各项性能指标,如不满足要求,则适当调整校正装置零极点位置;
3.4 基于根轨迹法的超前滞后校正

用根轨迹法设计超前滞后校正装置步骤:

  • 根据要求的性能指标,确定希望的主导极点 s d s_d sd位置;

  • 为使闭环极点位于希望的位置,计算超前滞后校正中超前部分应产生的超前相角:
    φ c = ± ( 2 k + 1 ) π − ∠ G 0 ( s d ) \varphi_c=±(2k+1)\pi-\angle{G_0(s_d)} φc=±(2k+1)πG0(sd)

  • 超前滞后校正装置的传递函数为:
    φ c = ± ( 2 k + 1 ) π − ∠ G 0 ( s d ) , G c ( s ) = K c ( s + 1 T 1 s + β T 1 ) ( s + 1 T 2 s + 1 T 2 β ) \varphi_c=±(2k+1)\pi-\angle{G_0(s_d)},G_c(s)=K_c\left(\frac{s+\displaystyle\frac{1}{T_1}}{s+\displaystyle\frac{\beta}{T_1}}\right)\left(\frac{s+\displaystyle\frac{1}{T_2}}{s+\displaystyle\frac{1}{T_2\beta}}\right) φc=±(2k+1)πG0(sd)Gc(s)=Kc s+T1βs+T11 s+T2β1s+T21

  • 对超前滞后校正中滞后部分的 T 2 T_2 T2选择要足够大,即:
    ∣ s d + 1 T 2 s d + 1 T 2 β ∣ = 1 , ∣ s d + 1 T 1 s d + β T 1 ∣ ∣ K 1 G 0 ( s d ) ∣ = 1 , ∠ ( s d + 1 T 1 ) − ∠ ( s d + β T 1 ) = φ \begin{vmatrix} \displaystyle\frac{s_d+\displaystyle\frac{1}{T_2}}{s_d+\displaystyle\frac{1}{T_2\beta}} \end{vmatrix}=1,\begin{vmatrix} \displaystyle\frac{s_d+\displaystyle\frac{1}{T_1}}{s_d+\displaystyle\frac{\beta}{T_1}} \end{vmatrix}\begin{vmatrix}K_1G_0(s_d)\end{vmatrix}=1,\angle\left(s_d+\displaystyle\frac{1}{T_1}\right)-\angle\left(s_d+\displaystyle\frac{\beta}{T_1}\right)=\varphi sd+T2β1sd+T21 =1 sd+T1βsd+T11 K1G0(sd) =1(sd+T11)(sd+T1β)=φ

  • 利用求得的 β \beta β值,选择 T 2 T_2 T2,使:
    ∣ s d + 1 T 2 s d + 1 T 2 β ∣ ≈ 1 , 0 ° < ∠ ( s d + 1 T 2 s d + 1 T 2 β ) < 3 ° \begin{vmatrix} \displaystyle\frac{s_d+\displaystyle\frac{1}{T_2}}{s_d+\displaystyle\frac{1}{T_2\beta}} \end{vmatrix}≈1,0°<\angle\left(\frac{s_d+\displaystyle\frac{1}{T_2}}{s_d+\displaystyle\frac{1}{T_2\beta}}\right)<3° sd+T2β1sd+T21 1< sd+T2β1sd+T21 <

  • 检验性能指标。

3.5 MATLAB/SIMULINK在根轨迹法校正中的应用
3.5.1 实战1:超前校正

实验要求:已知控制系统开环传递函数为: G ( s ) = 2.3 s ( 1 + 0.2 s ) ( 1 + 0.15 s ) G(s)=\displaystyle\frac{2.3}{s(1+0.2s)(1+0.15s)} G(s)=s(1+0.2s)(1+0.15s)2.3,设计超前校正环节,使其校正后系统的静态速度误差系数 K v ≤ 4.6 K_v≤4.6 Kv4.6,闭环主导极点满足阻尼比 ζ = 0.2 \zeta=0.2 ζ=0.2,自然振荡角频率 ω n = 12.0 r a d / s \omega_n=12.0{\rm rad/s} ωn=12.0rad/s,绘制校正前后系统的单位阶跃响应曲线、单位脉冲响应曲线和根轨迹。

解:

S T E P 1 {\rm STEP1} STEP1】:计算串联超前校正环节参数子函数程序设计。

% get_param子函数,文件名:get_param.m
function Gc=get_param(G,s1,kc)
numG=G.num{1};denG=G.den{1};
ngv=polyval(numG,s1);dgv=polyval(denG,s1);
g=ngv/dgv;
theta_G=angle(g);theta_s=angle(s1);
MG=abs(g);Ms=abs(s1);

Tz=(sin(theta_s)-kc*MG*sin(theta_G-theta_s))/(kc*MG*Ms*sin(theta_G));
Tp=-(kc*MG*sin(theta_s)+sin(theta_G+theta_s))/(Ms*sin(theta_G));

Gc=tf([Tz,1],[Tp,1]);

S T E P 2 {\rm STEP2} STEP2】:求解系统校正环节传递函数和校正后闭环传递函数及各响应曲线。

% 实例Chapter8.3.5.1
clc;clear;

% 建立校正前控制系统开环传递函数
num=2.3;den=conv([1,0],conv([0.2,1],[0.15,1]));
G=tf(num,den);

% 校正后系统的性能要求
zeta=0.2;wn=12.0;
[num,den]=ord2(wn,zeta);
s=roots(den);
s1=s(1);kc=2;
Gc=get_param(G,s1,kc);

GGc=G*Gc*kc;                    % 校正后系统开环传递函数
G_bf_close=feedback(G,1);       % 校正前系统闭环传递函数
G_af_close=feedback(GGc,1);     % 校正后系统闭环传递函数

% 绘制单位阶跃响应
figure(1);
step(G_af_close,'b',3.5);hold on;
step(G_bf_close,'r',3.5);grid;
legend('校正后闭环系统阶跃响应','校正前闭环系统阶跃响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统阶跃响应','FontSize',15);

% 绘制单位脉冲响应
figure(2);
impulse(G_af_close,'b',3.5);hold on;
impulse(G_bf_close,'r',3.5);grid;
legend('校正后闭环系统脉冲响应','校正前闭环系统脉冲响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统脉冲响应','FontSize',15);

% 绘制校正前后系统根轨迹图
figure(3);
rlocus(G,GGc);grid;
legend('校正前系统根轨迹图','校正后系统根轨迹图');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统根轨迹','FontSize',15);

% 超前校正环节传递函数和校正后系统闭环传递函数
Gc,G_af_close
% 校正环节传递函数
Gc = 
  1.016 s + 1
  ------------
  0.0404 s + 1

% 校正后系统闭环传递函数
G_af_close = 
                       4.672 s + 4.6
  -------------------------------------------------------
  0.001212 s^4 + 0.04414 s^3 + 0.3904 s^2 + 5.672 s + 4.6

S T E P 3 {\rm STEP3} STEP3】:系统校正前后单位阶跃响应曲线。

1

S T E P 4 {\rm STEP4} STEP4】:系统校正前后单位脉冲响应曲线。

2

S T E P 5 {\rm STEP5} STEP5】:系统校正前后根轨迹。

3

S T E P 6 {\rm STEP6} STEP6】:性能分析。

  • 串联超前校正环节传递函数为: G c ( s ) = 1.016 s + 1 0.0404 s + 1 G_c(s)=\displaystyle\frac{1.016s+1}{0.0404s+1} Gc(s)=0.0404s+11.016s+1
  • 由单位阶跃响应曲线知,校正前系统超调: σ = 17.3 % \sigma=17.3\% σ=17.3%,上升时间: t r = 0.58 s t_r=0.58{\rm s} tr=0.58s,调节时间: t s = 2.92 s t_s=2.92{\rm s} ts=2.92s
  • 由单位阶跃响应曲线知,校正后系统超调: σ = 31.7 % \sigma=31.7\% σ=31.7%,上升时间: t r = 0.123 s t_r=0.123{\rm s} tr=0.123s,调节时间: t s = 2.3 s t_s=2.3{\rm s} ts=2.3s
  • 因此,系统经串联超前校正后,系统性能提高;
  • 从根轨迹图知,校正后系统根轨迹左移,提高系统相对稳定性,缩短系统调节时间;
3.5.2 实战2:滞后校正

实验要求:已知系统开环传递函数为: G ( s ) = 4 s ( s + 2.5 ) G(s)=\displaystyle\frac{4}{s(s+2.5)} G(s)=s(s+2.5)4,设计串联滞后校正环节,使其校正后系统的静态速度误差系数: K v ≤ 6 K_v≤6 Kv6,闭环主导极点满足阻尼比: ζ = 0.407 \zeta=0.407 ζ=0.407,绘制校正前后系统单位阶跃响应曲线、单位脉冲响应、根轨迹。

解:

S T E P 1 {\rm STEP1} STEP1】:计算串联滞后校正环节参数子函数程序设计。

% get_param_02子函数,文件:get_param_02.m
function [Gc,kc]=get_param_02(G,zeta,wc,Tz)
G=tf(G);[r,k]=rlocus(G);
za=zeta/sqrt(1-zeta^2);

ri=r(1,find(imag(r(1,:))>0));
ra=imag(ri)./real(ri);
kc=spline(ra,k(find(imag(r(1,:))>0)),1/za);

syms x;syms ng;syms dg;
ng=poly2sym(G.num{1});dg=poly2sym(G.den{1});
ess=limit(ng*kc/dg*x);
beta=round(100/sym2poly(ess)/wc);Tp=Tz/beta;
Gc=tf([1,Tz],[1,Tp]);

S T E P 2 {\rm STEP2} STEP2】:求解系统校正环节传递函数和校正后闭环传递函数及各响应曲线。

% 实例Chapter8.3.5.2
clc;clear;

% 建立校正前控制系统开环传递函数
num=4;den=conv([1,0],[1,2.5]);
G=tf(num,den);

% 校正后系统的性能要求
zeta=0.407;wc=6;Tz=0.1;
[Gc,Kc]=get_param_02(G,zeta,wc,Tz);

GGc=G*Gc*Kc;                    % 校正后系统开环传递函数
G_bf_close=feedback(G,1);       % 校正前系统闭环传递函数
G_af_close=feedback(GGc,1);     % 校正后系统闭环传递函数

% 绘制单位阶跃响应
figure(1);
step(G_af_close,'b');hold on;
step(G_bf_close,'r');grid;axis([0 15 0 1.4]);
legend('校正后闭环系统阶跃响应','校正前闭环系统阶跃响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统阶跃响应','FontSize',15);

% 绘制单位脉冲响应
figure(2);
impulse(G_af_close,'b');hold on;
impulse(G_bf_close,'r');grid;
legend('校正后闭环系统脉冲响应','校正前闭环系统脉冲响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统脉冲响应','FontSize',15);

% 绘制校正前后系统根轨迹图
figure(3);
rlocus(G,GGc);grid;
legend('校正前系统根轨迹图','校正后系统根轨迹图');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统根轨迹','FontSize',15);

% 超前校正环节传递函数和校正后系统闭环传递函数
Gc,Kc,G_af_close
% 滞后校正环节传递函数
Gc = 
   s + 0.1
  ---------
  s + 0.025

% 系统增益
Kc =
    2.3581

% 校正后系统闭环传递函数
G_af_close = 
           9.433 s + 0.9433
  ----------------------------------
  s^3 + 2.525 s^2 + 9.495 s + 0.9433

S T E P 3 {\rm STEP3} STEP3】:系统校正前后单位阶跃响应曲线。

4

S T E P 4 {\rm STEP4} STEP4】:系统校正前后单位脉冲响应曲线。

5

S T E P 5 {\rm STEP5} STEP5】:系统校正前后根轨迹。

6

S T E P 6 {\rm STEP6} STEP6】:性能分析。

  • 串联滞后校正环节传递函数为: G c ( s ) = s + 0.1 s + 0.025 G_c(s)=\displaystyle\frac{s+0.1}{s+0.025} Gc(s)=s+0.025s+0.1
  • 由单位阶跃响应曲线知,校正前系统超调: σ = 8.08 % \sigma=8.08\% σ=8.08%,上升时间: t r = 0.961 s t_r=0.961{\rm s} tr=0.961s,调节时间: t s = 2.99 s t_s=2.99{\rm s} ts=2.99s
  • 由单位阶跃响应曲线知,校正后系统超调: σ = 27.4 % \sigma=27.4\% σ=27.4%,上升时间: t r = 0.478 s t_r=0.478{\rm s} tr=0.478s,调节时间: t s = 2.3 s t_s=2.3{\rm s} ts=2.3s
  • 因此,系统经串联滞后校正后,系统性能提高;
3.5.3 实战3:超前滞后校正环节

实验要求:已知系统开环传递函数为: G ( s ) = 8 s ( s + 0.4 ) G(s)=\displaystyle\frac{8}{s(s+0.4)} G(s)=s(s+0.4)8,设计超前滞后校正环节,使其校正后系统的静态速度误差系数: K v ≤ 5 K_v≤5 Kv5,闭环主导极点满足阻尼比: ζ = 0.2 \zeta=0.2 ζ=0.2和自然振荡角频率: ω n = 5 r a d / s \omega_n=5{\rm rad/s} ωn=5rad/s,相角裕度为: 50 ° 50° 50°,绘制校正前后系统的单位阶跃响应曲线、单位脉冲响应曲线和根轨迹。

解:

S T E P 1 {\rm STEP1} STEP1】:主函数。

% 实例Chapter8.3.5.3
clc;clear;

% 建立控制系统模型
z=[];p=[0,-0.4];k=8;
Gz=zpk(z,p,k);G=tf(Gz);
zeta=0.2;wn=5;
kc=1;Tz=0.1;dPm=50+5;
ng=G.num{1};            % 把G.num中的第一个元胞赋给ng.
[num,den]=ord2(wn,zeta);
s=roots(den);
s1=s(1);

Gc1=get_param(G,s1,kc);
G1=G*Gc1*kc;

[Gc2,Kc2]=get_param_02(G,zeta,wn,Tz);
GGc=G1*Gc2*Kc2;                 % 校正后系统开环传递函数
G_bf_close=feedback(G,1);       % 校正前系统闭环传递函数
G_af_close=feedback(GGc,1);     % 校正后系统闭环传递函数

% 绘制单位阶跃响应
figure(1);
step(G_af_close,'b');hold on;
step(G_bf_close,'r');grid;
legend('校正后闭环系统阶跃响应','校正前闭环系统阶跃响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统阶跃响应','FontSize',15);

% 绘制单位脉冲响应
figure(2);
impulse(G_af_close,'b');hold on;
impulse(G_bf_close,'r');grid;
legend('校正后闭环系统脉冲响应','校正前闭环系统脉冲响应');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统脉冲响应','FontSize',15);

% 绘制校正前后系统根轨迹图
figure(3);
rlocus(G,GGc);grid;
legend('校正前系统根轨迹图','校正后系统根轨迹图');
set(findobj(get(gca,'Children'),'LineWidth',0.5),'LineWidth',1.5);
title('校正前后系统根轨迹','FontSize',15);

% 超前校正环节传递函数和校正后系统闭环传递函数
Gc1,Gc2,G_af_close

S T E P 2 {\rm STEP2} STEP2】:超前环节传递函数、滞后环节传递函数和校正后闭环传递函数。

% 超前校正环节传递函数
Gc1 = 
  1.358 s + 1
  -----------
  0.425 s + 1

% 滞后校正环节传递函数
Gc2 = 
   s + 0.1
  ----------
  s + 0.0125

% 校正后系统闭环传递函数
G_af_close = 
              1.358 s^2 + 1.136 s + 0.1
  -------------------------------------------------
  0.425 s^4 + 1.175 s^3 + 1.773 s^2 + 1.141 s + 0.1

S T E P 3 {\rm STEP3} STEP3】:单位阶跃响应曲线。

7

S T E P 4 {\rm STEP4} STEP4】:单位脉冲响应曲线。

8

S T E P 5 {\rm STEP5} STEP5】:系统根轨迹曲线。

9

S T E P 6 {\rm STEP6} STEP6】:系统性能分析。

  • 串联超前滞后校正环节传递函数为: G c ( s ) = 0.125 × s + 0.1 s + 0.0125 × 1.358 s + 1 0.425 s + 1 G_c(s)=0.125\times\displaystyle\frac{s+0.1}{s+0.0125}\times\displaystyle\frac{1.358s+1}{0.425s+1} Gc(s)=0.125×s+0.0125s+0.1×0.425s+11.358s+1
  • 由单位阶跃响应曲线知,校正前系统超调: σ = 79.9 % \sigma=79.9\% σ=79.9%,上升时间: t r = 0.384 s t_r=0.384{\rm s} tr=0.384s,调节时间: t s = 19.1 s t_s=19.1{\rm s} ts=19.1s
  • 由单位阶跃响应曲线知,校正后系统超调: σ = 28.9 % \sigma=28.9\% σ=28.9%,上升时间: t r = 0.907 s t_r=0.907{\rm s} tr=0.907s,调节时间: t s = 4.19 s t_s=4.19{\rm s} ts=4.19s
  • 因此,系统经串联超前滞后校正后,系统性能提高;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

区块链技术之密码学

密码学是研究编制密码和破译密码的技术科学&#xff0c;研究密码变化的客观规律&#xff0c;应用于编制密码以保守通信秘密的&#xff0c;成为编码学&#xff1b;应用于破译密码以获取通信情报的&#xff0c;称为破译学&#xff0c;总称密码学。在区块链中重要问题之一就是区块…

锁 一、锁的分类 1.1 可重入锁、不可重入锁 Java中提供的synchronized&#xff0c;ReentrantLock&#xff0c;ReentrantReadWriteLock都是可重入锁。 重入&#xff1a;当前线程获取到A锁&#xff0c;在获取之后尝试再次获取A锁是可以直接拿到的。 不可重入&#xff1a;当前…

Eclipse下载使用手册

Eclipse下载使用手册 目录Eclipse下载使用手册Eclipse的介绍与安装Eclipse简介Eclipse的下载Eclipse的解压Eclipse的介绍与安装 Eclipse简介 Eclipse 是一个开放源代码的&#xff0c;基于 Java 的可扩展开发平台。Eclipse官方版是一个集成开发环境(IDE)&#xff0c;可以通过安…

MySQL-自带工具介绍

目录 &#x1f341;mysql &#x1f341;mysqladmin &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;MySQL专栏&#xff1a;MySQL专栏地址 MySQL数据库不仅提供了数据库的服务器端应用程序&#xff0c;同时还提供了大量的客户端工具程序&#xff0c;如mysql&a…

Linux安装MySQL5.7MySQL8.0

Linux安装MySQL5.7一、设置yum源并安装1.1 配置rpm仓库1.1.1 更新密钥1.1.2 安装mysql yum库1.2 使用yum进行安装1.3 启动并配置开机启动二、配置MySQL2.1 获取初始密码2.2 登录MySQL2.3 修改root密码2.3.1 设置复杂密码(默认)2.3.2 设置简单的用户密码2.4 授权root用户远程登陆…

蓝桥杯第十四届校内赛(第三期) C/C++ B组

一、填空题 &#xff08;一&#xff09;最小的十六进制 问题描述   请找到一个大于 2022 的最小数&#xff0c;这个数转换成十六进制之后&#xff0c;所有的数位&#xff08;不含前导 0&#xff09;都为字母&#xff08;A 到 F&#xff09;。   请将这个数的十进制形式作…

力扣二叉树题目专题解析

题目分类大纲如下&#xff1a; 二叉搜索树 前面介绍的树&#xff0c;都没有数值的&#xff0c;而二叉搜索树是有数值的了&#xff0c;二叉搜索树是一个有序树。 若它的左子树不空&#xff0c;则左子树上所有结点的值均小于它的根结点的值&#xff1b;若它的右子树不空&#x…

滴滴滴,请看MYSQL事务的四大特征(ACID)的实现原理:晓其原理而通其实现。

一.什么是事务的四特征 原子性&#xff08;Atomicity&#xff0c;或称不可分割性&#xff09;一致性&#xff08;Consistency&#xff09;隔离性&#xff08;Isolation&#xff09;持久性&#xff08;Durability&#xff09; 接下来&#xff0c;我们将对四大特性的具体概念以及…

java中File转为MultipartFile的问题解决

今天为了需要&#xff0c;把File需要转为MultipartFile&#xff0c;下列代码&#xff0c;编译启动都没有问题 public static MultipartFile getMultipartFile(File file){FileInputStream fileInputStream;MultipartFile multipartFile;try {fileInputStream new FileInputSt…

《JavaEE初阶》计算机网络之网络原理(应用层)

《JavaEE初阶》计算机网络之网络原理(应用层) 文章目录《JavaEE初阶》计算机网络之网络原理(应用层)前言:应用层:自定义应用层协议:如何进行自定义应用层协议自定义应用层协议的格式选择:应用层的现成协议.前言: 本章主要讲解计算机网络原理中的应用层概念以及如何自定义应用层…

centos7 安装photoprism部署私人相册

1、安装docker; 这个是前置条件&#xff0c;也很简单&#xff0c;暂且不表。 2、安装docker-compose&#xff1b; curl -L https://github.com/docker/compose/releases/download/1.21.1/docker-compose-uname -s-uname -m -o /usr/local/bin/docker-compose #下载docker-co…

如何让你的blynk服务器随ubuntu系统启动?

昨天在ubuntu系统搭建了blynk服务器&#xff0c;无奈每次重启都要手动去启动&#xff0c;麻烦&#xff01; 今天就把它加入系统服务里面运行&#xff0c;一劳永逸 首先用WINSCP连接ubuntu在/root/文件夹下新建一个blynk文件夹 把blynk服务器文件放到文件夹中 在/etc/systemd/…

黑马程序员Java教程学习笔记(六)

学习视频&#xff1a;https://www.bilibili.com/video/BV1Cv411372m 如侵权&#xff0c;请私信联系本人删除 文章目录黑马程序员Java教程学习笔记&#xff08;六&#xff09;File概述、File对象创建File类的常用方法方法递归非规律化递归问题&#xff1a;文件搜索IO前置内容&am…

P1003 [NOIP2011 提高组] 铺地毯

题目描述 为了准备一个独特的颁奖典礼&#xff0c;组织者在会场的一片矩形区域&#xff08;可看做是平面直角坐标系的第一象限&#xff09;铺上一些矩形地毯。一共有 &#xfffd;n 张地毯&#xff0c;编号从 11 到 &#xfffd;n。现在将这些地毯按照编号从小到大的顺序平行于…

C语言试题生成与考试系统的设计与实现

当前&#xff0c;网络教学方兴未艾。网上考试已在其中扮演了重要的角色&#xff0c;传统试卷考试方式有待提高。网络教学已从其规范性、科学性及考试工作组织、管理的统一性&#xff0c;影响到教学质量的好坏。基于此&#xff0c;本系统开发实现了基于B/S模式的c试题生成与考试…

经典毕设项目-博客系统(spring boot、spring mvc、mybatis) gitee开源源码

目录 项目背景 核心技术 项目页面设计 注册页面 登录页面 博客列表页 博客详情页 个人博客列表页 个人博客发布页 个人博客修改页 项目模块与需求分析 AOP 处理模块 用户模块 文章模块 项目创建 实现 AOP 模块 实现登录拦截器 拦截器 拦截注册 实现统一数据…

补充C语言

1.关键字 前言: C90一共有32个关键字,C99比C90多了5个关键字,但主流的编译器对C99关键字支持的不是特别好, 所以后面主要以C90的32个关键字为标准1.1认识auto关键字 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> int main() {int i 0;auto int j 0;retur…

为什么要参加软考?软考如何备考?

软考是指软件工程师职业资格考试&#xff0c;它是由国家人力资源和社会保障部颁发的国家级职业资格证书&#xff0c;是目前我国最具权威性的计算机职业资格证书之一。软考考试内容丰富&#xff0c;包括软件工程、软件测试、软件项目管理、数据库等多个方面&#xff0c;考试难度…

Java分布式事务(七)

文章目录 🔥Seata提供XA模式实现分布式事务_业务说明🔥Seata提供XA模式实现分布式事务_下载启动Seata服务🔥Seata提供XA模式实现分布式事务_搭建聚合父工程构建🔥Seata提供XA模式实现分布式事务_转账功能实现上🔥Seata提供XA模式实现分布式事务_转账功能实现下🔥Se…

Qt-Web混合开发-CEF加载网页简单示例(12)

Qt-Web混合开发-CEF加载网页简单示例&#x1f499;&#x1f353; 文章目录Qt-Web混合开发-CEF加载网页简单示例&#x1f499;&#x1f353;1、概述&#x1f41b;&#x1f986;2、实现效果&#x1f605;&#x1f64f;3、实现功能&#x1f42e;&#x1f434;4、Qt部分关键代码&am…