boost双闭环控制仿真升压电路PI调节器设计升压斩波电路建模和数学模型建模 建模方法有状态空间平均法,开关元件平均模型法,开关网络平均模型法提供双闭环调节器设计方案 从滤波器设计到pi调节器设计再到仿真。 从滤波器设计到建模,得到被控对象的传递函数,再根据传递函数设计pi调节器,最后把计算出来的pi参数带入仿真验证。
在电力电子领域,Boost升压电路是一种常见的电路拓扑,而双闭环控制结合PI调节器能让其性能更加优异。今天咱就来唠唠从建模到PI调节器设计再到仿真这一整套流程。
一、升压斩波电路建模
(一)建模方法
- 状态空间平均法:这个方法是把电路中的开关元件在一个开关周期内进行平均化处理。比如说,Boost电路里的开关管,在导通和关断时电路状态不同,状态空间平均法就是把这两种状态综合起来,用一个平均的状态来描述电路在整个周期的行为。
- 开关元件平均模型法:着重对开关元件进行平均建模。将开关元件看作一个受控源或者电阻之类的等效元件,其特性是基于开关周期平均得到的。
- 开关网络平均模型法:把整个开关网络当作一个整体进行平均建模,考虑网络内部各个元件之间的相互作用在开关周期内的平均效果。
(二)数学模型建立
以状态空间平均法为例,假设Boost电路输入电压为 \(V{in}\),输出电压为 \(V{out}\),电感电流为 \(i{L}\) ,电容电压为 \(v{C}\) 。在一个开关周期 \(T\) 内,开关管导通时间为 \(dT\)(\(d\) 为占空比),关断时间为 \((1 - d)T\) 。
当开关管导通时,有:
\[
\begin{cases}
L\frac{di{L}}{dt} = V{in} \\
C\frac{dv{C}}{dt} = - \frac{v{C}}{R}
\end{cases}
\]
当开关管关断时,有:
\[
\begin{cases}
L\frac{di{L}}{dt} = V{in} - V_{out} \\
C\frac{dv{C}}{dt} = i{L} - \frac{v_{C}}{R}
\end{cases}
\]
经过状态空间平均后,可得:
\[
\begin{cases}
L\frac{di{L}}{dt} = V{in} - (1 - d)V_{out} \\
C\frac{dv{C}}{dt} = (1 - d)i{L} - \frac{v_{C}}{R}
\end{cases}
\]
对上述方程进行拉普拉斯变换,并整理可得被控对象的传递函数。比如,以输出电压 \(V{out}(s)\) 对占空比 \(D(s)\) 的传递函数 \(G{vd}(s)\) 为例,推导过程这里省略(实际推导是基于上述平均化后的状态方程进行拉普拉斯变换和代数运算),最终得到 \(G_{vd}(s)\) 。
二、从滤波器设计到PI调节器设计
(一)滤波器设计
在实际电路中,干扰信号无处不在,滤波器就显得尤为重要。以低通滤波器为例,简单的一阶RC低通滤波器,其传递函数为 \(G(s)=\frac{1}{1 + sRC}\) 。这个滤波器能有效地滤除高频干扰信号,让输入到PI调节器的信号更加纯净。代码示例(Python实现简单低通滤波器频率响应分析):
import numpy as np import matplotlib.pyplot as plt from control import tf, bode # 定义RC参数 R = 1000 C = 1e-6 # 定义传递函数 num = [1] den = [R*C, 1] sys = tf(num, den) # 绘制波特图 mag, phase, omega = bode(sys, dB=True, Hz=True, omega=np.logspace(1, 6, 1000)) plt.show()(二)PI调节器设计
根据之前得到的被控对象传递函数 \(G{vd}(s)\) ,我们来设计PI调节器。PI调节器的传递函数为 \(G{pi}(s)=K{p}+\frac{K{i}}{s}\) 。设计目标是让系统有良好的动态和稳态性能。一般来说,我们希望系统的相位裕度和幅值裕度满足一定要求。通过频域分析方法,比如根据截止频率和期望的相位裕度来计算 \(K{p}\) 和 \(K{i}\) 。假设已知系统的截止频率 \(\omega{c}\) 和期望相位裕度 \(\gamma\) ,计算 \(K{p}\) 和 \(K_{i}\) 的过程如下(此处为简单示意,实际计算更复杂):
首先根据相位裕度要求,得到一个关于 \(K{p}\) 和 \(K{i}\) 的方程,再结合截止频率处幅值为0dB的条件,联立求解得到 \(K{p}\) 和 \(K{i}\) 。
三、仿真验证
将计算出来的PI参数带入仿真软件,比如MATLAB/Simulink。搭建Boost电路模型,在电压环和电流环分别加入设计好的PI调节器。代码示例(MATLAB/Simulink搭建简单Boost电路框架示意,实际还需细化各模块参数):
% 创建一个新的Simulink模型 new_system('Boost_Converter_Simulation'); open_system('Boost_Converter_Simulation'); % 添加电源模块 add_block('simscape/Sources/Voltage Source','Boost_Converter_Simulation/Voltage_Source'); set_param('Boost_Converter_Simulation/Voltage_Source', 'Voltage', '12'); % 添加电感模块 add_block('simscape/Electrical Elements/Inductor','Boost_Converter_Simulation/Inductor'); set_param('Boost_Converter_Simulation/Inductor', 'Inductance', '1e-3'); % 添加电容模块 add_block('simscape/Electrical Elements/Capacitor','Boost_Converter_Simulation/Capacitor'); set_param('Boost_Converter_Simulation/Capacitor', 'Capacitance', '100e-6'); % 添加电阻负载模块 add_block('simscape/Electrical Elements/Resistor','Boost_Converter_Simulation/Resistor'); set_param('Boost_Converter_Simulation/Resistor', 'Resistance', '100'); % 添加开关模块等其他模块,并连接各模块构成Boost电路 % 添加PI调节器模块,并设置之前计算好的Kp和Ki参数 add_block('simulink/Control System Toolbox/PI Controller','Boost_Converter_Simulation/PI_Controller'); set_param('Boost_Converter_Simulation/PI_Controller', 'Kp', num2str(Kp_value)); set_param('Boost_Converter_Simulation/PI_Controller', 'Ki', num2str(Ki_value));运行仿真后,观察输出电压和电感电流的波形。如果设计合理,输出电压应该能快速稳定到设定值,并且在负载变化等情况下也能保持较好的稳定性。要是波形不理想,那就得回过头检查建模、PI参数设计等环节,看看是不是哪里出了问题。这就是整个从建模到PI调节器设计再到仿真验证的Boost双闭环控制升压电路设计流程啦。