六步换向两两导通和三三导通的区别2

六步换向两两导通和三三导通的区别1

区别:

两两导通三三导通
导通角120度180度
电流状态一相电流断续仅三相电流方向改变
转矩脉动低速小,高速大高速小
反电动势可以检测零点不可以
同速力矩
霍尔与之信号对应不能
传感器可以无感(反电动势)编码器
成本很低

FOC即是三三导通的,svpwm也是六个空间的电压矢量合成。总的来说,在相对成本下,以及传感器的位置检测,控制的方便程度上。仅是六步换向而言,两两导通要优于三三导通。

看了很多天的文献,也遇到了较多的疑问。在寻找答案的路上较为枯燥,大脑消化不了还会引起阵阵困意。时间的堆积,能更全面的了解区别与联系,再加之前面的疑惑也可消除。将全部的点串起来就清晰很多。

之前过零检测没注意到的东西,或者没深刻思考的东西也兀然明白。

  1. 为什么过零检测的文献都为两两导通的六步换向
  2. 为什么三三导通文献中提及无感过零检测时,要提出二三导通的十二扇区换向。
  3. 为什么FOC的无感都为等等的观测器。

1、两两导通的工作原理:
无刷电机一般采用这种方式,理想情况下,每一时刻有两个功率管导通,两相绕组存在电流,第三相悬空失电。每一时刻上桥臂和下桥臂分别仅有一只功率器件导通。
在这里插入图片描述
根据两两导通方式非零电压矢量值,得到两两导通的电压矢量图:
在这里插入图片描述
换向区间:
六步换向的编号,一般是按照三个霍尔元件的值得到换向的区间进行编号。
在这里插入图片描述
在这里插入图片描述
为了与霍尔信号兼容,换向序号还是按照霍尔信号来设定。
霍尔顺序:

方向正方向 负
HALL_ABC通电驱动开关HALL_ABC通电驱动开关
101A+ B- C/T1、T6101C+ B- A/T5、T6
101A+ B- C/T1、T6101C+ B- A/T5、T6
100A+ C- B/T1、T2100A+ B- C/T1、T6
110B+ C- A/T3、T2110A+ C- B/T1、T2
010B+ A- C/T3、T4010B+ C- A/T3、T2
011C+ A- B/T5、T4011B+ A- C/T3、T4
001C+ B- A/T5、T6001C+ A- B/T5、T4

2020年8月


被抛弃的写随笔公众号改写技术文章了,感兴趣的可以关注公众号:王崇卫
在这里插入图片描述

以下是基于OMNeT++的C++代码实现,其中包含了6个节点,一个簇首节点和五个从节点,节点之间通过双向通道进行位置信息的交换。 ``` // Node.ned package mynetwork; import org.omnetpp.ned.DatarateChannel; import org.omnetpp.ned.DatarateChannelDelay; module Node { parameters: int id; double x; double y; double speed; double direction; double updateInterval; double maxDistance; gates: input in[]; output out[]; submodules: self: Node { parameters: id = default(id); x = default(x); y = default(y); speed = default(speed); direction = default(direction); updateInterval = default(updateInterval); maxDistance = default(maxDistance); } channel: DatarateChannel { delay = 10ms; datarate = 100Mbps; } } // ClusterHead.ned package mynetwork; import org.omnetpp.ned.DatarateChannel; import org.omnetpp.ned.DatarateChannelDelay; module ClusterHead { parameters: int id; double x; double y; double speed; double direction; double updateInterval; double maxDistance; gates: input in[]; output out[]; submodules: self: ClusterHead { parameters: id = default(id); x = default(x); y = default(y); speed = default(speed); direction = default(direction); updateInterval = default(updateInterval); maxDistance = default(maxDistance); } channel: DatarateChannel { delay = 10ms; datarate = 100Mbps; } } // Network.ned package mynetwork; import org.omnetpp.ned.DatarateChannel; import org.omnetpp.ned.DatarateChannelDelay; network Network { parameters: int numNodes; double nodeSpeed; double nodeUpdateInterval; double maxDistance; submodules: clusterHead: ClusterHead { id = 0; x = 0; y = 0; speed = nodeSpeed; direction = 0; updateInterval = nodeUpdateInterval; maxDistance = maxDistance; } node[1..numNodes]: Node { @display("p=100,100;i=device/server"); id = index; x = 100 + 200 * uniform(0,1); y = 100 + 200 * uniform(0,1); speed = nodeSpeed; direction = uniform(0,360); updateInterval = nodeUpdateInterval; maxDistance = maxDistance; } connections: for i=1..numNodes { for j=i+1..numNodes { channel Node.out[j] <--> Node.in[i]; channel Node.out[i] <--> Node.in[j]; } } } ``` 在上述代码中,`Node`和`ClusterHead`模块表示从节点和簇首节点,它们具有相同的参数,包括节点ID、位置坐标、移动速度、方向、位置信息更新间隔和最大通信距离。`Network`模块表示整个网络,它包含一个簇首节点和若干个从节点,并通过双向通道连接它们。在`Network`模块中,我们使用双重循环来建立节点之间的双向通道连接。 注意:上述代码仅为参考,实际使用时需要根据具体需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值