菜菜博士

博士在网络的家

中国人要反对洋奴哲学

作者:张春桥。 发表于 1976年《红旗》第四期. 在社会主义革命和建设中,是坚持独立自主、自力更生,还是推行洋奴哲学、爬行主义,这是马克思主义和修正主义两条路线的原则分歧,是社会主义历史阶段两个阶级、两条道路斗争的一个重要方面。 去年夏季前后,党内那个不肯改悔的走资派在“一切为了现代化”的幌子下,又大肆贩卖洋奴哲学。他公开主张把发展生产、发展科学技术的希望寄托在外国,叫嚷“要拿出多...

了解反激,驯服反激

序 反激,这恐怕是当今世上使用最广泛的开关电源拓扑了。 学习电力电子技术,就从反激开始。 何谓反激 反激反激,顾名思义,是反过来激发。啥叫反过来呢?意思就是,开关管关闭的时候,变压器才开始干活。开关管关闭了,变压器主绕组上都没电流了,变压器才开始干活。 这没电流了才想起来该干活了,所以是反着的。故得名反激。有反必有正,故而必有一个正激来对应。 为何要反过来干活 其实开关电源最先诞...

记录使用 GP8891CAS 时踩的一个天坑

序 任何一个家电,必须得有一个低压供电电源。 要获得一个低压供电,通常的做法是接一个开关电源。 但是,外置的电源徒增成本。而且显得很不专业。最好的办法就是在 PCB 上集成一个供电电源。 想起来前年我刚刚入门硬件设计。做了一个 低压变频器。 到去年年初的时候,开始尝试制作 220V 市电版的变频器。事情见 这片文章。 那时候,我是不懂 ACDC 变换的。因此电路板上低压供电,是由电...

设计一个 3V - 100V 超宽压输入,15V 输出的电源

DCDC 的困境 在设计一个电机控制器的时候,遇到了一个多电压的问题。 首先是单片机,需要 3.3V 供电。然后是传感器,需要 5V 供电,最后是栅极驱动,需要 15V (其实是 10-18V 都行 )供电。 如果使用降压 DCDC 的方式获得这些电压,意味着这个电机控制器,最低需要 15V 供电。 这样,就不能适应广泛存在的电压标准:12V。因此,使用降压的方式获得这些电压,通常意...

直流 UPS 功能的电源

恒流恒压模式和电池的充电原理 开关电源分恒压模式,和恒流恒压模式两种。区别就在于,负载消耗的电流超过了电源的供电能力时电源的应对策略。 恒压电源会立即切断输出进入保护模式。可能可以经过一段时间的等待后重新打开输出。即 “打嗝模式”。而恒流恒压模式下,电源会减小输出电压,直到负载消耗的电流小于设定值。适用于负载电流会随着电压的降低而降低的情况使用。例如,充电。 电池是一个电压源,它自身的内...

变频器原理和设计指导

从 Buck 降压电路说起 上图为一个基本的 Buck 降压电路。 Q1 和 Q2 是互补的两个 MOS/IGBT 管。 所谓互补,是两个同时只有一个会导通。要么是 Q1 打开,要么是 Q2 打开。 Q1 关闭的时候, Q2 必须打开。Q1 打开的时候,Q2 必须关闭。 Q1 和 Q2 可以使用一个 PWM 信号控制。 那么 pwm 信号的占空比,就决定了 Q1 打开的时间占比...

防启动浪涌电流设计

启动浪涌 在许多用电设备里,都要配置一个巨大的储能稳压电容。 这个大电容会在设备启动的瞬间,吸收巨大的充电电流。形成浪涌。 为了避免浪涌电流,需要限制充电电流。一个典型的做法是使用 NTC 电阻。 NTC 电阻初始电阻较高。工作一段时间后电阻值下降。这样就以较低的成本解决了开机浪涌电流。 但是 NTC 毕竟不是导线,高温下电阻仍然有一些。对效率不利。 而且关机后立马插电开机,则...

DMA 大幅降低 SVPWM/SPWM 调制的 CPU 占用

S(V)PWM 和 DMA 在变频器里,FOC 通常使用 定时器 输出 PWM 实现。 通常来说,需要在每个 PWM 的益出中断里,重新计算三路输出的 PWM 占空比。 如果使用非常高的pwm频率,那么 pwm 的中断将非常频繁。这对于 cpu 时钟并不高的单片机来说,会极大的降低 cpu 处理其他业务逻辑的能力。 而这个问题,在使用 “同步调制” 的方式下,有一个很好解决的办法。 ...

简谐运动 和 CNC 运动插补

数控机床的基础知识 机床每个轴的伺服电机,期望输入的是步进信号:一个脉冲信号和一个方向信号。 因此,机床的运动控制器,需要将程序中的移动指令,转换为多个轴的步进信号。 例如一个分辨率为 0.001mm 的机床,控制器每发送一个脉冲信号,电机就旋转一个小角度,通过传动系统后,体现为主轴移动了 0.001mm。 对多轴联动机床来说,程序中的移动指令,要被控制器分解为多个轴的移动。然后控制...

极坐标在三相电力系统中的计算优势

在三相电力系统里,我们有三个相位差 120° 的火线。于是,也就有了三个相位差120°的电压和电流矢量。 三相平衡的前提下。对这个三相的电压电流矢量进行计算的时候,为了方便计算,会用到 park 和 clark 变换。目的是转成2个互相垂直的矢量。需要考虑的矢量个数,就从3个降到了2个。 但是,如果引入 极坐标系统,那么三相平衡的前提下,这3个电压矢量,就可以在极坐标下,合成为一个电压矢...

三相220v供电可行性再论

经过深思熟虑,我提出了一种新的居民用电供电模式: 即三相220伏4线制供电。以适应未来更大的入户功率需求。 特点为: - 入户线路为3根火线,一条地线,没有零线。 - 火线和火线之间的电压为220v。火线对地电压 130v。 - 入户电表设计三相不平衡保护开关 - 使用任意2条火线来兼容老的单相220v设备,继续提供 220v 的 2孔和3孔插座。 - 三相设备使用4脚插座。 不同供...

LLC 的调频控制

LLC 调压的的物理原理 LLC 之所以叫 LLC , 是因为电路等效为 两个 L 和一个 C。但那是分析用的,实际上电路就一个 L 和一个 C。 当然故意接2个 L 也可以的。只不过会增加成本。 LLC 谐振的原理呢,其实就是LC振荡器。但是不是自激振荡,而是他激。根据激发他的外部输入电路的不同,分为全桥LLC和半桥LLC。 LLC 为何通过调节频率,能调节输出电压呢? 看电路: ...

动能回收的实现方式

电动汽车进行动能回收的原理就是电动机可以作为发电机使用。 但是具体是怎么实习的呢? 方法1,当发电机使用 发电机发的电,如何转换成直流电? 答案是 整流,然后经过 Boost 升压。为何要升压呢?因为感应电动势小于电池电压。 也就是说动能回收的时候,电机输出电压要小于电池电压。因此整流后,还要经过一个升压,然后就能冲入电池了。 调节升压电路的输出电压,就可以调节充电电流,也就是调节...

电机控制的几个思索

关于能量转化上的思考 电动机,供电即转。转即发电。 无负载的情况下,电机无功率输出,(理论上)无功率消耗。 通电即转,和无功率消耗的矛盾是如何化解的呢?那就是“反电动势”。 在无负载的情况下,电机的转速会达到反电动势等于输入电压。 此时输入电压完全和反电动势抵消。于是绕组实际上无电流通过。因此不产生扭矩。故 电压*0电流 = 0 功率。 只要有负载,转速就会低于空载转速,于是反电动...

福特和福建的弹射技术对比

电磁弹射,被加速的舰载机总重,30吨,即3万公斤;加速长度100米,加速时间2.2秒,舰载机末端速度,85米每秒;总耗电能38度;瞬间功率6万千瓦。 福特航母在上实际90年代立项。 上世纪90年代,哪家公司能拿出功率达到 6万千瓦的变频器和储能40度电的超级电容呢? 这就是有时候,先驱变成先烈的问题。 因为当年没有大功率的逆变器技术, 因为超大功率的逆变器是随着特高压直流输电才研发出来...

资本主义绝户计

全世界的文明,都陷入了一个困境:经济越是发达,生育率越低。 很多人说,这是因为经济发达了,妇女受教育程度高了。女性不愿意生孩子了。 这就是典型的胡说八道。但是这种错误认知居然还是当下的主流认知。 为什么说这个认知是错误的呢?女性接受教育就会自我阉割放弃生育权? 这个错误的离谱之处在于,否认了男性在抚养后代上的承担。仿佛孩子只要生下来就可以自动长大。 生孩子只要幸苦10个月,养孩子则要...

调用约定和上下文切换

编写协程库的时候,我常常在想,上下文切换的速度,受调用约定的影响非常大。 因为用户协程的上下文切换,本质上是调用一个 函数。而这个函数需要 “切换” 非易失性寄存器。 因此,在给定的调用约定下,非易失性寄存器越多,则上下文切换时需要保留和恢复的寄存器数量就越多。 而由内核进行上下文切换(也就是线程),所有寄存器都得保留。开销是最大的。何况还有执行特权级切换的巨大开销。 在知乎...

在Linux上交叉编译windows版 Qt 和 qt应用

准备工具链 一个半月前,我研究了一下 使用本机 clang 进行交叉编译。那时候,是在本机 x86 上交叉编译 arm 和 mips 架构的软件。目标系统还是 linux 的。 交叉编译,需要使用交叉工具链。而使用本机clang进行交叉编译,只是将交叉工具链里的“编译器”换成了本机本就安装的 clang, 而 “头文件和库文件” 则是使用 archlinux 和 mips debian ...

协程切换为什么需要 一个 hook_function 参数.

前言 刚刚,我将 zcontext 的 API 进行了以下修正。 从 void* zcontext_swap(zcontext_t* from, zcontext_t* to, void* argument); 改成了 typedef void* (*zcontext_swap_hook_function_t)(void*); void* zcontext_swap(zcont...

从0开始写上下文切换

有栈协程的核心是执行上下文。执行上下文的核心是栈。 因此,切换栈就等于切换了上下文。 栈在协程切换上的核心地位 栈,存储了一个协程/线程 的“调用链”,以及依附于这条链上的“变量”。 没有栈,ret 指令将无所适从。 虽说栈是核心,但是栈本质是堆叠存储“历史 寄存器状态”。而当前没有入栈的寄存器状态,才是真正的当前上下文。 因此,很多古代协程库的做法,是栈协程“句柄” 上,开辟一...