估计电力电子模型的频率响应:正弦流与伪随机二进制序列 (PRBS)
作者 Antonino Riccobono and Arkadiy Turevskiy, MathWorks
本系列包含三个部分,本文是第二部分。上篇《估计电力电子模型的频率响应》介绍了开环 Boost 变换器频率响应估计的六步工作流。下篇《电力电子模型的级联数字 PID 控制设计》描述了基于频率响应估计的控制设计工作流,用于调节具有内层电流控制回路和外层电压控制回路的开关模式 Buck 变换器的控制器增益。
电力电子工程师可以使用 Simulink Control Design™ 提供的频率响应估计 (FRE) 工具,对利用 Simscape Electrical™ 组件等建模的开关模式电力电子变换器进行线性化。使用频率响应估计,您可以选择变换器模型的相关部分,并将一个振幅和频率可控的扰动信号注入稳态系统。然后可以计算频率响应或传递函数,以表示工作点附近的系统动态。
在 Simulink Control Design 中,窄带信号和宽带信号均有提供(图 1)。正弦流是一种窄带扰动信号,因为它的频率成分仅限于几个频率点。随机、线性调频和伪随机二进制序列 (PRBS) 均属于宽带扰动信号,因为它们的频率成分分布在一个特定的频谱上。
本文将分别采用正弦流和 PRBS 进行开环 Buck 变换器的频率响应估计并进行对比,重点关注估计时间、估计频率点数和估计准确度。
Buck 变换器示例
Buck 变换器是一种电力电子拓扑结构,能够提供低于直流供电电压的直流电压负载。该变换器广泛用于多种不同额定功率的应用,包括消费电子产品、电动汽车、多电舰船和飞机、可再生能源和 LED 驱动器等。
图 2 显示了一个使用 Simscape Electrical™ 组件建模的开关模式 Buck 变换器。该变换器在连续导通模式 (CCM) 下运作,即当变换器以稳态运行时,电感电流始终不为零。该变换器在开环中工作,由一个占空比恒定的 PWM Generator 模块驱动。为了模仿真实的嵌入式控制器,模型中包含了采样。设置线性化输入和输出分析点,以确定控制到输出的传递函数。
正弦流还是 PRBS?设置比较分析
正弦流由一系列频率递增的正弦波组成。为了覆盖所需的频率范围,正弦波输入需要以可控的频率增量进行扫频。每个频率都会以特定的周期数激励系统。如果需要许多频率点,或者需要在低频下估计频率响应,估计时间可能会很长。
伪随机二进制序列 (PRBS) 可以缩短估计时间。PRBS 是一种在两个值之间切换的确定性信号,具有类似白噪的特性。PRBS 信号本身具有周期性,最大周期长度为 2n-1,其中 n 为 PRBS 阶数。
图 3 显示了在 Buck 变换器 Duty Cycle 模块输出端注入的正弦流信号。在 Model Linearizer 中设置该信号,其中包含 15 个对数间距频率,频率范围从 100 Hz 到 20 kHz,每个频率的峰值振幅为 0.02(2% 占空比)。每个频率重复四个周期。
图 4 显示了在 Model Linearizer 中设置的单周期 PRBS 信号,阶数为 11,(峰间)幅值为 0.04。正弦流和 PRBS 的采样时间必须和控制采样时间一致,均设置为 10 µs。
要生成图 3 和图 4 所示的绘图,请在 Model Linearizer 中创建扰动对象,将对象 in_sine1
和 in_prbs1
移至 MATLAB® 工作区(图 5),然后使用以下命令:
>> in_sine1.plot >> in_prbs1.plot
估计时间
估计时间是以下二者之和:经过的时钟时间(使用注入的正弦流或 PRBS 信号运行仿真所需的时间),以及频率响应的计算时间(计算输出对输入的快速傅里叶变换 [FFT] 的时间)。由于计算时间通常明显少于经过的时钟时间,我们在这个 Buck 变换器示例中将关注经过的时钟时间。经过的时钟时间取决于仿真时间。
在我们的示例中,正弦流信号的仿真时间是所有 15个周期的 4 倍,其中每个周期对应一个对数间距频率。可用如下代码计算:
>> in_sine1.getSimulationTime ans = 0.1265
PRBS 的仿真时间是最大周期长度 2n-1 乘以采样时间。对于图 4 所示的 PRBS 信号 in_prbs1
,n = 11,采样时间为 10 μs。可用如下代码计算:
>> in_prbs1.getSimulationTime ans = 0.0205
请注意,您需要将对象 in_sine1
和 in_prbs1
移至 MATLAB 工作区(图 5)才能执行上述命令。
估计频率点数
估计 frd
对象中的频率点数取决于估计时使用的输入信号。
如果使用正弦流信号,估计 frd
对象中的频率就是该信号中指定的频率。运行以下命令后,可以用 MATLAB 变量编辑器(图 6)查看存在哪些频率:
>> f_SineStream = estsys_SineStream.Frequency;
如果使用 PRBS,频率点数取决于 FFT 计算。如变量编辑器所示(图 7),运行以下命令后,计算出 1024 个频率点:
>> f_PRBS = estsys_PRBS.Frequency;
可以看到,向量 f_PRBS
包含 1023 个正频率以及频率点“0”。FFT 计算过程中将丢弃负频率。
估计准确度
将对象 estsys_SineStream
和 estsys_PRBS
移至 MATLAB 工作区,可以得到正弦流和 PRBS 的非参数化估计结果的波特图(图 8)。这些结果是一致的,不过使用 PRBS 的估计在高频下似乎有点粗糙。
需要注意的是,使用正弦流可以直接控制最小和最大可识别频率,但使用 PRBS 时这种控制是间接的。事实上,最小可识别频率为仿真时间的倒数 (1/0.0205 = 48.7805 Hz),最大可识别频率为奈奎斯特频率,即为开关频率的一半 (100e3/2 = 50 kHz),如图 8 中的竖线所示。
现在我们可以计算和比较参数化估计。如本系列上篇所述,您可以使用 System Identification Toolbox™ 中的 tfest
获得参数化模型。
对于采用正弦流的参数化估计,您只需执行以下命令来估计一个有 2 个极点且没有零点的传递函数。
paramsys_SineStream = tfest(estsys_SineStream, 2, 0, iodelay);
变量 iodelay
包含了计算、PWM 和采样引起的延迟。图 9 显示了采用正弦流的参数化和非参数化估计的波特图。
对于采用 PRBS 的参数化估计,最好对数据点进行稀释,以确保 tfest
处理的频率点数量可控且权重相等。以下代码创建了一个 frd
对象,其中包含 100 个介于 100 Hz 到 20 kHz 之间的对数间距频率。System Identification Toolbox 中提供了 interp
函数。
% 稀释非参数化估计 fmin = 100; %Hz fmax = 20e3; %Hz Nfreq = 100; f = logspace(log10(fmin),log10(fmax),Nfreq); % 在新的频率网格上对 FRD 数据插值 estsys_PRBS_thinned = interp(estsys_PRBS, 2*pi*f);
然后,可以用以下代码计算参数化模型:
paramsys_PRBS = tfest(estsys_PRBS_thinned, 2, 0, iodelay);
图 10 显示了采用 PRBS 且经稀释的参数化和非参数化估计的波特图。
最后,如果对采用正弦流和 PRBS 的参数化估计绘图,并将它们与等效的控制到输出解析传递函数进行比较(图 11),可以发现以下几点:
- - 采用正弦流的参数化估计在谐振频率处的差异是初始频率数选择不当造成的。
- - 采用 PRBS 的参数化估计与解析传递函数十分接近。
结论和建议
采用 PRBS 进行频率响应估计,可以快速计算用 Simscape Electrical 组件建模的开关模式电力电子变换器的传递函数。但是这种方法估计的频率点会很多,因此,为尽可能提高估计准确度,需要注意稀释频率点。
采用正弦流进行频率响应估计一般能产生准确的结果。但是,如果要准确地估计尖锐的谐振特征,可能需要增加频率数,这将导致估计时间相应增加。
此外,由于注入时间短,采用 PRBS 的频率响应估计非常适合在线估计。事实上,电力电子系统会随着时间而变化,通常需要在短时间内完成估计,这样专门的控制系统才可以实时监控估计的关键传递函数,并在必要时采取纠正措施。显然,采用正弦流的频率响应估计不支持这种用例。
2020 年发布