power_wong921

  • 2024-10-25
  • 发表了主题帖: PFC电压和电流数字补偿器

    大家好, 最近在学习PFC的数字实现,阅读了一些文档之后对其中的电压环和电流环的数字补偿不是很理解,处在一种似懂非懂的状态,我从TI和Microchip官方网站求助之后也没有得到比较满意的回复,要么是找不到文档或应用笔记的原作者,要么就是没有回复。 下面的链接是Microchip官网的一篇关于PFC数字实现的应用笔记:PFC数字实现 前面的大部分都是可以理解的,从第13页介绍电流误差补偿器和电压误差补偿器开始就不明白,都是用的PI补偿,但是不明白为什么Kpi和Kpv会变成如下图所示,是不是要先理解PFC的升压传递函数才知道为什么要使用如下的公式? 麻烦精通数字电源的大佬详细解释下,谢谢了!        

  • 2024-09-27
  • 回复了主题帖: CAN多节点同时发送数据的问题

    flyaqiao 发表于 2024-9-26 18:17 很多芯片的重发机制是可以开关的 有没有可能是终端电阻匹配造成的?现在每个模块都并了120欧电阻,而并不是首尾两个节点才有终端电阻。

  • 回复了主题帖: CAN多节点同时发送数据的问题

     

  • 回复了主题帖: CAN多节点同时发送数据的问题

    led2015 发表于 2024-9-26 19:16 单独发送指定ID的模块正常‌:也仅仅是表明各个模块的基本通信功能是正常的,能够正确识别和处理针对自 ... 你好!请问下在多个节点同时回复消息,CAN分析仪偶尔出现接收错误有可能的原因有哪些?但分析仪界面并没有显示任何总线错误,只是右下方接收错误计数会更新。

  • 2024-09-26
  • 回复了主题帖: CAN多节点同时发送数据的问题

    flyaqiao 发表于 2024-9-26 17:21 1.ID是不是有重复 2.如果ID不重复,检查看看自动重发机制有没有打开 我看了芯片手册,当出现仲裁丢失时会自动重试发送消息,应该就有重发机制,有没有可能是CAN分析仪的问题,到时我确认下模块有没有发出消息。

  • 回复了主题帖: CAN多节点同时发送数据的问题

    flyaqiao 发表于 2024-9-26 17:21 1.ID是不是有重复 2.如果ID不重复,检查看看自动重发机制有没有打开 你好!ID确认没有重复,这个自动重发我要看下那个单片机的技术手册,谢谢!

  • 发表了主题帖: CAN多节点同时发送数据的问题

    大家好! 目前正在做电源中的CAN通信,每个模块使用的单片机是MT006,程序逻辑如下: 1、CAN总线上有6个子模块,使用CAN分析仪连接到CAN总线; 2、CAN分析仪发送指令给模块,指令可以发给其中某个指定模块,子模块根据协议中的ID确认是不是发给自己的,如果是就回应,否则不回应,CAN分析仪也可以发送类似广播的方式要求所有模块都要回应,比如协议中的ID设置为0xFF就表示每个模块都要回复; 现在问题是这样的: 1、单独发给指定ID的模块,发送和接收都正常; 2、如果使用广播包的形式要求每个模块都要回应时,CAN分析仪偶尔出现接收丢包的现象,发送正常,例如:有两个模块挂接在CAN总线,ID分别为1和2,CAN分析仪在发送广播包,大部分时间都能收到两个模块的回应,有时出现模块1无回复或者模块2无回复,但没有出现两个模块都没有回复的现象。 按理说,ID不同,子模块在同时发送数据有CAN仲裁机制,各位能帮忙分析下可能的原因吗?谢谢!

  • 2024-07-22
  • 回复了主题帖: PFC驱动占空比的计算问题

    qwqwqw2088 发表于 2024-7-22 10:52 PFC驱动占空比的计算问题,楼主提供的资料参考设计ac_cur_ref的计算原理应该有说明吧 谢谢!我还是买套硬件来实际测试、观察变量比较好。

  • 2024-07-20
  • 发表了主题帖: PFC驱动占空比的计算问题

    大家好! 最近在学习TI的PFC+LLC的数字实现,使用的芯片型号是:TMS320F280049C,关于这个解决方案的文档介绍如下: 1kW、80 Plus Titanium、GaN CCM 图腾柱无桥 PFC 和半桥 LLC(具有 LFU)参考设计 (Rev. G) Lab4的框图如下: 我在学习一段时间的源代码后有一些问题要请教一下大家:   在实验4中(文档的第30页)那个电压环生成 ac_cur_ref 的原理我不是很清楚,看框图是PFC的输出电压(程序中说的总线电压,标称值385V)在经过两个陷波滤波器后再进行PI调节(一个串行PI控制器),然后执行乘以:vBusAvg / vRmsAvg,vBusAvg是总线平均电压,vRmsAvg是AC输入均方根电压,这里的疑问是:如果串行PI控制器调节量接近0时,那 ac_cur_ref也不是接近于0吗?它再和框图中间的SOGI的输出相乘再输出ac_cur_ref_inst,ac_cur_ref_inst的输出不也接近零了吗?ac_cur_ref_inst和AC输入电流检测值ac_cur_sensed又被送入一个并行PI控制器,最终生成PFC驱动的一个占空比。能帮忙解释下ac_cur_ref的计算原理吗?谢谢!  

  • 2024-06-17
  • 回复了主题帖: 热敏电阻分压值计算

    maychang 发表于 2024-6-17 10:57 【下图所示的热敏电阻分压后达到单片机2脚的电压如何计算?】 就是5V电压在R5电阻与OTP1电阻的分压。(5/ ... 谢谢,明白了。

  • 发表了主题帖: 热敏电阻分压值计算

    大家好! 请教下下图所示的热敏电阻分压后达到单片机2脚的电压如何计算? 电容C9在此处的作用是什么? 谢谢了!  

  • 2024-05-07
  • 回复了主题帖: BUCK电路二阶IIR滤波的算法

    Jacktang 发表于 2024-5-7 06:40 在那里找的这个TI的环路补偿器工具,TI 一定有这个工具使用说明 从图看,是可以通过图形用户界面GUI直 ... 谢谢了!

  • 2024-05-06
  • 回复了主题帖: BUCK电路二阶IIR滤波的算法

    @chunyang    @qwqwqw2088    @蓝色天使    

  • 回复了主题帖: BUCK电路二阶IIR滤波的算法

    这个零点和极点的添加是通过软件吗?是不是要计算硬件的相关参数后才能确定如何添加这些零极点呢?那个Kdc是什么?

  • 回复了主题帖: BUCK电路二阶IIR滤波的算法

     

  • 回复了主题帖: BUCK电路二阶IIR滤波的算法

    Jacktang 发表于 2024-5-6 09:27 零点和极点的确切位置需要通过仿真和实验来确定   下图是TI的环路补偿器工具,能麻烦帮忙看下各个值的作用吗?特别是上部,Kdc, 两极点两原点的相关内容,我试着改了零点的位置,最右边的系统会跟着改动,请问下系统在什么条件才是稳定的环路呢?三路颜色的线条要怎么样才是稳定的系统呢?谢谢了!

  • 回复了主题帖: BUCK电路二阶IIR滤波的算法

    Jacktang 发表于 2024-4-30 20:41 算法是这样 宏 CNTL_2P2Z_F_C(v, k) 实现了二阶IIR滤波器的核心算法逻辑: 误差计算:计算参考电压与 ... 你好!另外,想请教下这个宏用到的零点和极点系数一般通过什么样的方式来获取?是要分析电路的输出与输入传递函数吗?零点和极点的位置一般怎样确定?

  • 回复了主题帖: BUCK电路二阶IIR滤波的算法

    qwqwqw2088 发表于 2024-4-30 18:10 算法是通过IIR滤波器实现了对Buck电路输出电压的精确控制 在数字电源管中,IIR滤波器是为了某种形式的环 ... 你好!另外,想请教下这个宏用到的零点和极点系数一般通过什么样的方式来获取?是要分析电路的输出与输入传递函数吗?零点和极点的位置一般怎样确定?

  • 回复了主题帖: BUCK电路二阶IIR滤波的算法

    非常谢谢各位的解答!

  • 2024-04-30
  • 发表了主题帖: BUCK电路二阶IIR滤波的算法

    大家好! 最近在学习数字电源方面的知识,使用的是TI的TMS320F28377S系列控制一个BUCK电路,在示例代码里遇到了一个二阶IIR滤波的算法,大概是根据输出电压来进行环路补偿,最终的产生一个PWM的占空比,对这个二阶IIR算法不理解,特别是那个宏CNTL_2P2Z_F_C,麻烦大家帮忙看下以下代码的思路,谢谢了! /** * Second order control law using an IIR filter structure with programmable output saturation. * This macro uses CNTL_2P2Z_F_C structures to store coefficients & internal values. * The structures should be initialized with the supplied CNTL_2P2Z_F_C_INIT macro. * Within the structure the Max & Min parameters are the output bounds where as the IMin parameter * is used for saturating the lower bound while keeping an internal history. The IMin parameter * should not be lower than -0.9. */ //================================================================================ // Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/ // ALL RIGHTS RESERVED //================================================================================ #ifndef CNTL_2P2Z_F_C_H_ #define CNTL_2P2Z_F_C_H_ #include "DPlib.h" /** * Two-pole two-zero controller structures. */ typedef struct { // Coefficients float Coeff_B2; float Coeff_B1; float Coeff_B0; float Coeff_A2; float Coeff_A1; // Output saturation limits float Max; float IMin; float Min; } CNTL_2P2Z_F_C_Coeffs; typedef struct { // Inputs float Ref; float Fdbk; // Internal values float Errn; float Errn1; float Errn2; // Output values float Out; float Out1; float Out2; float OutPresat; } CNTL_2P2Z_F_C_Vars; /** * Calculates a second order control law with IIR filter and programmable output saturation. * @param CNTL_2P2Z_F_C_Coeffs structure with proper coefficient values. * @param CNTL_2P2Z_F_C_Vars structure with internal & output values. * [url=home.php?mod=space&uid=784970]@return[/url] CNTL_2P2Z_F_C_Vars Out parameter. */ #define CNTL_2P2Z_F_C(v, k) \ /* Calculate error */ \ k.Errn = k.Ref - k.Fdbk; \ k.OutPresat = (v.Coeff_A2 * k.Out2) + (v.Coeff_A1 * k.Out1) + (v.Coeff_B2 * k.Errn2) \ + (v.Coeff_B1 * k.Errn1) + (v.Coeff_B0 * k.Errn); \ \ /* Update error values */ \ k.Errn2 = k.Errn1; \ k.Errn1 = k.Errn; \ \ /* Determine new output */ \ k.Out = k.OutPresat; \ k.Out = (k.Out < v.Max) ? k.Out : v.Max; \ k.Out = (k.Out > v.IMin) ? k.Out : v.IMin; \ \ /* Store outputs */ \ k.Out2 = k.Out1; \ k.Out1 = k.Out; \ /* Saturated output */ \ k.Out = ((k.Out > v.Min) ? k.Out : v.Min); /* * Initial values for CNTL_2P2Z_F_C structures. */ #define CNTL_2P2Z_F_C_VAR_INIT(k) \ /* Initialize variables */ \ k.Ref = 0; \ k.Fdbk = 0; \ k.Errn = 0; \ k.Errn1 = 0; \ k.Errn2 = 0; \ k.Out = 0; \ k.Out1 = 0; \ k.Out2 = 0; \ k.OutPresat = 0; #define CNTL_2P2Z_F_C_COEFF_INIT(v) \ /* Initialize coefficients */ \ v.Coeff_B2 = 0; \ v.Coeff_B1 = 0; \ v.Coeff_B0 = 0; \ v.Coeff_A2 = 0; \ v.Coeff_A1 = 0; \ /* IMin cannot be lower than -0.9 */ \ v.IMin = -0.9; \ v.Max = 1; \ v.Min = (0); #endif /* CNTL_2P2Z_F_C_H_ */  

最近访客

现在还没有访客

< 1/0 >

统计信息

已有--人来访过

  • 芯积分:137
  • 好友:--
  • 主题:16
  • 回复:49

留言

你需要登录后才可以留言 登录 | 注册


现在还没有留言