菜菜博士

博士在网络的家

新型单相电机调速器

传统立扇调速方案 传统立扇方案主要采用抽头调速方法,通过机械调速开关改变主绕组与辅助绕组接线方式。一般抽头调速的风扇电机是基于满载工况优化设计,在电机高挡位运转时,绕组磁场接近正交的圆形,噪音和效率表现相对较好,而中低挡位时主绕组和副绕组的结构被改变,绕组合成磁场偏向椭圆,电机运行失去对称性,转矩脉动分量增加。并且中低挡位工况下,运行绕组温升更高,电机偏离了原有优化的状态,其输入功率也没有...

TO-252 对比 TO-220

MOSFET,功率MOS,最常见的外形,就是 TO-252 和 TO-220 两种。 上图左边的为 TO-252 封装。右侧为 TO-220 封装。 其实会发现,TO-220 剪掉中间引脚,折弯两边的引脚,也能转变为贴片形式。 在我设计低压变频器的时候,我一直使用的 TO-252 封装的 MOS。无他,低压的大电流MOS还是TO-252更常见。 后来,设计220v电压的高压变频器...

三电平 SVPWM

炸机了。 制作低压变频器的时候,从未出现过炸机。但是,在高压变频器上,出现了。MOS管直接炸开。pcb铜箔炸飞。 究其原因,还是因为mos关闭时候产生的尖峰电压。 在研究解决方案的时候,碰到了三电平拓扑。 三电平拓扑输出三相电需使用12个 MOS 管。 那么问题来了,12个MOS管,如何控制呢? 其实,不用修改 svpwm 算法。 svpwm 算法在最终,会输出 A B C 三相...

被销售绑架

在芯片销售行业,有一个怪现象。买芯片的人是孙子。 在线的电子元件商城是行业老鼠,属于行业灰色地带(只是被业内人士定义为灰色。实际上100%合理合法的白色产业)。 不仅仅买芯片的时候是孙子。在研发 pcb 的时候,更是孙子。需要找芯片厂求来芯片手册。没有手册,就算买到芯片了也用不起来。 芯片的价格是卖方市场。能打几折买到芯片,就决定了最终产品的竞争力。因此为了赚钱,买方要无下限跪舔卖方的...

FlyBuck的限制

在 这篇 文章里,我夸奖了 flybuck 拓扑结构。 不过,在实际使用的时候,发现 flybuck 并没有想象中那么美好。 第一点,flybuck 并不是任何 buck 芯片都能工作。而是只有能工作在强制 CCM 模式的 同步整流buck 芯片才能工作。 因此只有 Ti 的寥寥数个芯片,被打上了 FlyBuck 标志的才能用在 flybuck 上。而因为 FlyBuck 是 Ti 的商...

LLC 真的是天才发明

开关电源 传统上,交流电通过一个巨大的变压器进行变压。因为交流电通过磁耦合的方式传递能量。传递能量的频率为交流电的频率。每次传递的能量取决于变压器铁芯的磁通量。磁通量从最大到最小,最小到最大, 经历一次能量传递。 变压器要增大功率,要么增加磁通,要么提高频率。显然工作在50hz交流电下的变压器,只能选择增大磁通的方式增加功率。由于材料能承受的磁通量密度是有上限的。过大的磁通密度会饱和。所...

变频器制作-第12部分 电源,还是电源

说到供电 一个变频器,需要4组电压供电,分别是 DC 300V, DC 12V, DC 5V, 隔离 5V. 300v 是高压, 12v 和 5v 乃低压。 只不过, 12v 和 5v 和 300v 的高压,负极是连到一起的。因此,这个负极,是不安全的负极。这个负极,是整流桥的负极。这个负极会有一个对地的脉动电压。 其中, 300V DC 由一个整流桥 + 一个 LC 滤波器获得。 ...

变频器制作-第11部分 pwm模式用对了吗?

话说高级定时器 不管是 AT32 还是 CH32 还是 EG32 还是 GD32 还是 RP32. 各种 32 单片机,都是使用的 防STM32 的外设。 因此,他们都会有一种叫“高级定时器”的设备,用来产生多路互补PWM波。 在高级定时器的设置里,能产生的波形是以下机制的排列组合 计数器模式 向上计数溢出置0,向下计数到0重置,向上然后向下计数。后两者称为中央对称...

变频器制作-第十部分 6pwm和死区时间

3pwm vs 6pwm 三相桥需要6个开关管。控制6个开关管需要控制器输出六路pwm信号。 这将占用单片机6个 IO 口。考虑到 pwm 信号控制的开关管中,上下管是交替导通的。也就是所谓的互补。 因此在一些场景下,也可以使用 3pwm 模式控制6个开关管。 3pwm的信号控制3个上管,对应的下管控制信号由一个反相电路生成。 咋一看,似乎节约了3个IO引脚。诞生 3pwm模式有一个重...

220v 逆变器大功告成

起 在 这篇 文章里,我被风扇厂的老板教育了成本控制。 思来想去,我发现还是有必要制作 220v 的变频器以降低对电机的要求。 经过数次炸板改版后,最终在今天制作完成了。听到家里 220v 的电机,而不是自己改绕的电机,也发出了熟悉的 vvvf 音乐,心情还是非常激动的。 制作 首先, 220v 属于强电,而单片机实验 3.3v 属于弱电。强电和弱电需要隔离。 我首先想到的是使用光...

单片机也能支持 co_await 协程啦

序 在 这篇文章 里,我为单片机编写了一个简单的 executor。 然后利用这简单的 executor, 再搭配 Duff’s device 就用上了 stackless coroutine 了。 但是,Duff’s device 也有其缺陷。最明显的就是,在 ASIO_CORO_REENTER(this){ xx } 的函数体里,无法定义变量,也无法使用 switch 指令。 这挺...

准备制作直流UPS

问题 现在很多需要停电维持工作的东西,其实都是直流供电的。比如监控。比如树莓派,比如路由器,比如光猫。 在万能的宝上搜索直流UPS,是能找到一些现成的产品。 但是,统统不是我设想中的那种工作方式。 我设想中的UPS,既不是后备式,也不是在线式。 后备式UPS,在市电正常的情况下,电池处于充电状态。当检测到市电故障,则立即将输出切换到电池。 在线式UPS,电池一直处于边冲边放状态。负...

编译期对象构造优化 .bss 为 .rodata

问题 为了提高性能,我编写了一个查表法算 sin 的函数。为了适配不同 ROM 大小的 mcu, 这个表还有大有小多个版本。最大的表,里面有 1800 项,因为是保存的 0-90度的 sin 指,因此分辨率达到了 0.05度。 而且,为了进一步提高性能,表里存放的,并不是 float, 而是我自己编写的定点数 float_number。 问题就出在这个float_number 上。 ...

让 PlatformIO 支持 EG6832

近来做变频器,也研究了不少mcu。让我的代码移植到了 ESP32, ESP32S3, ESP32C3, RP2040, STM32F405, AT32F415, AT32F421。 这些 mcu 都有一个共同点: platformio 支持。其中 ESP32, ESP32S3, ESP32C3, RP2040, STM32F405 受 platform 官方支持,而 AT32F415, AT...

PCB和芯片

进来做变频器,画了不少 PCB 板子。突然发现画 PCB 和芯片设计,有极大的共同点。 先说走线和分层 现时 PCB 上的元件,主要以表面贴片为主。元件浮于PCB表面。特别是,我为了节约打样成本,使用的都是单面贴片工艺。更像芯片了。元件只集中于pcb的一个表面。然后线路在 pcb 和 pcb 的另一面。 如果把电路板倒过来,让贴片元件朝下当“底面”,那就是 元件为底层,上层为走线层。 ...

三相的恒功率优势

在 这篇 文章里,我曾经说,三相电是恒功率的。 现在我用一张更直观的图演示这个结论。 因为电压*电流=功率。所以图片里是使用的纯电阻负载的功率。 每一相的功率,总是会不断的从 0 到最大,然后从最大到 0. 所以这就是单相电娘胎里带来的劣根性: 每秒钟有100次的功率变化。而且最低是无功率输出。 但是,如果是三相,情况就发生了变化。虽然每相还是会不断的变化输出功率,但是三者的和...

foc速成班

前言 在我开始研究 foc 的时候,所有的书籍都在介绍 park 变换和 clarke 变换。有一种魔力告诉你,没这俩变换,就写不成 foc. 然而事实的真相并不是如此。 foc 要控制什么 首先得了解,在 foc 发明前,电机是如何控制的? foc 发明以前,无刷电机采取的是六步换向法。电机每旋转60度,控制器就要进行一次“电子换向”。控制器输出的,是同一时刻 只有2条线有输出的方...

变频器制作-第九部分之ESP32C3 也能输出svpwm

前言 先看以下乐馨官方的 ESP32S3 和 ESP32C3 的对比 很明显,ESP32C3 缺乏 MCPWM 设备。 所谓 MCPWM, 就是专门为产生svpwm设计的电路。他能产生6路互补的PWM信号,并且实现中央对齐。然后还能实现在PWM信号的特定位置产生同步事件。app据此可以在这个同步事件上实现电流采样。 一度我以为 ESP32C3 是无法用于驱动电机的。 直到一次偶然...

标准库 sin 之错

标准库 sin() 在 C 语言里,有一个计算三角函数的函数, sin() , 其定义为 double sin(double) 由于 sin 的结果大概率为无理数,所以使用 浮点数为参数也未尝不可。 但,我要说但是了。 在工业界,不管是土木工程还是机械制造,我们都倾向于使用“角度”而不是”弧度“。 转换一下很困难? 如果所有的程序都在干角度转弧度这件事,那只能说明库错了。库逼迫大...

制作变频器-第八部分

载波比得多少合适 在 上一篇 文章里,我讲解了同步调制和异步调制。 那时候,实现的同步调制是有问题的。主要在同步调制在载波比的计算上出了问题。 原来的想法是,载波比是要能被3整除。同时还得是奇数。 其实这个公式说的是,正弦波半周上的 pwm 波的数量,得是能被3整除。同时还得是奇数。 也就是说,其实整个周期的载波比,是能同时被6整除. 同时还得是2的奇数倍。 于是发现了代码中的错误...