Engee 文档
Notebook

交流电压表

在本示例中,我们将演示如何制作一个电压表模型,利用瞬时电压值传感器测量交流电压。

模型描述

标准交流电压表可依靠多种原理将瞬时信号(变量)转换为稳定读数。

当输入端施加正弦信号时,此类电压表最常见的输出值是一个有效信号值,等于$U_д = U_m / \sqrt 2$ (其中$U_m$ 是正弦波的振幅)。在测量不同波形时,必须引入修正系数。

假设我们有一个电压表,其读数与输入信号的振幅成正比(并不总是这样,有时读数与功率成正比)。电压发生器ControlledVoltage 接收一些可变的控制信号,传感器Voltage 则向我们返回在模型步进设置所设定的时间时刻测量到的瞬时值。

image.png

该模型的输入是一个可变波形信号(默认为正弦波)乘以一个决定其振幅的阶跃信号。阶跃信号瞬间将信号发生器的振幅从 1 V 增加到 5 V。

image.png

Цифровой вольтметр 也由一个屏蔽子系统表示。在其设置中,您可以指定平滑窗口的大小,这将影响电压表读数的平滑度。

image.png

简单地说,这种电压表的设计就是找出信号的振幅,并显示一个等于振幅除以$\sqrt 2$ 的值。

运行模型

在运行模型之前,我们通过寻址块Генератор сигналов 中的一个组件,将振荡器设置为正弦模式。

In [ ]:
# Если модель еще не открыта, загрузим из файла
if "ac_voltmeter_simple"  getfield.(engee.get_all_models(), :name)
    engee.load( "$(@__DIR__)/ac_voltmeter_simple.engee");
end;

engee.set_param!( "ac_voltmeter_simple/Генератор сигналов/Signal Generator", "WaveForm"=>"sine" )
data = engee.run( "ac_voltmeter_simple" )
Out[0]:
Dict{String, DataFrame} with 2 entries:
  "u" => 2001×2 DataFrame…
  "y" => 2001×2 DataFrame
In [ ]:
plot(
    plot( data["u"].time, data["u"].value, label="Мгновенные значения сигнала" ),
    plot( data["y"].time, data["y"].value, label="Показания вольтметра" ),
    layout  = (2,1)
)
Out[0]:

正如我们所见,当我们测量振幅为 1 的正弦波时,电压表返回的值约等于0.707 或$1 / \sqrt 2$ 。

让我们看看在电路输入端施加锯齿值 (sawtooth) 或矩形脉冲 (square) 会发生什么。

In [ ]:
engee.set_param!( "ac_voltmeter_simple/Генератор сигналов/Signal Generator", "WaveForm"=>"sawtooth" )
data = engee.run( "ac_voltmeter_simple" )
Out[0]:
Dict{String, DataFrame} with 2 entries:
  "u" => 2001×2 DataFrame…
  "y" => 2001×2 DataFrame
In [ ]:
plot(
    plot( data["u"].time, data["u"].value, label="Мгновенные значения сигнала" ),
    plot( data["y"].time, data["y"].value, label="Показания вольтметра" ),
    layout  = (2,1)
)
Out[0]:

锯齿信号的有效值等于$U_m/1.73$ ,即振幅为 1 的锯齿信号的有效值为0.578

但从图中我们可以看到,电压表仍然返回0.707 。这个值是由其工作原理造成的,它导致了测量中的方法误差。

了解了输入信号的形状后,将其乘以适当的系数,就可以轻松补偿这一误差的影响。

结论

如果需要,您可以在Engee中创建一个精确到箭头惯性或分段指示器的电压表模型。整流器、直流装置和其他元件可单独实现。

但如果建模的目的是为了演示众所周知的方法错误,则可以使用基本库中的模块来引入这些错误,这就是我们所做的。