整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

HTML:可能会用到的元素,整理好不用再找

入我的主页,查看更多HTML的分享!

一. 结构标签

1. 页面布局:

<aside>定义页面内容之外的内容</aside>
<footer>定义文档或节的页脚</footer>
<header>定义文档或节的页眉</header>
<main>定义文档的主内容</main>
<nav>定义文档内的导航链接</nav>
<!-- 示例: -->
<header>我是导航栏</header>
<nav>我是导航栏</nav>
<aside>我是侧边栏</aside>
<main>我是内容</main>
<footer>我是页脚</footer>

2. details、summary(折叠)

可配合CSS实现漂亮的折叠面板。

<details>定义用户可查看或隐藏的额外细节</details>
<summary>定义 <details> 元素的可见标题</summary>
<!-- 示例: -->
<details>
  <summary>HTML 5</summary>
  这是展开后看到的内容
</details>

3. 进度条(progress)

可以实现行业占比显示、任务进度、动态进度条等。

<progress>定义任务进度</progress>
<!-- 示例: -->
<style>
progress {
    -webkit-appearance: none;
    width: 180px;
    height: 18px;
    background-color: transparent;
}
progress::-webkit-progress-bar {
    border-radius: 4px;
    background-color: #efefef;
    border: thin solid #efefef;
}
progress::-webkit-progress-value {
    border-top-left-radius: 4px;
    border-bottom-left-radius: 4px;
    background: teal;
}
progress::-moz-progress-bar {
    background: #34538b;
}
progress::-ms-fill {
    background: #34538b;
}
</style>
<progress value="40" max="100"></progress>

4. dialog(弹窗)

  • close() 关闭
  • open() 打开(注意css样式的定位不变)
  • showModal() 打开(注意css样式的定位变为absolute,建议自定义样式)
<dialog>定义对话框或窗口</dialog>
<!-- 
  示例:
  与form配合,这时点击两个按钮都会自动关闭
  不与form配合,可手动调用close()关闭,从而避免自动关闭
-->
<style>
  dialog:not([open]) {
    display: none;
  }
  dialog{}
  dialog::backdrop{}
</style>
<dialog id="dialog">
  <form method="dialog">
    <p>
      要关闭?
    </p>
    <button type="submit" value="false">取消</button>
    <button type="submit" value="true">确定</button>
  </form>
</dialog>
<script>
  let d = document.getElementById("dialog");
  let s = d.showModal();
  d.addEventListener("close", function() {
    console.log(d.returnValue); //returnValue对应button上的value
  });
</script>

5. figcaption(包含的容器)

<figcaption>定义 <figure> 元素的标题</figcaption>
<figure>定义自包含内容,比如图示、图表、照片、代码清单等等</figure>
<!-- 示例: -->
<figure>
  <img src="" alt="" width="200" height="200" />
  <figcaption>我是图片的描述内容</figcaption>
</figure>

6. mark(标记)

<mark>定义重要或强调的内容</mark>
/*示例:*/
<style>
  mark {
    background-color: red;
    padding: 0 4px;
    margin: 0 4px;
    border-radius: 3px;
    font-size: 15px;
    color: #fff;
  }
</style>
<p>今天加班了,下班时记得<mark>打卡</mark></p>

7. meter

IE 浏览器不支持 meter 标签。

<meter>定义已知范围(尺度)内的标量测量</meter>
<!-- 示例: -->
<meter value="0.6"></meter> 
<meter value="6" min="0" low="5" max="10"></meter>

8. article、sectionarticle:定义来自外部(引用)的论坛帖子、报纸文章、博客条目、用户评论等,通常包含标题、页脚等标签,对比<section>更具体。

<article>定义页面内的文章</article>
<section>定义文档中的节</section>
<!-- 示例: -->
<article>
  <h1>Internet Explorer 9</h1>
  <p>Windows Internet Explorer 9(简称 IE9)于 2011 年 3 月 14 日发布.....</p>
</article>
<section>
<h1>WWF</h1>
  <p>
    The World Wide Fund for Nature (WWF) is an international organization working on 
    issues regarding the conservation, research and restoration of the environment, 
    formerly named the World Wildlife Fund. WWF was founded in 1961.
  </p>
</section>

9. 其它

/* 仅Firefox 8.0 以及更高的版本支持 */
<menuitem>定义用户能够从弹出菜单调用的命令/菜单项目</menuitem>

二、文本标签

1. h-(标题)

<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>

2. bdo(方向)

<bdo dir="rtl">定义相反的的文本方向</bdo></p>

3. ruby、rp、rt(注释)

<rp>定义在不支持 ruby 注释的浏览器中显示什么</rp>
<rt>定义关于字符的解释/发音(用于东亚字体)</rt>
<ruby>定义 ruby 注释(用于东亚字体)</ruby>
<!-- 示例: -->
<ruby> 汉 <rp>(</rp><rt>Han</rt><rp>)</rp> 字 <rp>(</rp><rt>zi</rt><rp>)</rp> </ruby>

4. time


<time>定义日期/时间</time>
<!-- 示例: -->
<article>
<time datetime="2011-09-28" pubdate="pubdate"></time>
Hello world. This is an article....
</article>

5. wbr(单词换行时机)

IE不支持。

<wbr>定义可能的折行(line-break)</wbr>

6. abbr、acronym (缩写)

IE 6 或更早版本的 IE 浏览器不支持 <abbr> 标签

<abbr title=""></abbr>
<acronym title=""></acronym>

7. del(删除线)

<del>位于中间的删除线</del>

三、表单

1. fieldset(带标题的边框)

<form>
  <fieldset>
    <legend>健康信息</legend>
    身高:<input type="text" />
    体重:<input type="text" />
  </fieldset>
</form>

2. output(存放输出内容)

Internet Explorer 8 以及更早的版本不支持 <output> 标签。

<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0
   <input type="range" id="a" value="50">100
   +<input type="number" id="b" value="50">
   =<output name="x" for="a b"></output>
</form> 

四、媒体

1. video(视频)

  • controls="controls",控制面板
  • autoplay="autoplay",自动播放
  • width、height 宽高
  • loop="loop" 无限循环,loop="1"只循环播放1次
  • muted="muted" 静音
  • poster="" 预览图(包括下载的文件)
  • preload 预加载,与autoplay冲突(只使用其中一个)
<video src="">
您的浏览器不支持 video 标签。
</video>

2. audio(音频)

  • controls="controls",控制面板
  • autoplay="autoplay",自动播放
  • loop="loop" 无限循环,loop="1"只循环播放1次
  • muted="muted" 静音
  • preload 预加载,与autoplay冲突(只使用其中一个)
<audio src="">
您的浏览器不支持 audio 标签。
</audio>

3. source(源文件)

Internet Explorer 8 以及更早的版本不支持 <source> 标签。

<video controls>
   <source src="" type="video/mp4">
   <source src="" type="video/ogg">
 Your browser does not support the audio element.
</video> 

五、文档

MDN(https://developer.mozilla.org/zh-CN/docs/Web/HTML)

W3Cschool(https://www.w3cschool.cn/html5)

菜鸟教程(https://www.runoob.com/html/html5-intro.html)

还会完善一些常用的元素,比如input;如果有补充内容,请在评论区留言。

解JavaScript高级玩法


//下栽のke:chaoxingit.com/321/

JavaScript高级玩法的详细介绍

JavaScript是一种灵活且强大的脚本语言,广泛应用于网页开发、移动应用开发、桌面应用开发等领域。对于想要深入学习和掌握JavaScript的人来说,了解一些高级玩法是非常有用的。以下是一些JavaScript的高级玩法:

1. 原型链和继承

JavaScript中,每个对象都有一个__proto__属性,这个属性指向它的构造函数的原型。通过__proto__属性,我们可以实现原型链和继承。例如,我们可以创建一个Animal构造函数,然后创建一个Dog构造函数,让Dog继承Animal的方法和属性。

function Animal() {  this.name = 'Animal';}Animal.prototype.makeSound = function() {  console.log('Animal makes sound');};function Dog() {  Animal.call(this); // call Animal constructor to set this object's __proto__ property}Dog.prototype = Object.create(Animal.prototype); // set Dog's prototype to Animal's prototypelet dog = new Dog();dog.makeSound(); // Output: Animal makes sound

2. 闭包

闭包是指在一个函数内定义的函数,它可以访问该函数的局部变量和参数,即使外部函数已经返回。闭包在JavaScript中非常常用,因为它可以帮助我们实现模块化、封装和数据私有化。

function outerFunction() {  let count = 0;  return {    innerFunction: function() {      count++;      console.log(count);    }  };}let obj = outerFunction();obj.innerFunction(); // Output: 1obj.innerFunction(); // Output: 2

3. 异步编程

JavaScript是一门单线程的语言,这意味着它不能同时执行多个任务。为了处理异步任务,JavaScript提供了多种方法,如回调函数、Promise、async/await等。

// Using callback functionfunction doSomethingAsync(callback) {  setTimeout(() => {    callback('done');  }, 1000);}doSomethingAsync((result) => {  console.log(result); // Output: done});// Using PromisedoSomethingAsync()  .then(result => console.log(result)); // Output: done//   Using async/awaitasync function doSomethingAsync()    {  const result = await doSomethingAsync();     console.log(result); // Output: done}

以上只是JavaScript高级玩法的一部分,还有很多其他的技巧和方法等待你去探索和学习。如果你想深入了解这些话题,可以阅读一些相关的书籍和教程,如《JavaScript高级程序设计》、《ES6 标准入门》等。同时,实践是最好的老师,你可以通过编写一些小程序或参与一些开源项目来提高自己的JavaScript水平。

如何利用闭包提升代码性能

闭包是JavaScript中一种强大的语法,它允许函数记住并访问其所在的词法环境。合理使用闭包可以大大提升代码的性能和可读性,但如果不正确使用,也可能导致内存泄漏等问题。以下是一些利用闭包提升代码性能的建议:

  1. 避免滥用闭包:闭包会增加作用域链的长度,过多的闭包可能会导致性能下降。因此,在使用闭包时,我们需要谨慎考虑是否真的需要它,避免无谓的性能损失。
  2. 及时清除闭包:如果闭包不再被使用,我们应该及时将其清除,以免造成内存泄漏。例如,在事件处理函数中,如果函数引用了其他对象,那么在事件处理函数不再被触发时,我们应该解除对这些对象的引用,以避免这些对象长时间存在于内存中。
  3. 使用立即调用函数表达式(IIFE):IIFE是一种特殊的函数表达式,它在声明后立即执行,不会向全局命名空间添加任何变量。使用IIFE可以将闭包的作用域限制在函数内部,从而提高代码的性能和安全性。
  4. 避免循环引用:当闭包持有对其所引用的对象的引用时,就会发生循环引用。这可能会导致内存泄漏并降低性能。为了避免这种情况,我们在使用闭包时需要特别小心,尤其是在处理较长的生命周期的对象时。
  5. 权衡内存与性能:虽然闭包可以提供更好的代码组织和封装,但它也需要占用一定的内存。因此,在使用闭包时,我们需要在内存使用和性能之间找到一个合适的平衡点。

应用领域和未来趋势

"破解JavaScript高级玩法"可能是指深入理解和应用JavaScript语言的高级特性和技术,以解决复杂的问题或开发创新的应用。这种技术通常在以下领域和趋势中得到应用:

应用领域:

  1. Web开发:
  • 利用JavaScript高级特性和技术开发交互性强、功能丰富的Web应用程序,包括单页面应用(SPA)、实时应用(如聊天应用)、数据可视化应用等。
  • 前端框架与库:
    • 开发和维护前端框架和库,例如React、Vue.js、Angular等,以实现高效的组件化开发、虚拟DOM渲染、状态管理等功能。
  • 移动应用开发:
    • 使用JavaScript技术栈开发移动应用,例如React Native、Ionic等,实现跨平台的移动应用开发和部署,提高开发效率和跨平台兼容性。
  • 后端开发:
    • 利用Node.js等服务器端JavaScript运行环境进行后端开发,构建高性能、可扩展的服务器端应用,包括Web服务器、API服务器、实时应用服务器等。
  • 数据科学与人工智能:
    • 在数据科学和人工智能领域中使用JavaScript进行数据处理、可视化、机器学习等任务,例如使用TensorFlow.js进行机器学习模型的训练和部署。
  • 物联网(IoT):
    • 在物联网领域中使用JavaScript开发嵌入式应用程序和设备控制程序,例如使用Node.js进行传感器数据采集、设备控制、远程监控等任务。

    未来趋势:

    1. WebAssembly与JavaScript集成:
    • 随着WebAssembly的发展,未来可能会出现更多JavaScript与WebAssembly的混合开发场景,JavaScript作为高级接口语言,与底层的WebAssembly代码进行交互,实现更高性能的Web应用。
  • 大前端技术栈的演进:
    • 前端技术栈将继续演进,未来可能会出现更多基于JavaScript的新型前端框架和工具,以满足复杂应用的需求,例如基于Web Components的新一代组件化框架。
  • 全栈开发与一体化开发工具:
    • 全栈开发将成为一种趋势,未来可能会出现更多一体化的开发工具和平台,支持前端、后端、数据库等各个层面的开发,提高开发效率和协作效率。
  • 智能化与自动化工具:
    • 未来可能会出现更多智能化和自动化的开发工具,帮助开发者更快速地构建复杂的应用程序,例如基于机器学习的代码生成工具、智能调试工具等。
  • 跨平台与多端统一:
    • 未来可能会出现更多跨平台和多端统一的开发框架和工具,帮助开发者在不同的平台上实现代码共享和功能统一,例如基于React Native的多端开发框架。
  • 区块链与加密货币:
    • JavaScript技术在区块链和加密货币领域的应用也可能会持续增加,例如开发智能合约、区块链应用程序等。

    总的来说,JavaScript高级玩法在各种应用领域和未来趋势中都有广泛的应用前景,随着技术的不断发展和创新,其应用范围和影响力也将不断扩大。

    于反激话题,很多电源工程师工作中会遇到不同的问题。其实找到问题的根源,才能对症下药。下面给大家分享几篇不错的文章,供大家学习~


    作为工程师的你都知道不?自激式开关电源or反激式开关电源?

    跟小编学习一下新的电源知识:你们知道什么是自激式开关电源,什么是反激式开关电源?他们的工作原理是什么,以及优缺点是什么呢?只要花几分钟就能明白这个知识点~

    单端正激变换:由于是在开关管T导通期间输入端电源经变压器向输出电容器和负载提供能量,故称为正激变换器;

    单端反激式变换:由于是在开关管T关断期间变压器向输出电容器和负载提供能量,为反激变换器。

    如图:

    开关电源的正激式与反激式的区别如下:

    一、原理不同:

    1、正激式开关电源是指使用正激高频变压器隔离耦合能量的开关电源,与之对应的有反激式开关电源。

    正激具体所指当开关管接通时,输出变压器充当介质直接耦合磁场能量,电能转化为磁能,磁能又转化为电能,输入输出同时进行。

    2、“反激”(FLY BACK)具体所指当开关管接通时,输出变压器充当电感,电能转化为磁能,此时输出回路无电流;相反,当开关管关断时,输出变压器释放能量, 磁能转化为电能,输出回路中有电流……

    查看原文:https://www.dianyuan.com/article/49297.html


    为什么反激变压器需要气隙,而正激不需要呢?

    本篇文章主要从高频变压器公式,进行气隙推断,从而看一下正激变压器与反激变压器在气隙的方面,究竟有何不同之处!

    1、变压器中的公式

    1)V=N*B*Ae/t.

    V是线圈两端的电压;

    N是线圈的匝数;

    B是磁芯的磁通量密度;

    Ae是磁芯的绕线的地方的横截面积

    t是时间。

    公式的含义是:在时间t内,对绕线N匝的线圈而言,磁通量的变化是N*B*Ae,产生的感应电压是V。

    安培定理:N1*I1+N2*I2...=H1*L1+H2*L2。在稳恒磁场中,磁感应强度B沿任何闭合路径的线积分,等于这闭合路径所包围的各个电流的代数和乘以磁导率。

    N1是磁芯绕组上线圈1的匝数。

    I1是线圈1上的电流。

    H1是磁芯的磁场强度=B/u0*ur,u0是真空磁导率,ur是磁芯的相对磁导率。

    L1是磁芯中磁场回路的长度。

    H2是磁芯的气隙的磁场强度=B/u0

    L2是磁芯气隙的长度。

    B=u0*(N1*I1+N2*I2+...)/(L1/ur+L2)。

    2、正激变压器

    最大功率处的波形

    磁通密度相对于时间t的波形

    公式1中(V=N*B*Ae/t),考虑到匝数越多,损耗越大,要求的磁芯越大,因此,选择匝数尽量少,选择B=Bmax。V=N*Bmax*Ae/t1,求出N,N向上取整数Ni,作为绕线匝数。

    选取Ni后,可以求出此时的Bi=V*t1/(Ni*Ae)。

    通过公式2:

    Bi=u0*(N1*I1-N2*I2)/(L1/ur+L2)。

    变压器中,同名端的电流方向相反,因此符号相反。

    当功率等于p的时候,I2确定,可以算出I1=Bi*(L1/ur+L2)/(u0*N1)+N2*I2/N1。

    变压器的输入功率=I1*V*D=0.5*Bi*(L1/ur+L2)/(u0*N1)*V*D+N2*I2/N1*V*T*D=0.5*Bi*(L1/ur+L2)/(u0*N1)*V*D+p.是可以满足功率要求的。因此正激变压器不需要调节L2的值,来满足功率要求……

    查看原文:https://www.dianyuan.com/article/48767.html


    反激式转换器工作原理以及反激电源实测波形分析

    本文主要介绍反激式转换器工作原理,以及反激开关MOSFET源极流出的电流波形转折点的分析。

    反激式转换器工作原理

    图1为一个最简单的反激式转换器拓扑结构,并且包含以下寄生元件:

    如初级漏电感、Mosfet的寄生电容和次级二极管的结电容。

    图1包含寄生元件的反激式转换器拓扑图

    该拓扑源自一个升降压转换器,将滤波电感替换为耦合电感,如带有气隙的磁芯变压器,当主开关器件MOSFET导通时,能量以磁通形式存储在变压器中,并在MOSFET关断时传输至输出。由于变压器需要在MOSFET导通期间存储能量,磁芯应该开有气隙,基于这种特殊的功率转换过程,所以反激式转换器可以转换传输的功率有限,只是适合中低功率应用,如电池充电器、适配器和DVD播放器。

    反激式转换器在正常工作情况下,当MOSFET关断时,初级电流(id)在短时间内为 MOSFET的Coss(即Cgd+Cds)充电,当Coss两端的电压Vds超过输入电压及反射的输出电压之和(Vin+nVo)时,次级二极管导通,初级电感Lp两端的电压被箝位至nVo。因此初级总漏感Lk(即Lkp+n2×Lks)和Coss之间发生谐振,产生高频和高压浪涌,MOSFET上过高的电压可能导致故障。

    反激式转换器可以工作在连续导通模式(CCM)(如图2)和不连续导通模式(DCM)(如图3)下,当工作在CCM模式时,次级二极管保持导通直至MOSFET栅极导通,而MOSFET导通时,次级二极管的反向恢复电流被添加至初级电流,因此在导通瞬间初级电流上出现较大的电流浪涌;当工作在DCM模式时,由于次级电流在一个开关周期结束前干涸,Lp和MOSFET的Coss之间发生谐振。

    图2 连续导通模式

    图3 不连续导通模式

    图4显示了开关电源工作在DCM模式,实测的MOSFET电压和电流工作波形,除了可以看到MOSFET在开通和关断的过程中,均产生比较大的电压和电流变化,而且可以看到MOSFET在开通和关断的瞬间,产生一些震荡和电流尖峰……

    查看原文:https://www.dianyuan.com/article/48167.html


    PSR反激开关电源同步整流问题解析

    本文将详细解析PSR反激开关电源同步整流是怎样实现的,希望对大家有所帮助。

    大家都知道同步整流相比功率二极管整流损耗小,效率高,相同功率下电源尺寸可以更小。同步整流的驱动方式有电压型驱动和电流型驱动两种。按照SR门级驱动电压的来源,又分为自驱动和外驱动。

    这里要介绍的是在充电器领域内常见的电压型其驱动的同步整流 ,知识点包含以下几个小节,结合芯片内部结构力求全面讲细讲清楚以及设计过程中遇到的一些坑,不过还不知道何为PSR架构的童鞋可以先自行了解一下,本章先不展开来讲了。

    知识点:

    1.同步整流MOS什么时候开通?什么时候该关断?

    2.整流芯片是怎么辨别原边导通的波形和RING的?它的逻辑是怎样?靠电路是怎么实现的?

    3.除了同步整流功能外,它还可以用来监控次级侧电压,犹如SSR里面的TL341,可以使其动态响应远远优于普通的PSR架构

    一. SR 何时开通,何时关断?

    (附上BCD芯片的线路图)

    图1

    图2

    图1中次级侧的APR3415是本章的主角了,图2是其内部方框图,可以看到整流MOS已经集成在芯片里面了(红色圆圈所示)。

    那么他何时该开通呢?判断准则其实想的出来是原边导通的时候他应当关断,次级侧导通的时候他才能导通。但他又不是原边控制芯片肚子里的蛔虫,怎么知道何时该导通的呢?我们知道当原边MOS Q1导通的时候,根据变压器同名端(变压器T1黑点圆圈的为同名端,没有黑点的为非同名端)判断此时次级侧非同名端,也是和APR3415的DRAIN PIN相连的端为正,那么此时刻他必须关断。

    而当原边MOS由导通变为关断的时候,同名端反向,次级侧和DRAIN PIN相连的一端为负,那么此时整流MOS可以开通了……

    查看原文:https://www.dianyuan.com/article/45967.html


    同样的磁芯,为什么正激比反激做的功率更大?

    我们做过正激也做过反激的电源工程师都知道,一般在100W以内我们习惯用反激拓扑来做,超过100W的用正激比较合适。

    j究竟是为什么呢?

    我来说说我的观点,首先只要懂得设计变压器的工程师。

    在计算反激开关电源时,反激功率做得越大,原边电感量肯定是越小的,这跟拓扑的特性有关,我们先来分析一下反激的工作过程:

    上图为反激的基本拓扑,当MOS开关管开通时,变压器原边绕组上正,下方,此时变压器副边绕组上负下正,整流二极管VD截止,在MOS开通的时段,变压器的励磁能量由于没有通路释放从而全部存储在变压器中。当MOS开关管关闭之后,变压器原边绕组电位变成下正上负,根据同名端,此时副边绕组的电位为上正下负,整流二极管VD导通,变压器释放能量,磁芯复位。

    就是这样周而复始,使输出稳压。

    由于这种不断存储又释放存储又释放的工作模式决定变压器的是很容易饱和的,为了控制变压器不饱和,通常的做法就是加气隙。

    为了方便,我们用反激DCM的公式,简单说明一下

    Lp:原边感量,Ip:原边电流,Vin最低输入电压,D:占空比,P输入功率,f开关频率

    我们通过几个简单的公式就可以看出,反激电源的原边电感量是受到了限制的。

    我们再通过上面的公式,可知感量和Lp和峰值电流定了之后,要使磁芯不饱和,我们只能通过增大Np匝数来降低磁通密度,Np增大了,Lp是定了磁芯必然要加气隙。有计算经验的人都知道,反激变压器尤其是功率打了变压器感量都是比较小的。

    下面我们来看看正激

    上图为正激电源的基本拓扑,开关MOS管开通时,原边绕组NP1为上正下负,根据同名端判定此时副边绕组NS也为上正下负,输出整流二极管VD1是导通的,原边导通的同时副边也导通,能量每个周期都能够得到即时释放。变压器不存在存储阶段,虽然原边也有比较大的电流,但这电流大部分都是由副边折射过来的,初级和次级是同时有电流的,而且产生的磁感应强度相等,方向相反,当负载变重,初级电流也相应加大,抵消了磁芯磁场的变化,所以正激不用考虑正激的电感量的大小,绕多大就是多大……

    查看原文:https://www.dianyuan.com/article/45626.html


    反激式开关电源变压器的设计宝典

    反激式变压器是反激开关电源的核心,它决定了反激变换器一系列的重要参数,如占空比D,最大峰值电流,设计反激式变压器,就是要让反激式开关电源工作在一个合理的工作点上。这样可以让其的发热尽量小,对器件的磨损也尽量小。同样的芯片,同样的磁芯,若是变压器设计不合理,则整个开关电源的性能会有很大下降,如损耗会加大,最大输出功率也会有下降,下面我系统的说一下我设计变压器的方法。

    设计变压器,就是要先选定一个工作点,在这个工作点上算,这个是最苛刻的一个点,这个点就是最低的交流输入电压,对应于最大的输出功率。下面我就来算了一个输入85V到265V,输出5V,2A 的电源,开关频率是100KHZ。

    第一步:选定原边感应电压VOR

    这个值是由自己来设定的,这个值就决定了电源的占空比。可能朋友们不理解什么是原边感应电压,为了便于理解,我们从下面图一所示的例子谈起,慢慢的来。

    这是一个典型的单端反激式开关电源,大家再熟悉不过了,下面分析一下一个工作周期的工作情况,当开关管开通的时候,原边相当于一个电感,电感两端加上电压,其电流值不会突变,而线性的上升,有公式上升了的电流:

    I升=VS*Ton/L

    这三项分别是原边输入电压、开关开通时间和原边电感量.在开关管关断的时候,原边电感放电,电感电流又会下降,同样要尊守上面的公式定律,此时有下降了的电流:

    I降=VOR*TOFF/L

    这三项分别是原边感应电压(即放电电压)、开关管关断时间和电感量.在经过一个周期后,原边电感电流会回到原来的值,不可能会变,所以,有:

    VS*TON/L=VOR*TOFF/L

    即上升了的等于下降了的,懂吗?好懂吧!上式中可以用D来代替TON,用(1-D)来代替TOFF。移项可得:

    D= VOR/(VOR +VS)

    此即是最大占空比了。比如说我设计的这个变压器,我选定感应电压为80V,VS为90V ,则D=80/(80+90)=0.47

    第二步:确定原边电流波形的参数

    边电流波形有三个参数,平均电流,有效值电流,峰值电流.,首先要知道原边电流的波形,原边电流的波形如下图所示。这是一个梯形波横向表示时间,纵向表示电流大小,这个波形有三个值,一是平均值Iav,二是有效值I,三是其峰值Ip,平均值就是把这个波形的面积再除以其时间.如下面那一条横线所示,首先要确定这个值,这个值是这样算的,电流平均值:

    Iav=Po/(η*VS)

    因为输出功率除以效率就是输入功率,然后输入功率再除以输入电压就是输入电流,这个就是平均值电流。下一步求电流峰值。


    为了求电流峰值我们还要设定一个参数,这个参数就是KRP,所谓KRP,就是指最大脉动电流△IM和峰值电流Ip的比值(图二所示),KRP的取值范围在0和1之间。这个值很重要。已知了KRP,现在要解方程了,都会解方程吧,这是初一的应用题啊,我来解一下,已知这个波形一个周期的面积S=Iav*1,这个波形的面积S等于:

    S=IM*KRP*D/2+IM*(1-KRP)*D

    所以有电流平均值等于上式,解出来峰值电流:

    IM=Iav/[(1-0.5 KRP)*D]。

    比如说我这个输出是10W,设定效率是0.8 ,则输入的平均电流就是:

    Iav=10/0.8*90=0.138A,

    我设定KRP的值是0.6,而最大值:

    IM=0.138/(1-0.5KRP).D=0.138/(1-0.5*0.6)*0.47=0.419A.

    下面球电流的有效值I,电流有效值和平均值是不一样的,有效值的定义还记得吗,就是说把这个电流加在一个电阻上,若是其发热和另处一个直流电流加在这个电阻上发热效果一样的话,那么这个电流的有效值就等于这个直流的电流值.所以这个电流的有效值不等于其平均值,一般比其平均值要大.而且同样的平均值,可以对应很多个有效值,若是把KRP的值选得越大,有效值就会越大,有效值还和占空比D也有关系,总之.它这个电流波形的形状是息息相关的.我就直接给出有效值的电流公式,这个公式要用积分才能推得出来,我就不推了,只要大家区分开来有效值和平均值就可以了……

    查看原文:https://www.dianyuan.com/article/44799.html


    意犹未尽,查看更多精彩文章→→https://www.dianyuan.com/eestar/

    更多精彩内容→→

    关于嵌入式单片机,怎样的学习方法才是正确的

    反激→就是这样的过程,搞不懂的快来GET

    想快速学EMC,以下六篇文章足矣,建议收藏

    关于LDO必须掌握的知识点,你都掌握了吗?