ST 2.0 霍尔FOC 的相关难点总结

news2024/11/14 20:43:04

文章目录

      • HALL_Init_Electrical_Angle()
      • Clark 变换
      • 获取电流
      • park 变换 , 逆park变换
      • 逆park变换的幅度限制
      • 扇区计算 https://www.zhihu.com/people/Temo/posts
      • 每个相位的执行时间计算 (如果自己记录的不够清楚,可以打开同目录。资源文件目录下的:svpwm_知乎文章_详细.pdf)

在这里插入图片描述
在这里插入图片描述


HALL_Init_Electrical_Angle()

  • 关于电角度的理解,我的另外一篇博文有介绍。自己去看

  • XOR 波形输出
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


  • hall sensor 的输出状态。

    • 由下图可知道不同电平,转子在不同的扇区,以 s t a t e X = H 3 < < 2 ∣ H 2 < < 1 ∣ H 1 stateX=H3<<2|H2<<1|H1 stateX=H3<<2∣H2<<1∣H1 为例,在图中,state 5在第一扇区,下图是逆时针旋转,
      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
  • 将65536 分成306度。取代浮点。那么 65535 360 代表 1 ° \frac{65535}{360}代表 1\degree 36065535代表

  • void TIM3_IRQHandler(void)
    代码解析

    • switch(bHallState),这里只有5,3,6.为什么? 因为stm32F1系列只有单边沿计数捕获。所以只有三种状态。根据xor信号可以看出,在触发下降沿的时候,H3<<2|H2<<1|H1 = 5 ,3, 6

    • 正反转,代码和上图结合看,是逆时针是正方形

    •   case 5:
        if(bSpeed<0)
        {
          //在下一行基础上加60度,因为每个扇区正好是60度。下面都是这样的
          hElectrical_Angle = (s16)(S16_PHASE_SHIFT+S16_60_PHASE_SHIFT);
        }
        else if(bSpeed!= ERROR)
        {
          hElectrical_Angle = S16_PHASE_SHIFT;  
        }
      

      这里电角度我的理解是,假如正转(逆时针)。那么case:5的时候,是第一次到达0,也就是上图中的水平x方向,也就是电角度的0度, 反方向的时候,是顺时针过来的,到case:5的时候,角度是60度。在加上S16_PHASE_SHIFT(这个是A相的最大饭店董事和H1上升沿的角度延迟)。如下图
      外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
      在这里插入图片描述


    • 同理

        case 3:
        if(bSpeed<0)
        {
          //在下一行基础上加60度,因为每个扇区正好是60度。下面都是这样的
          hElectrical_Angle = (s16)(S16_PHASE_SHIFT+S16_120_PHASE_SHIFT+
                                                S16_60_PHASE_SHIFT);
        }
        else if(bSpeed!= ERROR)
        {
          hElectrical_Angle =(s16)(S16_PHASE_SHIFT + S16_120_PHASE_SHIFT);
        }
      

      在case=3的时候,正方向的时候(逆时针)到120度的时候,正好满足刚好到3. 同理负方向(顺时针)需要再加60度,正好一个扇区。

    • s16 HALL_GetRotorFreq ( void )
      +

              PeriodMeasAux = GetAvrgHallPeriod();
              hRotorFreq_dpp = (s16)((u16) (PSEUDO_FREQ_CONV /
                                                    PeriodMeasAux.wPeriod));
              hRotorFreq_dpp *= PeriodMeasAux.bDirection;               
      
      

      P S E U D O _ F R E Q _ C O N V = ( C K T I M ∗ 10 ) / 3 S A M P L I N G _ F R E Q ∗ 10 ⋅ 2 16 PSEUDO\_FREQ\_CONV=\frac{(CKTIM*10) / 3}{SAMPLING\_FREQ * 10}\cdot 2^{16} PSEUDO_FREQ_CONV=SAMPLING_FREQ10(CKTIM10)/3216
      理解hRotorFreq_dpp:
      C K T I M w P e r i o s \frac{CKTIM}{wPerios} wPeriosCKTIM也就是得出捕获输入的频率

      C K T I M w P e r i o s ⋅ S A M P L I N G _ F R E Q \frac{CKTIM}{wPerios\cdot SAMPLING\_FREQ } wPeriosSAMPLING_FREQCKTIM也就是得PWM周期的频率

      C K T I M 3 ⋅ w P e r i o s ⋅ S A M P L I N G _ F R E Q \frac{CKTIM}{3\cdot wPerios\cdot SAMPLING\_FREQ } 3wPeriosSAMPLING_FREQCKTIM除以3也就是得PWM周期的状态频率,因为只有下降沿触发,所有只有3个状态,3个状态对应着一圈也就是 2 π 2\pi 2π

      最后乘以 2 16 2^{16} 216也就是将电角度转化为65535大小。也就是每 2 π 2\pi 2π是65535大小


Clark 变换

  • Curr_Components Clarke(Curr_Components Curr_Input)

  • 坐标系(这里和匠心科技的手册不一样,手册是 I β I_\beta Iβ向上的):


    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

I α = k ( I a − c o s ( 60 ) ∗ I b − c o s ( 60 ) ∗ I c ) I_\alpha = k(I_a-cos(60)*I_b-cos(60)*I_c) Iα=k(Iacos(60)Ibcos(60)Ic)
I β = k ( c o s ( 30 ) ∗ I c − c o s ( 30 ) ∗ I b ) I_\beta = k(cos(30)*I_c-cos(30)*I_b) Iβ=k(cos(30)Iccos(30)Ib)
I a + I b + I c = 0 I_a+I_b+I_c = 0 Ia+Ib+Ic=0
结合上面3个公式可得:
I α = I a I β = − I a + 2 ∗ I b 3 I_\alpha = I_a \qquad I_\beta = -\frac{I_a+2*I_b}{\sqrt{3}} Iα=IaIβ=3 Ia+2Ib

  • 数据格式:
    • 这里用的都是Q15格式的。也就是1位是符号位,15位是小数位。Q15转浮点除以2^15 = 327678. 浮点转Q15 乘以32768
    • 两个Q15 相乘后,等于浮点数*2^30 次,所以要转化为Q15还需要再除以2^15=32768 才能转换为Q15 格式。
    • 为什么一开始qIa_divSQRT3_tmp 要除以sqrt(3),这是因为最后求得时候还要除,这里是简化了。

获取电流

  • Curr_Components SVPWM_3ShuntGetPhaseCurrentValues(void)

  • ADC1->JDR1 << 1 原因:我们是注入组左对齐,因此右移3位才是真实的转换值。电流采样值的Q15格式为:((ADC1->JDR1<<1)>>4)/4096Vref2^15=((((ADC1->JDR1<<1)>>4)>>12)*Vref)<<15=ADC1->JDR1<<1. 因为左对齐中,数据有效位为bit3-bit14,共12位。Vref=2(假设的,不影响)hPhaseAOffset 为Q15格式的零点电流。

  • 个人认为代码中wAux = (s32)(hPhaseAOffset)- ((ADC1->JDR1)<<1);是有问题的,应该反过来才对,再st foc 5.3中就是反过来的,所以这里的电流是负值。

park 变换 , 逆park变换

  • Curr_Components Park(Curr_Components Curr_Input, s16 Theta)

  • 坐标系(这里和匠心科技的手册不一样,手册是 I β I_\beta Iβ向上的):
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


    park transform
    I q = I α ∗ c o s ( θ ) − I β ∗ s i n ( θ ) I_q = I_\alpha*cos(\theta)-I_\beta*sin(\theta) Iq=Iαcos(θ)Iβsin(θ)
    I d = I α ∗ s i n ( θ ) + I β ∗ c o s ( θ ) I_d = I_\alpha*sin(\theta)+I_\beta*cos(\theta) Id=Iαsin(θ)+Iβcos(θ)


    rev park transform ,逆park变换用于电压。
    V α = V q ∗ c o s ( θ ) + V d ∗ s i n ( θ ) V_\alpha = V_q*cos(\theta)+V_d*sin(\theta) Vα=Vqcos(θ)+Vdsin(θ)
    V β = − V q ∗ s i n ( θ ) + V d ∗ c o s ( θ ) V_\beta = -V_q*sin(\theta)+V_d*cos(\theta) Vβ=Vqsin(θ)+Vdcos(θ)


逆park变换的幅度限制

  • void RevPark_Circle_Limitation(void)

  • 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 上图可知,当PID的输出V_q,V_d 的模大于极限的时候,需要等比例缩放。


    PID 输出为 V q − p i d V d − p i d V_{q-pid} \quad V_{d-pid} VqpidVdpid ,经过限制后的输出为 V q − o u t V d − o u t V_{q-out} \quad V_{d-out} VqoutVdout
    必定有:
    MAXMODULEM = 32768 * 调制比
    V q − p i d V q − o u t = V q − p i d 2 + V d − p i d 2 M A X M O D U L E M 2 \frac{V_{q-pid}}{V_{q-out}}=\sqrt{\frac{V_{q-pid}^2+V_{d-pid}^2}{MAXMODULEM^2}} VqoutVqpid=MAXMODULEM2Vqpid2+Vdpid2

    V d − p i d V d − o u t = V q − p i d 2 + V d − p i d 2 M A X M O D U L E M 2 \frac{V_{d-pid}}{V_{d-out}}=\sqrt{\frac{V_{q-pid}^2+V_{d-pid}^2}{MAXMODULEM^2}} VdoutVdpid=MAXMODULEM2Vqpid2+Vdpid2



    st这里就是查表求右边的倒数,记为S_cof.

个人猜测ST源代码里提供了一种巧妙的思路,先假定ST的单位矢量圆半径是32768,即当Vq,Vd的合成矢量满足满调制比时,合成矢量的大小为32768,由此可得出从PID环节输出来的Vq_pid和Vd_pid能够合成的电压矢量范围为0— V q − p i d 2 + V d − p i d 2 = 2 ∗ 3276 8 2 \sqrt{V_{q-pid}^2 + V_{d-pid}^2 }=\sqrt{2*32768^2} Vqpid2+Vdpid2 =2327682 ,注意,这个范围远远超出了电压调制范围,因此需要在内部加一个限制,以此为基础有:

  • 将0—$ {2*32768^2} $ 划分成128等分;

  • 设定最大调制比为0.98,则得出满足调制的最大电压矢量MAX_MODULE(约为32111),当Vq_pid和Vd_pid 达到可以合成的最大电压矢量时,即满足 V q − p i d 2 + V d − p i d 2 = M A X M O D U L E M 2 {V_{q-pid}^2 + V_{d-pid}^2 }=MAXMODULEM^2 Vqpid2+Vdpid2=MAXMODULEM2 ,此时在128等分中为第61个,即这128等分的前61个电压矢量是可以被利用的。(61是怎么来的?32111^2 正好在0-2*32768^2 划分的128个位置的第61个位置)

  • 因为只有当合成矢量大于限制圆时,才需要限制,即处于128等分的后67等分里才需要处理,所以只需要对后67个等分对应的S_cof列表即可。

  • ST代码中先计算PID环节出来后电压矢量所处的等分点区间,然后减去限制圆内的等分点个数,得到在67个等分点范围内的节点号,再去查表得到S_cof,然后重新计算 V q − p i d V d − p i d {V_{q-pid}\quad V_{d-pid}} VqpidVdpid

void RevPark_Circle_Limitation(void)
{
	s32 temp;
	//计算Vd^2+Vq^2             
	temp = Stat_Volt_q_d.qV_Component1 * Stat_Volt_q_d.qV_Component1 
             + Stat_Volt_q_d.qV_Component2 * Stat_Volt_q_d.qV_Component2;  // min value 0, max value 2*32767*32767
              
	if ( temp > (u32)(( MAX_MODULE * MAX_MODULE) ) ) // 如果(Vd^2+Vq^2)大于MAX_MODULE^2,就要进行比例缩小
	{
		u16 index; //假设Vq=x*32767, Vd=y*32767
		          
		//理解在同目录.md文件里
		temp /= (u32)(512*32768);  // min value START_INDEX, max value 127,缩小64倍
		temp -= START_INDEX ;   // min value 0, max value 127 - START_INDEX
		index = circle_limit_table[(u8)temp];
		temp = (s16)Stat_Volt_q_d.qV_Component1 * (u16)(index); //使用缩小系数来缩小Vq
		Stat_Volt_q_d.qV_Component1 = (s16)(temp/32768);  
		temp = (s16)Stat_Volt_q_d.qV_Component2 * (u16)(index); 
		Stat_Volt_q_d.qV_Component2 = (s16)(temp/32768);  
	}

} 

  •   temp /= (u32)(512*32768);  
    
    代码理解。因为是对232768^2 (因为上面代码中是两个Q15的数相加,所以是两倍)划分,那么每份的大小等于232768^2/128 = 512*32768
  •   temp -= START_INDEX ;   // min value 0, max value 127 - START_INDEX
    
    这里的START_INDEX 说明在当前调制百分比下,MAX_MODULE^2(MAX_MODULE=32768*调制比)所在的位置(128个之中的哪一个)

扇区计算 https://www.zhihu.com/people/Temo/posts

  • void SVPWM_3ShuntCalcDutyCycles (Volt_Components Stat_Volt_Input)

  • 坐标系参考, U β U_\beta Uβ 朝下
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


  • 代码分析

        void SVPWM_3ShuntCalcDutyCycles (Volt_Components Stat_Volt_Input)
        {
            s32 wX, wY, wZ, wUAlpha, wUBeta;
            u16  hTimePhA=0, hTimePhB=0, hTimePhC=0, hTimePhD=0;
            u16  hDeltaDuty;
              
            wUAlpha = Stat_Volt_Input.qV_Component1 * T_SQRT3 ;
            wUBeta = -(Stat_Volt_Input.qV_Component2 * T);

            wX = wUBeta;
            wY = (wUBeta + wUAlpha)/2;
            wZ = (wUBeta - wUAlpha)/2;
          
            // Sector calculation from wX, wY, wZ
            if (wY<0)
            {
                if (wZ<0)
                {
                    bSector = SECTOR_5;
                }
                else // wZ >= 0
                  if (wX<=0)
                  {
                      bSector = SECTOR_4;
                  }
                  else // wX > 0
                  {
                      bSector = SECTOR_3;
                  }
            }
            else // wY > 0
            {
                if (wZ>=0)
                {
                    bSector = SECTOR_2;
                }
                else // wZ < 0
                if (wX<=0)
                {  
                    bSector = SECTOR_6;
                }
                else // wX > 0
                {
                    bSector = SECTOR_1;
                }
            }
        }
  

  • 解读: 在以上代码中,可以得到
    w X = − U β wX = -U_\beta \quad wX=Uβ
    w Y = − U β + 3 U α 2 wY=\frac{-U_\beta+\sqrt{3}U_\alpha}{2} wY=2Uβ+3 Uα
    w Z = − U β + 3 U α 2 wZ = \frac{-U_\beta+\sqrt{3}U_\alpha}{2} wZ=2Uβ+3 Uα


    然后令 w X = 0 w Y = 0 w Z = 0 wX=0 \quad wY = 0 \quad wZ=0 wX=0wY=0wZ=0 则得到三条直线如上图所示。然后根据如图所示的比较关系判断扇区。扇区从第一象限逆时针开始。

每个相位的执行时间计算 (如果自己记录的不够清楚,可以打开同目录。资源文件目录下的:svpwm_知乎文章_详细.pdf)

  • 假设在第一象限
    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传


    如上图所示:
    U 6 = U 4 = 2 ⋅ U d c 3 . . . . ( 1 ) U_6=U_4 = \frac{2\cdot U_{dc}}{3} ....(1) U6=U4=32Udc....(1)


    U α ⋅ T s = U 4 ⋅ T 4 + U 6 ⋅ c o s ( 60 ) ⋅ T 6 . . . . ( 2 ) U_{\alpha}\cdot T_s = U_4\cdot T_4 + U_6 \cdot cos(60)\cdot T_6 ....(2) UαTs=U4T4+U6cos(60)T6....(2)

    − U β ⋅ T s = U 6 ⋅ s i n ( 60 ) ⋅ T 6.. ( 3 ) -U_{\beta}\cdot T_s = U_6 \cdot sin(60)\cdot T6..(3) UβTs=U6sin(60)T6..(3)
    这里有负号的原因是 β 轴是向下的,所以 U β 是负数,这里需要转正 这里有负号的原因是\beta轴是向下的,所以U_\beta是负数,这里需要转正 这里有负号的原因是β轴是向下的,所以Uβ是负数,这里需要转正

    (1)(2)(3)可得,同时(2)(3)同时除以 3 U d c \frac{\sqrt{3}}{U_{dc}} Udc3 .:
    T 4 = T s ( 3 U α + U β 2 ) T_4={T_s}(\frac{\sqrt{3}U_\alpha + U_\beta}{2}) T4=Ts(23 Uα+Uβ)

    T 6 = T s ( − U β ) T_6=T_s(-U_\beta) T6=Ts(Uβ)

    ∵ w X = − T ⋅ U β w Y = − T ⋅ U β + 3 ⋅ T ⋅ U α 2 w Z = − T ⋅ U β − 3 ⋅ T ⋅ U α 2 \because wX=-T\cdot U_\beta \quad wY=\frac{-T\cdot U_\beta+\sqrt{3}\cdot T \cdot U_\alpha}{2} \quad wZ=\frac{-T\cdot U_\beta-\sqrt{3}\cdot T \cdot U_\alpha}{2} wX=TUβwY=2TUβ+3 TUαwZ=2TUβ3 TUα
    and T s = 2 ⋅ T T_s=2\cdot T Ts=2T

    因为计数器是上下计数的,所以代码中的T只有周期一半

    ∴ \therefore
    T 4 = 2 T ( 3 U α + U β 2 ) T_4={2T}(\frac{\sqrt{3}U_\alpha + U_\beta}{2}) T4=2T(23 Uα+Uβ)
    T 6 = 2 T ( − U β ) T_6=2T(-U_\beta) T6=2T(Uβ)
    ∴ T 0 2 = T s − T 4 − T 6 4 = T − T 4 − T 6 2 = T − T ( 3 U α + U β 2 ) + T ⋅ U β 2 = T + T U β − 3 U α 2 2 \therefore \frac{T_0}{2}=\frac{T_s-T_4-T_6}{4}=\frac{T-T_4-T_6}{2}=\frac{T-T(\frac{\sqrt{3}U_\alpha + U_\beta}{2})+T\cdot U_\beta}{2}=\frac{T+T\frac{U_\beta-\sqrt{3}U_\alpha}{2}}{2} 2T0=4TsT4T6=2TT4T6=2TT(23 Uα+Uβ)+TUβ=2T+T2Uβ3 Uα

    以上算的是实际的时间,但是ST里面求得是寄存器比较值。也就是某一相的时间,也即hTimePhA。
    ∵ T = T s 2 \because T=\frac{T_s}{2} T=2Ts
    h T i m e P h A = T − T 0 2 = T − ( T − T 4 − T 6 2 ) = T + T 4 + T 6 2 = T + T ( 3 U α + U β 2 ) − T ⋅ U β 2 = T + T ( 3 U α − U β 2 ) 2 = T + w X − w Z 2 hTimePhA = T-\frac{T_0}{2}=T-(\frac{T-T_4-T_6}{2})=\frac{T+T_4+T_6}{2}=\frac{T+T(\frac{\sqrt{3}U_\alpha + U_\beta}{2})-T\cdot U_\beta}{2}=\frac{T+T(\frac{\sqrt{3}U_\alpha-U_\beta}{2})}{2}=\frac{T+wX-wZ}{2} hTimePhA=T2T0=T(2TT4T6)=2T+T4+T6=2T+T(23 Uα+Uβ)TUβ=2T+T(23 UαUβ)=2T+wXwZ

    h T i m e P h B = T − T 0 2 − T 4 2 = h T i m e P h A − T 4 2 = h T i m e P h A − T 3 U α + U β 2 = h T i m e P h A − ( − w Z ) = h T i m e P h A + w Z hTimePhB = T-\frac{T_0}{2} -\frac{T_4}{2}=hTimePhA -\frac{T_4}{2}=hTimePhA-T\frac{\sqrt{3}U_\alpha+U_\beta}{2}=hTimePhA-(-wZ) = hTimePhA+wZ hTimePhB=T2T02T4=hTimePhA2T4=hTimePhAT23 Uα+Uβ=hTimePhA(wZ)=hTimePhA+wZ

    h T i m e P h C = T − T 0 2 − T 4 2 − T 6 2 = h T i m e P h B − T 6 2 = h T i m e P h B − T ( − U β ) = h T i m e P h B − w X hTimePhC = T-\frac{T_0}{2} -\frac{T_4}{2}-\frac{T_6}{2}=hTimePhB-\frac{T_6}{2}=hTimePhB-T(-U_\beta)=hTimePhB-wX hTimePhC=T2T02T42T6=hTimePhB2T6=hTimePhBT(Uβ)=hTimePhBwX

    注解: 这里的因为计数器是上下计数的,所以代码中的T是实际上是 T s 2 \frac{T_s}{2} 2Ts . 注意上面的额式子中(2)(3)中已经都除以 3 U d c \frac{\sqrt{3}}{U_{dc}} Udc3


  • 假设在第一扇区,那么算出来的hTimePhA,hTimePhB,hTimePhC都是运行时间,怎么和PWM匹配的?
    在这里插入图片描述

    如图所示,三个时间控制的是有效电平。那么是在下三角区域有效的。这个地方很容易搞错。
    比如上图的,周期是 perios(ARR)=4800. ,CH1的hTimePhA(CCR1)=800.采用PWM1模式,即CNT < ARR 的时候s输入有效电平。也即高电平,大于的时候输出无效电平。

  • 为什么要除以131072。 131072 = 2^15*4. 因为代码中的T= 4*pwm_perios. 那么在扇区一中的计算代码为 h T i m e P h A = T 8 + T + w X − W z 2 2 15 ∗ 4 = p w m _ p e r i o s 2 + p w m _ p e r i o s w X − w Z 2 + T 2 ∗ 2 15 ∗ 4 hTimePhA=\frac{T}{8}+\frac{\frac{T+wX-Wz}{2}}{2^{15}*4}=\frac{pwm\_perios}{2}+pwm\_perios\frac{wX-wZ}{2}+\frac{T}{2*2^{15}*4} hTimePhA=8T+21542T+wXWz=2pwm_perios+pwm_perios2wXwZ+22154T 尾巴项和推导对不上,但是尾巴项的取值范围不到1.可以忽略不计,感觉是故弄玄虚。

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

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

相关文章

【vue3】依赖注 provide、inject(父组件与儿子、孙子、曾孙子组件之间的传值)

一、基本用法&#xff1a; //父组件 import { ref, provide } from vue const radio ref<string>(red) provide(myColor,radio) //注入依赖//儿子组件、孙子组件、曾孙子组件 import { inject } from vue import type { Ref } from vue; const myColor inject<Ref&l…

保护云数据安全的关键环节是什么?

云数据安全是维护数据隐私和保护关键信息的关键一环。在云中存储和处理数据提供了巨大的便利性和效率&#xff0c;但同时也伴随着风险。本文将介绍保护云数据的关键环节是什么! 1、数据加密&#xff1a;在传输和存储数据时使用强加密是保护数据的基本步骤。确保数据在云中存储时…

C++类与对象,构造函数,析构函数,拷贝构造函数

C类与对象&#xff0c;构造函数&#xff0c;析构函数&#xff0c;拷贝构造函数 1. 类的6个默认成员对象2. 构造函数2.1 概念2.2 特性 3. 析构函数3.1 概念3.2 特性 4. 拷贝构造函数4.1 概念4.2 特性 所属专栏&#xff1a;C“嘎嘎" 系统学习❤️ &#x1f680; >博主首页…

uni-app:实现picker下拉列表的默认值设置

效果 分析 1、在data中将index8的初始值设置为-1&#xff0c;表示未选择任何选项&#xff1a; index8: -1, //选择的下拉列表下标 2、在bindPickerChange8事件处理函数中添加条件判断。如果选择的值是-1&#xff0c;则将this.index8设置为"请输入"&#xff0c;否则将…

智能电表远程抄表在电力系统中的运用分析

摘要&#xff1a;随着我国国民经济的提升&#xff0c;人民的生活水平不断改善。智能小区的建设在城市中得到了迅速发展&#xff0c;智能电表在各个小区内十分常见。 本文简单阐述智能电表远程抄表在电力系统中的相关功能和实现方法&#xff0c;详细分析了智能电表远程抄表在电…

docker环境,ubuntu18.04安装VTK8.2和PCL1.9.1

下载源码和依赖库 首先下载源码VTK8.2: Download | VTK 下载PCL1.9.1链接&#xff1a;Releases PointCloudLibrary/pcl GitHub 下载好了以后&#xff0c;先安装PCL依赖 sudo apt-get update sudo apt-get install git build-essential linux-libc-dev sudo apt-get instal…

Windows安装Redis,并设置开机启动保姆版

Redis是一种键值对数据库&#xff0c;也称为内存数据库&#xff0c;因为它可以将数据存储在内存中&#xff0c;而不是在磁盘上。它主要用于高速读写数据和缓存。Redis支持多种数据结构&#xff0c;如字符串、哈希、列表、集合和有序集合等&#xff0c;并提供了许多高级功能&…

03142《互联⽹及其应⽤》各章简答题解答(课后习题)

03142《互联⽹及其应⽤》各章简答题解答&#xff08;课后习题&#xff09; *第* *1* *章* *名词解释* 互联网网络&#xff08;Internet&#xff09; 互联网是建立在一组共同协议之上的网络设备和线路的物理集合&#xff0c;是一组可共享的资源集。&#xff08;1 分&#xf…

c语言进制的转换10进制转换16进制

c语言进制的转换10进制转换16进制 c语言的进制的转换 c语言进制的转换10进制转换16进制一、16进制的介绍二、10进制转换16进制的方法 一、16进制的介绍 十六进制&#xff1a; 十六进制逢十六进一&#xff0c;所有的数组是0到9和A到F组成&#xff0c;其中A代表10&#xff0c;B代…

班级管理高效工具

随着科技的进步&#xff0c;教学管理也正在逐步迈向数字化。成绩查询系统就是其中之一&#xff0c;它不仅方便快捷&#xff0c;而且大大提高了我们的工作效率。那么&#xff0c;成绩查询系统是什么呢&#xff1f;如何用各种代码、Excel来实现让学生自助查询成绩呢&#xff1f;下…

微信小程序设计之主体文件app-ts/js

一、新建一个项目 首先&#xff0c;下载微信小程序开发工具&#xff0c;具体下载方式可以参考文章《微信小程序开发者工具下载》。 然后&#xff0c;注册小程序账号&#xff0c;具体注册方法&#xff0c;可以参考文章《微信小程序个人账号申请和配置详细教程》。 在得到了测…

基于springcloud+web实现智慧养老平台系统项目【项目源码+论文说明】计算机毕业设计

基于springcloudweb实现智慧养老平台系统演示 摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要…

关于 LLM 和知识图谱、图数据库,大家都关注哪些问题呢?

自 LLM 系列文章《知识图谱驱动的大语言模型 Llama Index》、《Text2Cypher&#xff1a;大语言模型驱动的图查询生成》、《Graph RAG: 知识图谱结合 LLM 的检索增强》陆续和大家见面&#xff0c;以及《夜谈 LLM》主题直播同大家交流一番 LLM 和知识图谱、图数据库之后&#xff…

深眸科技以需求定制AI视觉解决方案,全面赋能产品外观缺陷检测

产品外观是影响产品质量最重要的因素之一&#xff0c;其平整度、有无瑕疵等不仅影响到产品美观&#xff0c;甚至能够直接影响产品本身的使用和后续加工&#xff0c;给企业带来重大经济损失。 随着人工智能技术的快速发展&#xff0c;机器视觉与AI技术的结合应用加速渗透进工业…

长三角实现区块链电子医疗票据互联互通,蚂蚁链提供技术支持

10月25日&#xff0c;记者从浙江省财政厅发布的消息获悉&#xff0c;上海、浙江、江苏和安徽三省一市基于蚂蚁链实现区块链电子医疗票据互联互通&#xff0c;商业保险理赔作为首个规模化应用场景正式落地&#xff0c;蚂蚁保“安心赔”理赔服务率先接入。 今后&#xff0c;老百…

linux 内存检测工具 kfence 详解

版本基于&#xff1a; Linux-5.10 约定&#xff1a; PAGE_SIZE&#xff1a;4K 内存架构&#xff1a;UMA 0. 前言 本文 kfence 之外的代码版本是基于 Linux5.10&#xff0c;最近需要将 kfence 移植到 Linux5.10 中&#xff0c;本文借此机会将 kfence 机制详细地记录一下。 k…

2023-10-25 LeetCode每日一题(求一个整数的惩罚数)

2023-10-25每日一题 一、题目编号 2698. 求一个整数的惩罚数二、题目链接 点击跳转到题目位置 三、题目描述 给你一个正整数 n &#xff0c;请你返回 n 的 惩罚数 。 n 的 惩罚数 定义为所有满足以下条件 i 的数的平方和&#xff1a; 1 < i < ni * i 的十进制表示…

Linux repo 文件复习学习

在此学习了Linux repo 文件 https://blog.csdn.net/bcbobo21cn/article/details/123159702 下面复习和学习一些新内容&#xff1b; linux repo就是指“repository”&#xff1b;在使用yum命令的时候系统会自动读取repo文件&#xff0c;然后去repositry获取软件&#xff1b;通…

MOTHERNEST双十一我们的目标是:不愁货——有!不愁钱——折!

喜迎双十一&#xff0c;MOTHERNEST进入开抢模式&#xff0c;水飞蓟护肝片&#xff0c;牛初乳粉&#xff0c;液体钙维生素D3胶囊将进行抢购模式&#xff0c;每人限购4件。 开抢时间&#xff1a; 2023.10.31 20:00-2023.10.31 23:59 2023.11.03 20:00-2023.11.03 23:59 限量每…

震坤行亮相2023工博会,并荣获第23届中国工博会“CIIF信息技术奖”

震坤行亮相2023工博会&#xff0c;并荣获第23届中国工博会“CIIF信息技术奖” 2023年9月19日&#xff0c;2023年第23届中国国际工业博览会CIIF&#xff08;以下简称“工博会”&#xff09;在上海国家会展中心盛大开幕。震坤行紧跟智能制造产业发展步伐&#xff0c;携数字化解决…