相位调制
前沿切相调光
前沿调光在1,3象限开启可控硅,瞬时电压太高,会导致某些led集成的EMI滤波电路的电感生成尖峰,可能击穿可控硅
在这种类型的调光器中,实际上会切掉正弦波开始处的部分。这是最广泛使用的调光器类型,因为它非常适合TRIAC。毕竟,三端双向可控硅开关很容易接通,过零时若下拉B极它会自行关闭,因为此时电流会小于最大维持开启电流,有可以栅极关断的(GTO)TRIAC,但价格昂贵
后沿切相调光
实现后沿调光器,开关设备必须使用称为过零检测器的电路在交流波形通过零时导通。在控制设置的预定时间之后,开关设备将关闭,并且波形的其余部分不会被负载使用。 后沿调光器通常使用MOSFET,因为它们几乎不需要控制电流,并且坚固可靠。它们也相对便宜,并且在适合于市电运行的额定电压下容易获得。另一种选择是使用IGBT(绝缘栅双极型晶体管),它结合了MOSFET和双极型晶体管的优点,通常比MOSFET更昂贵。同样,该波形是理想的,并且从图9所示的实际波形中可以明显看出,存在明显的偏差-特别是在满功率情况下。这是由于复杂的电子设备需要一定的电压才能工作,因此某些施加的电压将始终丢失。
大多数后缘调光器与白炽灯一起使用时还有另些有用的功能:
- 该电路设计为提供“软启动”,从而相对缓慢地增加灯的电压
- 对于白炽灯,几乎消除了“热冲击”,即启动时的短暂时间,该时间消耗的灯电流约为正常工作电流的10倍。热冲击是造成大多数早期灯泡故障的原因-实际上,很少有白炽灯在点亮时发生故障。开关打开时几乎总是故障。通过包含软启动功能,可以延长灯泡的使用寿命。
过零检测
良心科普:几种常见的Zero Crossing Detectors and Comparators
*分类
- 隔离型和非隔离型,隔离行实现方法主要是变压器隔离和光耦隔离
- 长脉冲型和短脉冲型,注意,脉冲是否 “短” 或 “长”是相对过零信号输出端是否 “上拉” 或 “下拉” 而言的,
你往下看各种过零检测器输出的波形就知道这句话是什么意思,请擦亮眼睛千万别搞混 - 相位补偿和非相位补偿,听起来很高端,实际就是在火零线之间并联一个150pf-1nf的高压电容将相位前移,c从而解决光耦led需要一定的压降才能开启的过零信号滞后问题
*光耦选型
主要用非线性光耦,分两种:
双向非线性光耦
单向非线性光耦
长脉冲型
基于运放的长脉冲过零检测器
主要采用741运放,LM741运放我手头没有
基于晶体管的长脉冲过零检测器
注意,晶体管导通时将OUT信号下拉,过零时晶体管不导通,OUT被R3上拉,晶体管90%以上的时间都是导通的
基于光耦的长脉冲过零检测器
单向光耦
此类电路简单粗暴,一般都是限流电阻+整流桥+单向光耦,利用光耦led开启时两端的最小压降实现
缺点是光耦中的LED至少有90%的时间通电。由于LED的使用寿命取决于它必须通过的电流量和总的“开启”时间,因此会缩短LED的使用寿命
更多缺点请轻戳:传统光耦过零检测电路的缺点
双向光耦
双向光耦省掉了整流桥,要知道,一个1A/1000V的整流桥都两毛一个了,而双向光耦多集成了一个led也就贵几分钱,就可以少用掉一个元件
短脉冲型
基于光耦的短脉冲过零检测器
优点:
1、微功耗:输出脉冲是窄脉冲,所需能量小,大大延长光耦内的LED使用寿命 2、窄脉冲:巧妙地利用微小电流对并联在三极管EC两极的电容充电储能,输出脉冲时又从该电容取电(短时间大电流)。既保证了输出脉冲时对驱动电流的需求,又使得交流输入电流比较小
下面两个电路原理一样,只不过一个用电阻分压+PNP,一个用稳压二极管+NPN,一个老外的一个国内的
第一种:
DIY - Isolated High Quality Mains Voltage Zero Crossing Detector
第二种:
和前几种电路对比如下(默认光耦三极管的C极上拉VCC,过零信号接光耦三极管的E极,即无过零信号时下拉到GND)
对此电路稍加修改,提高安全系数,手头没有12V齐纳二极管,用三个5.1V的代替
焊接实物:
用arduino oscilloscope示波器测试OK
输出功率线性化
基本概念
正弦函数
形如
其中A,ω,φ,k是常数,且ω≠0
- A表示振幅
- 周期:往复振动一次所需要的时间,T=2π/ω
- 频率:单位时间内往复振动的次数,f=1/T=ω/2π
- 相位:ωx+φ
- 初相:φ (当x=0时的相位 )
弧度
一个完整的圆的弧度是2π,即2π= 360°,弧度与角度的区别仅仅是描述一圈的两种量度
角频率
角频率ω有时也叫做角速率、角速度标量,是对旋转快慢的度量,它是角速度的绝对值
弧度是无量纲的,角频率的量纲为T-1
因为旋转360°的弧度是2π,所以
其中
ω是角频率(单位为弧度每秒)
T是周期(单位为秒)
v是线速度(单位为米每秒)
电角度
正弦交流电的电流或电压的大小和方向随时间按正弦函数变化,分别表示为
i=Imsin(ωt+α)或u= Umsin(ωt+φ)
其中:
i:交流电电流的瞬时值,
Im:交流电电流的峰值,
ω:交流电的角频率
φ:交流电的初相位
ωt+φ:i 对应的电角度(电角度是一个随时间t变化的表达式)
正弦函数的积分
sin(x)
示例,求该函数在[0, π]的定积分:
sin2(x)
图像:
积分公式推导(定积分可不加常数C):
sin2(x)积分x/2-sin2x/4的图像:
由线性化的输出功率求电角度的数据
牛顿-莱布尼兹公式求解
只须要按照上面的x/2-sin2x/4函数在[0, π]区间上的图像开启可控硅即可使输出功率线性化:
因为交流电压是正弦波,所以输出功率与交流电压的平方成正比,即需要求正弦平方的积分:
初相位过零触发点,即φ=0°:
角频率ω是一个常量(是频率的 2π 倍)
由电角度ωt+φ可计算出某一P功率下晶闸管需要开启的时间t
那么前一张图像可看作输出功率随电角度的关系(正半周负半周都一样):
(此法求解此方程太费时,不推荐)
牛顿迭代法求解
老毛子的Python牛顿迭代法代码是根目录的x-sinx.py
然后,老毛子根目录的firmware文件夹,也就是放Attiny的arduino代码的文件夹,有一个conductionAngles.c文件,就是上面python代码计算的结果预览如下:
conductionAngles
数组用PROGMEM
宏储存在ATTiny控制器的EEPROM里,可以减少占用的动态内存
毛子的导通时间取值范围是[0, 10000],即把交流的正/负半周时间10ms改用ns计时,然后,这个conductionAngles
数组有256个元素,相当于把1-100%的线性功率分成256份:
(可以理解成移向调制某一个灯泡,亮度从0到100,均匀分成了256阶灰度)
Excel显示的图像就是把上面的输出功率随电角度的图像的xy对调,再将横轴单位换成了ns(你可以由电角度算得ns,毕竟ω是一个常量),纵轴换成了1-256阶(对应0·100%功率)
晶振调谐
毛子的高阶玩法,esp8266的SDK貌似没有类似的功能。。。
- 本文链接: http://oldgerman.github.io/88b2c11b/
- 版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!