【永磁同步电机(PMSM)】 6. 矢量空间算法(SVPWM)

news2024/11/14 3:07:14

【永磁同步电机(PMSM)】 6. 矢量空间算法(SVPWM)

    • 1. SVPWM 的基本原理
      • 1.1 SVPWM 的优点
      • 1.2 SVPWM 的电路拓扑
      • 1.3 连续旋转的空间矢量
    • 2. SVPWM 的算法实现
      • 2.1 电压矢量组合方案
      • 2.2 SVPWM 的实现步骤
    • 3. 基于 Simulink 的 SVPWM 仿真模型
      • 3.1 SVPWM 的仿真模型
      • 3.2 SVPWM 的仿真结果
    • 4. 基于 s 函数的 SVPWM 仿真模型。


本节讨论矢量空间脉宽调制(Space Vector Pulse Width Modulation, SVPWM)的原理和实现步骤,在Matlab/Simulink 环境下,搭建 SVPWM 仿真模型。

  • 磁场定向控制(FOC)又称矢量控制,是常用的 PMSM控制方法,能够实现对转矩和磁场的独立控制。空间矢量脉宽调制(SVPWM)用来生成逆变器驱动电机的 PWM 信号。

  • 空间矢量调制 (SVPWM) 是 PMSM 磁场定向控制的常用方法,用于生成脉宽调制信号以控制逆变器的开关,由此产生所需的调制电压,以所需的速度或转矩驱动电机。


1. SVPWM 的基本原理

空间矢量调制 (SVPWM) 是负责生成脉宽调制信号以控制逆变器的开关,由此产生所需的调制电压,以所需的速度或转矩驱动电机。


1.1 SVPWM 的优点

SPWM 控制的目标是使输出电流尽量接近正弦波,三相交流负载进而还要求保持三相电流的平衡和相位差,按照圆形旋转磁场进行控制可以实现更好的性能。

SVPWM 基于空间矢量坐标变换理论,通过逆变器不同开关状态的变化,来控制空间矢量轨迹逼近理想磁链,获得准圆形旋转磁场,对 PMSM 电机的控制性能比 SPWM 更高。

SVPWM 的优点是:

  • 动态性能好,输出电压和电流谐波小,可以减小电机的转矩脉动、改善电机的运行性能;
  • 电压利用效率高,输出电压最大幅值为 U d / 3 U_d/ \sqrt{3} Ud/3 ,线电压最大幅值为 U d U_d Ud,直流电压利用率可以达到100%;
  • 开关损耗小,在每次状态变化时只有一个开关切换,开关损耗小。

1.2 SVPWM 的电路拓扑

考虑三相逆变器电机控制的空间矢量调制方法。三相桥式PWM逆变器具有3组桥臂6个开关器件,上下桥臂的开关状态互补,可以产生8种开关组合。每种开关组合都会产生特定的电压,施加于电机端子。

连接到电机定子绕组的三相逆变器电路如下图所示。开关 S2、S4、S6 分别与 S1、S3、S5 互补。
在这里插入图片描述

交流测相电压 V A N V_{AN} VAN V B N V_{BN} VBN V C N V_{CN} VCN 与开关函数的关系为:

{ V A N = U d c ( 2 s a − s b − s c ) / 3 V B N = U d c ( 2 s b − s a − s c ) / 3 V C N = U d c ( 2 s c − s a − s b ) / 3 \begin{cases} \begin{aligned} V_{AN} &= U_{dc}(2s_a-s_b-s_c)/3\\ V_{BN} &= U_{dc}(2s_b-s_a-s_c)/3\\ V_{CN} &= U_{dc}(2s_c-s_a-s_b)/3 \end{aligned} \end{cases} VANVBNVCN=Udc(2sasbsc)/3=Udc(2sbsasc)/3=Udc(2scsasb)/3

电压是基本空间矢量,以空间矢量六边形表示其幅值和方向。8 种开关组合对应于 8 个基本的电压空间矢量V_0(0,0,0)、V_1(0,0,1)、V_2(0,1,0)、V_3(0,1,1)、V_4(1,0,0)、V_5(1,0,1)、V_6(1,1,0)和V_7(1,1,1)。
2个零矢量 V 0 V_0 V0 V 7 V_7 V7 位于原点,幅值为零,称为零矢量。6个非零矢量 V 1   V 6 V_1~V_6 V1 V6 的幅值相同(相电压幅值都是 U_dc*2/3),空间位置依次相差60°,位于正六边形的6个顶点。

将 8 种开关状态函数代入上式,得到 8种开关组合与电压的关系如下表所示。

在这里插入图片描述

这8个电压空间矢量可以构成一个封闭的正六边形磁链矢量轨迹,但不能产生连续的电压空间矢量运行轨迹,带有较大的谐波分量,将导致转矩脉动。


1.3 连续旋转的空间矢量

把一个工作周期划分为 6个扇区,通过分配 8个矢量的工作时间,可以合成产生正 6N 边形旋转磁场所需的期望电压空间矢量,可以逼近圆形的旋转磁场。

在这里插入图片描述

在每一个扇区,选择相邻的两个电压矢量以及零矢量,按照伏秒平衡的原则来合成每个扇区内的任意电压矢量:

∫ 0 T U r e f d t = ∫ 0 T x U x d t + ∫ T x T y U y d t + ∫ T y T U 0 ∗ d t \int_0^T U_{ref} dt = \int_0^{T_x} U_x dt + \int_{T_x}^{T_y} U_y dt + \int_{T_y}^T U_0^* dt 0TUrefdt=0TxUxdt+TxTyUydt+TyTU0dt

U r e f T = U x T x + U y T y + U 0 T 0 U_{ref} T = U_x T_x + U_y T_y + U_0 T_0 UrefT=UxTx+UyTy+U0T0

式中,Uref 为期望电压矢量,T为采样周期,Tx、Ty、T0分别为对应两个非零电压矢量 Ux、Uy 和零电压矢量 U0 在一个采样周期内的作用时间。其中U0包括了U0和U7两个零矢量。

上式的意义是,矢量 Uref 在 T 时间内所产生的积分值,与 Ux、Uy、U0 分别在时间 Tx、Ty、T0 内产生的积分值之和 相同。

由于三相正弦波电压在电压空间向量中合成一个等效的旋转电压,其旋转速度是输入电源角频率,等效旋转电压的轨迹将是如图2-9 所示的圆形。要产生三相正弦波电压,可以利用以上电压向量合成方法,在电压空间向量上,将设定的电压向量由 U4(100) 位置开始,每一次增加一个小增量,每一个小增量设定电压向量可以用该区中相邻的两个基本非零向量与零电压向量予以合成,如此所得到的设定电压向量就等效于一个在电压空间向量平面上平滑旋转的电压空间向量,从而达到电压空间向量脉宽调制的目的。

通过对开关区间内的基本空间矢量(方向)和零矢量(幅值)作用时间进行调节,可以近似得到空间矢量六边形内任意位置、任意幅值的电压矢量。例如图中,一个脉宽调制 (PWM) 周期内,选择两个相邻空间矢量(图中的 U3 和 U4)分别作用一段时间、在周期其余时间内由零矢量(U7 或 U8)作用,从而得到近似平均参考矢量 Uref。

通过控制开关序列,即控制脉冲的导通持续时间,就可以在每个 PWM 周期获得具有变化幅值和方向的任何电压矢量。空间矢量调制方法的目标是在每个 PWM 周期生成与参考电压矢量相符的开关序列,以实现连续旋转的空间矢量。


2. SVPWM 的算法实现

2.1 电压矢量组合方案

通过对开关区间内的基本空间矢量(方向)和零矢量(幅值)作用时间进行调节,可以近似得到空间矢量六边形内任意位置、任意幅值的电压矢量。

用零矢量 V 0 V_0 V0 和最近的两个相邻的非零矢量 V k V_k Vk V k + 1 V_{k+1} Vk+1 合成参考矢量,零矢量的作用时间 T 0 T_0 T0 和非零矢量 V k V_k Vk V k + 1 V_{k+1} Vk+1 的作用时间 T k T_k Tk T k + 1 T_{k+1} Tk+1 分别为:

{ T 0 = ( T k + T k + 1 ) T s / 2 [ T k T k + 1 ] = 3 2 T s U d [ s i n ( k π / 3 ) − c o s ( k π / 3 ) − s i n ( ( k − 1 ) π / 3 ) c o s ( ( k − 1 ) π / 3 ) ] [ u r α u r β ] \begin{cases} \begin{aligned} T_0 &= (T_k + T_{k+1}) T_s/2\\ \begin{bmatrix} T_k \\ T_{k+1} \end{bmatrix} &= \frac{\sqrt{3}}{2} \frac{T_s}{U_d} \begin{bmatrix} sin(k\pi/3)& -cos(k\pi/3)\\ -sin((k-1)\pi/3)&cos((k-1)\pi/3)\\ \end{bmatrix} \begin{bmatrix}u_{r\alpha}\\u_{r\beta}\end{bmatrix} \end{aligned} \end{cases} T0[TkTk+1]=(Tk+Tk+1)Ts/2=23 UdTs[sin(/3)sin((k1)π/3)cos(/3)cos((k1)π/3)][urαurβ]

电压矢量的组合方式很多,最常用的是如下表所示的7段式组合方案。

表2-2:SVPWM输出电压矢量的7段式组合方案
在这里插入图片描述


2.2 SVPWM 的实现步骤

SVPWM 基于参考电压矢量进行操作,在每个 PWM 周期为逆变器生成适当的导通信号,目标是实现连续旋转的空间矢量。

SVPWM 主要包括如下步骤:
(1)判断参考空间电压矢量所在的扇区;
(2)根据 7 段式组合的信号时序,计算各矢量的作用时间;
(3)确定扇区矢量切换的时间点。
(4)使用三角载波型号与各个扇区矢量切换点进行比较,产生所需的 PWM 开关信号。

(1)判断扇区

要对参考电压 U r e f U_ref Uref 进行控制,首先要确定参考电压所处的扇区。
U r e f U_ref Uref 在α-β直角坐标系中的分量分别为 u α u_α uα u β u_β uβ,定义变量 U r e f 1 U_{ref1} Uref1 U r e f 2 U_{ref2} Uref2 U r e f 3 U_{ref3} Uref3

{ U r e f 1 = u β U r e f 2 = 3 2 u α − 1 2 u β U r e f 3 = − 3 2 u α − 1 2 u β \begin{cases} \begin{aligned} U_{ref1} &= u_{\beta}\\ U_{ref2} &= \frac{\sqrt{3}}{2} u_{\alpha} - \frac{1}{2} u_{\beta}\\ U_{ref3} &= -\frac{\sqrt{3}}{2} u_{\alpha} - \frac{1}{2} u_{\beta} \end{aligned} \end{cases} Uref1Uref2Uref3=uβ=23 uα21uβ=23 uα21uβ

然后判断:
(1) 若U1>0 则 A=1,否则A=0;
(2) 若U2>0 则 B=1,否则B=0;
(3) 若U3>0 则 C=1,否则C=0。

N = 4 C + 2 B + A N=4C + 2B + A N=4C+2B+A,则可以得到 N 与扇区的关系,得到参考电压 U r e f U_ref Uref 所在的扇区为:

N315462
扇区IIIIIIIVVVI

(2)计算矢量作用时间

在这里插入图片描述

(3)计算矢量切换时间点

U r e f U_{ref} Uref 所在扇区和对应有效电压矢量的作用时间确定后,再根据 PWM 调制原理,计算每一相对应比较器的值:

{ t a o n = ( T s − T x − T y ) / 4 t b o n = t a o n + T x / 2 t c o n = t b o n + T y / 2 \begin{cases} \begin{aligned} t_{aon} &= (T_s - T_x - T_y)/4\\ t_{bon} &= t_{aon} + T_x/2\\ t_{con} &= t_{bon} +T_y/2 \end{aligned} \end{cases} taontbontcon=(TsTxTy)/4=taon+Tx/2=tbon+Ty/2

式中 t a o n t_{aon} taon t b o n t_{bon} tbon t c o n t_{con} tcon 分别是相应的比较器的值。

不同扇区比较器的值分配如下:

N123456
Ta t b o n t_{bon} tbon t a o n t_{aon} taon t a o n t_{aon} taon t c o n t_{con} tcon t c o n t_{con} tcon t b o n t_{bon} tbon
Tb t a o n t_{aon} taon t c o n t_{con} tcon t b o n t_{bon} tbon t b o n t_{bon} tbon t a o n t_{aon} taon t c o n t_{con} tcon
Tc t c o n t_{con} tcon t b o n t_{bon} tbon t c o n t_{con} tcon t a o n t_{aon} taon t b o n t_{bon} tbon t a o n t_{aon} taon

3. 基于 Simulink 的 SVPWM 仿真模型

3.1 SVPWM 的仿真模型

基于以上分析,基于 Matlab/Simulink 建立 SVPWM 的仿真模型。

参数设置为:
(2)输入角速度为100π,幅值为200,相位互差90度的正弦波: A = 200 A = 200 A=200 f = 50 f=50 f=50 u α = A c o s ( 2 π f t ) u_{\alpha} = A cos(2\pi ft) uα=Acos(2πft) u β = A s i n ( 2 π f t ) u_{\beta} = A sin(2\pi ft) uβ=Asin(2πft)
(2)PWM 开关频率 5kHz,即开关周期 T p w m = 0.0002 s T_{pwm}=0.0002s Tpwm=0.0002s
(3) U d c = 700 V U_{dc} = 700V Udc=700V

建立SVPWM 仿真模型如下:

在这里插入图片描述

各模块说明如下:
(1)判断扇区:根据输入的 u α u_{\alpha} uα u β u_{\beta} uβ 判断电压矢量所在扇区。
在这里插入图片描述

switch 模块设置为:u2>=0(如果满足条件则 u1 通过,如果不满足条件则 u3 通过)。

(2)计算中间变量 X、Y、Z,用于计算扇区矢量作用时间

输入 u α u_{\alpha} uα u β u_{\beta} uβ 、母线电压 U d c U_{dc} Udc、载波周期 T s T_s Ts,计算中间变量 X、Y、Z。

在这里插入图片描述

(3)根据 N 值和X、Y、Z,计算扇区中矢量的作用时间

输入X/Y/Z、N、载波周期 T s T_s Ts,计算扇区中矢量作用时间。

在这里插入图片描述

Mutiport Switch 模块根据输入的 N 值选择哪个端口通过。

(4)扇区矢量切换点的确定

计算 3个PWM通道输出电平的改变点。定时器配置为中央对齐模式。
在每个载波周期中改变输出通道的比较值,Tcm1、Tcm2、Tcm3分别就是3个通道的比较值。
在这里插入图片描述

(5)输出逆变桥的控制信号

用三角波模拟定时器中央对齐模式
在这里插入图片描述

(6)使用3个通道的PWM控制逆变桥,计算相电压 U a U_a Ua U b U_b Ub U c U_c Uc

在这里插入图片描述


3.2 SVPWM 的仿真结果

运行 SVPWM 仿真模型,仿真结果如下图所示。

图1 是切换时间 T c m 1 T_cm1 Tcm1 T c m 2 T_cm2 Tcm2 T c m 3 T_cm3 Tcm3 的波形,波形为马鞍形,称为 马鞍波。生成的马鞍波能够最大程度地利用直流总线电压。将生成的导通信号应用于三相逆变器的开关,可以以所需的速度或转矩驱动电机。

图2 是相电压 U a U_a Ua U b U_b Ub U c U_c Uc 的波形。
在这里插入图片描述


4. 基于 s 函数的 SVPWM 仿真模型。

基于 Simulink,也可以使用 s 函数建立 SVPWM 仿真模型,更加简单高效。

在这里插入图片描述

在这里插入图片描述

function [Tcmp1,Tcmp2,Tcmp3,sector] = fcn(Valpha,Vbeta,Udc,Tpwm)
%#codegen

sector = 0;
Tcmp1 = 0;
Tcmp2 = 0;
Tcmp3 = 0;

%========Parameters statement================

    Vref1 = Vbeta;							                   
    Vref2 = (sqrt(3)*Valpha - Vbeta)/2; 				    
    Vref3 = (-sqrt(3)*Valpha - Vbeta)/2;					
   
 %========Sector calculation=================

  if (Vref1>0)
	   sector = 1;
  end
  if (Vref2>0)
	   sector = sector+2;
  end
  if (Vref3>0)
       sector = sector+4;
  end

%======== X Y Z calculation===================

X = sqrt(3)*Vbeta*Tpwm/Udc;
Y = Tpwm/Udc*(3/2*Valpha+sqrt(3)/2*Vbeta);
Z = Tpwm/Udc*(-3/2*Valpha+sqrt(3)/2*Vbeta);	         

%==========Duty ratio calculation================
switch (sector)   
    case 1
        T1 = Z; T2 = Y; 
	case 2
        T1 = Y; T2 = -X; 
	case 3
        T1 = -Z; T2 = X; 
	case 4
        T1 = -X; T2 = Z;
	case 5
        T1 = X; T2 = -Y;
    otherwise
        T1 = -Y; T2 = -Z;
end

if T1+T2 > Tpwm
    T1 = T1/(T1+T2);
    T2 = T2/(T1+T2);
else
    T1 = T1;
    T2 = T2;
end
ta = (Tpwm-(T1+T2))/4.0;
tb = ta+T1/2;
tc = tb+T2/2;

%==========Duty ratio calculation================
switch (sector)
    case 1 
        Tcmp1=tb;
        Tcmp2=ta;
        Tcmp3=tc; 
        
    case 2 
        Tcmp1=ta;
        Tcmp2=tc;
        Tcmp3=tb; 
       
    case 3 
        Tcmp1=ta;
        Tcmp2=tb;
        Tcmp3=tc; 
        
    case 4 
        Tcmp1=tc;
        Tcmp2=tb;
        Tcmp3=ta;
        
    case 5 
        Tcmp1=tc;
        Tcmp2=ta;
        Tcmp3=tb;
        
   case 6
       Tcmp1=tb;
       Tcmp2=tc;
       Tcmp3=ta;
end
end

参考文献:袁雷等,现代永磁同步电机控制原理及MATLAB仿真,北京航空航天大学出版社,2016

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

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

相关文章

软考高级:系统安全 -区块链特点:去中心化、开放性、自治性、安全性、匿名性

讲解 生活化例子 想象一下,你和朋友们玩一个共享账本的游戏。每个人都可以在账本上记账,没人可以单独改动账本,大家都可以随时查看账本内容,也不用再信任某个单独的人来管理账本。这就类似于区块链的工作原理。 概念讲解 去中…

软考高级:敏捷开发 SCRUM

生活化例子 想象你和朋友们要组织一场周末聚会。你们首先会决定聚会的主题、场地、时间等大方向,然后每个人分配不同的任务,比如有人负责买零食,有人负责准备音乐,有人负责布置场地。你们每天都简单沟通下进展,看看大…

【C++笔试强训】如何成为算法糕手Day1

学习编程就得循环渐进,扎实基础,勿在浮沙筑高台 循环渐进Forward-CSDN博客 笔试强训第一天 目录 循环渐进Forward-CSDN博客 第一题:两个数组的交集 暴力循环法: 哈希法 : 数组下标法: 第二题&#x…

“滑动窗口”思想在算法里面的应用

目录 一 无重复字符串的最长子串 链接:无重复字符的最长子串 1. 题目分析 解法一:暴力求解 借助2个“指针”:left , right 指针,依次固定left 指针,让right指针进行遍历,每遇到一个最大的 …

24/9/19 算法笔记 kaggle BankChurn数据分类

题目是要预测银行里什么样的客户会流失,流失的概率是多少 我这边先展示一下我写的二分类的算法 import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn.model_selection import train_test_split from sklearn.linear_model impo…

亚马逊IP关联揭秘:发生ip关联如何处理

在亚马逊这一全球领先的电商平台上,IP关联是一个不可忽视的问题,尤其是对于多账号运营的卖家而言。本文将深入解析亚马逊IP关联的含义、影响以及应对策略,帮助卖家更好地理解和应对这一问题。 什么是亚马逊IP关联? 亚马逊IP关联…

awk从0学习

1. 入门 1.1 什么是 awk? ①Awk是一种文本处理工具,适用于处理结构化数据,例如表格数据。 ②它可以读取一个或多个文本文件,并执行模式扫描和处理等指定的操作。 ③基本逻辑涉及数据的提取,排序和计算。 ④支持复…

Leetcode 2464. 有效分割中的最少子数组数目

1.题目基本信息 1.1.题目描述 给定一个整数数组 nums。 如果要将整数数组 nums 拆分为 子数组 后是 有效的,则必须满足: 每个子数组的第一个和最后一个元素的最大公约数 大于 1,且 nums 的每个元素只属于一个子数组。 返回 nums 的 有效 子数组拆分中…

Lumos学习王佩丰Excel第十五讲:条件格式与公式

一、使用简单的条件格式 1、为特定范围的数值标记特殊颜色 条件格式-需选择设定范围(大于/小于/介于/......): 数值会动态根据条件判断更新颜色: 模糊匹配+条件格式:选择包含部分文本的特殊值 2、查找重复…

linux-----进程控制

提示:以下是本篇文章正文内容,下面案例可供参考 一、fork()函数 返回值:子进程返回0,父进程返回子进程的id,出错就返回-1. fork创建子进程,如果父子一方发生写入时,就会发生写实拷贝,操作系统就…

专业学习|动态规划(概念、模型特征、解题步骤及例题)

一、引言 (一)从斐波那契数列引入自底向上算法 (1)知识讲解 (2)matlap实现递归 (3)带有备忘录的遗传算法 (4)matlap实现带有备忘录的递归算法 “&#xff1…

0基础跟德姆(dom)一起学AI 数据处理和统计分析06-数据组合和缺失值处理

* 数据组合 * concat * merge * join(了解) * 缺失值处理 * apply方法详解 --- 1.DataFrame数据组合-concat连接 * 概述 * 连接是指把某行或某列追加到数据中, 数据被分成了多份可以使用连接把数据拼接起来 * 把计算的结果追加到现有数据集,也可以使用连…

Redis:常用命令总结

目录 1 . 前置内容 1.1 基本全局命令 KEYS EXISTS DEL EXPIRE TTL TYPE 1.2 数据结构和内部编码 2. String类型 SET GET MGET MSET INCR INCRBY DECR DECRBY INCRBYFLOAT 命令小结​编辑 内部编码 3 . Hash 哈希类型 HSET HGET HEXISTS HDEL HKEYS …

Qemu开发ARM篇-5、buildroot制作根文件系统并在qemu中进行挂载启动

文章目录 1、 buildroot源码获取2、buildroot配置3、buildroot编译4、挂载根文件系统 在上一篇 Qemu开发ARM篇-4、kernel交叉编译运行演示中,我们编译了kernel,并在qemu上进行了运行,但到最后,在挂载根文件系统时候,挂…

嵌入式单片机STM32开发板详细制作过程--01

大家好,今天主要给大家分享一下,单片机开发板的制作过程,原理图的制作与PCB设计,以及电子元器件采购与焊接。 第一:单片机开发板成品展示 板子正面都有各个芯片的丝印与标号,方便焊接元器件的时候,可以参考。(焊接完成之后,成品图如下) 第二:开发板原理图制作 在制…

OpenCV系列教程三:形态学、图像轮廓、直方图

文章目录 一、形态学1.1 阈值处理1.1.1 全局阈值处理1.1.2 全局阈值处理之Otsus 阈值法1.1.3 自适应阈值处理 1.2 腐蚀与膨胀1.2.1 腐蚀操作1.2.2 创建形态学卷积核1.2.3 膨胀操作 1.3 开运算和闭运算1.4 形态学梯度1.5 顶帽操作(tophat)1.6 黑帽操作(Black Hat&…

基于JAVA+SpringBoot+Vue的社区智慧养老监护管理平台

基于JAVASpringBootVue的社区智慧养老监护管理平台 前言 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末附源码下载链接&#x1…

Arthas heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)

文章目录 二、命令列表2.1 jvm相关命令### 2.1.8 heapdump(dump java heap, 类似 jmap 命令的 heap dump 功能)举例1:假设你想生成一个只包含活动对象的堆转储文件,并将其保存为 /tmp/heapdump.hprof举例2:如果你想要进…

社区团购的创新与变革——融合开源链动 2+1 模式、AI 智能名片及 S2B2C 商城小程序

摘要:本文从信息流、资金流、物流角度深入分析社区团购的特点,探讨其如何避免传统线下中心零售的高展示成本与传统电商的高交付成本。同时,引入开源链动 21 模式、AI 智能名片及 S2B2C 商城小程序等创新元素,阐述它们为社区团购带…

MySQL---创建数据库(基于SQLyog)

目录 0.前言 1.基本认识 1.1编码集 1.2检验规则 2.库的创建和销毁 2.1指令介绍 2.2你可能会出现的问题 3.查看数据库属性 4.创建指定数据库 5.创建表操作 0.前言 之前写过一篇这个关于表的创建和销毁的操作,但是当时是第一次学习,肯定有些地方…