北关电工培训学校,北关电工培训班
专注于电工培训、为北关地区电工的求学者提供专业的电工培训课程和充电平台!
主页 > 电工 >

北关电工培训学校,北关电工培训班

  • 课程介绍

  • 参考资料

  • 2020-12-08 23:42
湖南阳光电工培训学校常年面向北关招生!
【推荐】北关快速学电工技术,从湖南阳光电工培训学校开始。北关电工培训学校、北关电工培训班,首选湖南阳光电工培训学校!电话:13807313137,13308461099

【温馨提示】湖南阳光电工培训学校地址:湖南省长沙市雨花区车站南路红花坡路176号。目前没有在北关地区设立分校。热忱欢迎北关的学员来湖南阳光电工培训学校长沙总校区参加学习!

北关电工培训学校,北关电工培训班

详情请进入 湖南阳光电子学校 已关注: 咨询电话:13807313137 微信号:yp941688, yp94168

北关电工培训班,北关电工培训学校

北关电工培训学校

北关电工培训班

北关电工学校

北关电工培训班,北关电工培训学校简介:什么是死区时间?如何计算合理的死区时间?

北关电工培训学校,北关电工培训班

北关电工培训学校,北关电工培训班

北关电工培训学校信息内容:,

STM32中配置死区时间


什么是死区时间? PWM是脉冲宽度调制,在电力电子中, 常用的就是整流和逆变。这就需要用到整流桥和逆变桥。

对三相电来说,就需要三个桥臂。以两电平为例,每个桥臂上有两个电力电子器件,比如IGBT。大致如下图所示;

这两个IGBT不能同时导通,否则就会出现短路的情况,从而对系统造成损害。

那为什么会出现同时导通的情况呢?

因为开关元器件的 严格意义并不是相同的。

所以在驱动开关元器件门极的时候需要增加一段延时,确保另一个开关管完全关断之后再去打开这个开关元器件,通常存在两种情况;

上半桥关断后,延迟一段时间再打开下半桥;

下半桥关断后,延迟一段时间再打开上半桥;

这样就不会同时导通,从而避免功率元件烧毁;死区时间控制在通常的单片机所配备的PWM中都有这样的功能,下面会进一步介绍。

互补PWM的死区时间 相对于PWM来说,死区时间是在PWM输出的这个时间,上下管都不会有输出,当然会使波形输出中断,死区时间一般只占百分之几的周期。但是当PWM波本身占空比小时,空出的部分要比死区还大,所以死区会影响输出的纹波,但应该不是起到决定性作用的。

另外如果死区设置过小,但是仍然出现上下管同时导通,因为导通时间非常非常短,电流没有变得很大,不足以烧毁系统,那此时会导致开关元器件发热严重,所以选择合适的死区时间尤为重要,过大过小都不行。

数据手册的参数 这里看了一下NXP的IRF540的数据手册,栅极开关时间如下所示;

IRF540 然后找到相关的 的相关典型参数;

典型参数

:门极的开通延迟时间

:门极的关断延迟时间

:门极上升时间

:门极下降时间

下面是一个IGBT的数据手册;

IGBT 下图是IGBT的开关属性,同样可以找到 等参数,下面计算的时候会用到;

开关属性 如何计算合理的死区时间? 这里用 表示死区时间,因为门极上升和下降时间通常比延迟时间小很多,所以这里可以不用考虑它们。则死区时间满足;


: 大的关断延迟时间;

: 小的开通延迟时间;

: 大的驱动信号传递延迟时间;

: 小的驱动信号传递延迟时间;

其中 正如上文所提到的可以元器件的数据手册中找到; 一般由驱动器厂家给出;

如果是MCU的IO驱动的话,需要考虑IO的上升时间和下降时间,另外一般会加光耦进行隔离,这里还需要考虑到光耦的开关延时

STM32中配置死区时间 STM32的TIM高级定时器支持互补PWM波形发生,同时它支持插入死区时间和刹车的配置。

直接看参考手册里的寄存器TIMx_BDTR,这是配置刹车和死区时间的寄存器;

TIMx_BDTR 可以看到死区时间DT由**UTG[7:0]**决定,这里还有一个问题是 是什么?在TIMx_CR1的寄存器可以得知, 由TIMx_CR1寄存器的CKD决定;

如果这里配置成00,那么 和内部定时器的频率相同,为8M;

CKD 结合代码做一下计算;系统频率为72M,下面是时基单元的配置;

#definePWM_FREQ((u16)16000)//inHz(N.b.:patterntypeiscenteraligned)
#definePWM_PRSC((u8)0)
#definePWM_PERIOD((u16)(CKTIM/(u32)(2*PWM_FREQ*(PWM_PRSC+1))))
TIM_TimeBaseStructInit(&TIM1_TimeBaseStructure);
/*TimeBaseconfiguration*/
TIM1_TimeBaseStructure.TIM_Prescaler=0x0;
TIM1_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_CenterAligned1;
TIM1_TimeBaseStructure.TIM_Period=PWM_PERIOD;
TIM1_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV2;
PWM的频率是16K,注意这里的PWM是中央对齐模式,因此配置的时钟频率为32K;

下面时刹车和死区时间,BDTR寄存器的配置,因此这里的CK_INT为32M

#defineCKTIM((u32)72000000uL)/*Siliconrunningat72MHzResolution:1Hz*/
#defineDEADTIME_NS((u16)500)//innsec;rangeis[0...3500]
#defineDEADTIME(u16)((unsignedlonglong)CKTIM/2\
*(unsignedlonglong)DEADTIME_NS/1000000000uL)

TIM1_BDTRInitStructure.TIM_OSSRState=TIM_OSSRState_Enable;
TIM1_BDTRInitStructure.TIM_OSSIState=TIM_OSSIState_Enable;
TIM1_BDTRInitStructure.TIM_LOCKLevel=TIM_LOCKLevel_1;
TIM1_BDTRInitStructure.TIM_DeadTime=DEADTIME;
TIM1_BDTRInitStructure.TIM_Break=TIM_Break_Disable;
TIM1_BDTRInitStructure.TIM_BreakPolarity=TIM_BreakPolarity_High;
TIM1_BDTRInitStructure.TIM_AutomaticOutput=TIM_AutomaticOutput_Disable;
例:若TDTS = 31ns(32MHZ),可能的死区时间为:0到3970ns,若步长时间为31ns;4000us到8us,若步长时间为62ns;8us到16us,若步长时间为250ns;16us到32us,若步长时间为500ns;

如果需要配置死区时间 1000ns,系统频率72,000,000Hz,那么需要配置寄存器的值为;

直接写成宏定义的形式;

#defineDEADTIME(u16)((unsignedlonglong)CKTIM/2\
*(unsignedlonglong)DEADTIME_NS/1000000000uL)

用示波器验证了一下;具体如下图所示;


—— The End— —
推荐好文 点击蓝色字体即可跳转 STM32如何高效接收串口数据?
当心!别再被大小端的问题坑了 PID微分器与滤波器的爱恨情仇 简易PID算法的快速扫盲 增量式PID到底是什么? 三面大疆惨败,因为不懂PID的积分抗饱和

原创不易,欢迎转发、留言、点赞、分享给你的朋友,感谢您的支持!

.

(编辑:北关电工培训学校)

北关电工培训学校


北关电工培训学校

湖南阳光电子学校教学特色

北关电工培训学校

北关电工培训学校

北关电工培训学校

北关电工培训学校

北关电工培训学校

北关电工培训学校

北关电工培训学校

北关电工培训学校

百度收录查询: 北关电工培训学校

  • 扫码分享
  • 新资讯
  • 热点资讯
电工培训学校 电动车维修学校 摩托车维修学校 手机维修培训学校 水电工培训学校 电脑维修培训学校 电动工具维修培训学校 液晶电视维修培训学校 安防监控培训学校 空调维修培训学校 电焊培训学校 手机维修培训学校 电工培训学校 摩托车维修培训学校 电器维修培训学校 家电维修学校 焊工培训学校 电工培训学校 木工培训学校 瓦工培训学校 摩托车维修学校 电工培训学校 木工培训学校 电器维修学校 电工培训学校