网上能搜索到的有关电力电子建模和控制器设计的资料说得都比较晦涩,里面似乎总是有些细节没有直接说出来,而且书本上又总是把建模和控制器设计分开讲解。因此本文从基本的Buck/Boost电路出发,记录一下我对建模与控制器设计的理解。
Buck电路
平均模型
平均值定义如下:
可以证明有以下特性:
理想化开关管,定义开关函数为
对Buck电路中的电感、电容和负载分别列出等式,那么Buck电路的时域模型就可以写作:
从Buck电路的时域模型可以直接得出Buck的平均模型:
进行拉氏变换后得到:
思考
拉式变换时公式中的
我们难以分析这两个量同时变化的情况(非线性),注意两个变量相乘的拉氏变换结果会非常复杂,即
模型的输入到底是什么
在后面控制器设计的时候,我们的模型选取
数学模型的输入是什么并不是很重要。因为利用这个数学模型设计的控制器在实际使用的时候还需要加入一步调制,将控制器输出的量再转化为MCU实际能控制的量(PWM占空比),因此控制对象的输入是什么并不重要,可以是
假如设计的控制器输出数值为
Boost模型尚且可以推导出以
模型的输入其实也很重要。因为输入不同,调制方式就不同,不同的调制精度不同。如果将
如果将
在后文中的Boost模型中就出现了多个
工程上设计的时候常常是在控制器达到稳态的时候进行扫环路,判断增益裕度与相位裕度是否达标。暂态过程是难以进行分析的,通常通过留足裕度来保证控制器能在模型存在扰动或者变化的时候将模型控稳。因此我们不用太关心未达到稳态时的模型。但是注意需要在不同负载下都对控制器进行测试。
控制器设计
不建议直接求解传递函数,因为不利于看到模型内部的细节,从而制定出合适的前馈。这里直接根据拉式变换得到的模型绘制出框图,如下。将输入
对于这个模型,其传递函数是二阶的。如果在输入处引入
注意到框图中还有一个由
利用这两个框图搭建好仿真,利用Simulink的PID(Z)模块(离散PID)和PID TUNE工具即可分别将内环外环设计为想要的带宽和相位裕度,然后直接将参数写入实际的MCU中。
由于数学模型的输入是
带宽和裕度的设计需要根据要求调整。如果需要动态响应好,那么带宽一般要大。通常会要求开环bode图增益曲线以-20dB/dec穿越0dB,这时候开环的穿越频率与闭环的截止频率(带宽)非常接近(真的吗?怎么证明?)。由于开环bode图容易绘制,因此多用开环bode图的穿越频率当作带宽来设计。
稳定的负反馈系统,开环系统的穿越频率和闭环系统的带宽很接近,存在wb>wc且有同向性。工程上近似时,时常把两者直接混用。
参考:(文库) 别让网文毁了你的环路分析
(1)相位裕度应大于45°。相位裕度越大,相应的超调量就越小。一般来说,工程应用中,相位裕度是45°~60°。
(2)为了防止幅频特性曲线以-40 dB/dec 穿越0 dB,引起电路相位快速变化,产生较大的超调,系统在穿越频率f处的斜率应为-20 dB/dec。
(3)为防止实际电路中系统参数的微小波动引起开环增益的剧烈变化,幅值裕度应大于 10 dB。另外,虽然较大的穿越频率术有助于系统获得更快的响应能力,但为获得无失真的输出信号,穿越频率还需满足。因而实际工程设计中,可取值为 。
来源:准谐振改进型SEPIC变换器建模与分析(电源学报)
参考:开关电源穿越频率选取
开关频率与带宽的关系:开关电源的控制环截止频率和开关频率有什么关系? - future energy的回答 - 知乎
https://www.zhihu.com/question/29230624/answer/45084377
思考:现在新管子的出现,开关频率可以越来越高。如果离散控制器的控制频率是20K,开关频率是200K,那么电流环的控制器的截止频率取开关频率的1/10,即20K可以吗?
回答:不可以。控制器离散化会依赖一个采样时间
离散控制器每计算一次相当于采样一次,可以用Simulink中的离散时间延迟模块对Sine源采样。当延迟模块的采样时间等于Sine信号(需要给相位)的频率的一半时,系统勉强可以采样出同频率的方波,一旦超过就无法正常采样了。此外也可以利用Matlab绘制一个离散系统的bode图,会发现有一根纵线,纵线横坐标对应离散系统的采样频率的一半,即奈奎斯特频率。
Boost电路
Boost电路比Buck电路的模型更加古怪,可以求解出Buck平均模型和小信号模型的
平均模型
Boost电路的平均模型如下:
同样地可以绘制出框图。但是需要注意到,此时系统的模型框图中不可避免地出现
小信号模型
我们在平均模型中将
小信号模型是一种建立在某一静态工作点附近对电路进行线性化分析的手段。电路工作状态距离这一静态工作点越远,模型偏差就越大。需要假设所有的大信号可以写成常数+小扰动的形式:
将这个等式替换掉时域模型中的所有大信号,然后分离等式中的常量和扰动量,将两个小信号乘积忽略,从而将非线性项消去,因此小信号模型在推导中会得到两个部分,一部分是各个常量之间的关系,另一部分是交流量之间的关系,我们使用交流量之间的关系进行拉氏变换从而得到频域的小信号模型。以Boost时域模型的一部分为例:
解释:这一部分将
解释:将等式两边的常数提出,交流小信号也提出,即可得到两个等式。
完整Boost变换器的小信号模型如下:
一般在使用小信号模型的时候,将
小信号模型之辩
网上能查询到的不少文献是直接利用
如果直接将这个小信号模型输入大信号结果会输出什么?先看看其单位阶跃响应的稳态值:
如果输入一个大信号
因此使用这个模型时还是要回归到其原本含义上,不要混用大信号和小信号。我们不能给一个大信号给小信号模型,然后期望小信号模型输出一个大信号,这个偏差是很大的。小信号的用途主要有两个,一个是进行扰动分析,另一个是用于控制器设计。这个模型反映的就是给定占空比扰动对输出电压的影响,可以搭建一个仿真模型仿真验证。
小信号模型可用来设计控制器吗?
这个视频中在讨论小信号模型的可用性上给出了解释:boost变换器的小信号模型的可用性分析。作者认为使用小信号模型并不能用于控制器的设计。但是我个人认为,小信号模型在一定程度上是可以用于控制器设计的,但是只能用于分析稳态时抵御扰动的能力。我们在设计控制器的时候基本上都是基于某一稳态工作点进行设计,小信号模型恰好就是在这一个稳态点进行推导的,因此其天然就可以用来描述系统的特性。
当使用小信号模型的时候,电压环的参考值其实是期望的电压扰动量值。如果这个期望值给太大超过可线性化范围(相对
以一般的双环PI控制器不加前馈为例进行说明:当没有前馈时,系统处于初始状态,控制器开始作用,直到系统达到稳态,此时电流环输出的变化量就可以看成一个
根据线性叠加定理,其实可以把所有的常量和微小变化量抽离出来,这个微小变化量所处的系统就是我们的小信号模型系统。而所有的常量,其实是PI控制器控制过程中自动累加上去得到的,属于模型的静态工作点。我们设计控制器,就是为了降低模型中各种各样的扰动通道的影响,以及对抗模型自身参数变化造成的静态工作点偏移。
这就是为什么基于小信号模型设计出来的双环PI放在实际电路仿真中也能用的原因,看上去直接混用了大小信号,实际上改变一下对PI输出的看法即可将小信号模型和实际稳态电路联系起来。不过写到这里,我总感觉PI能把系统从不稳定状态拉到一个稳态的状态有点玄学,或者说难以用数学建模进行跟踪。但是这一过程是非线性的,我目前的能力还只能在线性范围内蹦跶。
对比平均模型和小信号模型,其实平均模型包含了系统从0开始启动的过程,而小信号模型只是描述系统在某个工作点附近的扰动关系。使用小型化模型并不是太方便,一是因为在设计控制器的时候,小信号模型更加复杂,平均模型已经够用了。二是小信号模型中变量的物理意义是微小扰动。
如果要用小信号模型…
如果要用小信号模型进行控制器设计,我认为同样按照一般的设计思路来进行即可,只不过此时模型的各个变量含义都是小信号扰动。
在s域利用传递函数进行设计控制器的时候,电压环的参考值按道理来说应该是0,但是给0系统不会有任何响应,因为系统本就是稳定的。因此可以给一个相对于
考虑到小信号模型中PI输出(
下面也给出Boost电路的小信号模型。boost_small_signal
其中,红色的变量是输入,绿色的是输出。如果
将
Preview: