实验台上永磁同步电机参数的确定
在使用真实引擎时,经常会发生技术文档中没有指定所有必要的参数。 此示例显示了在永磁同步电机(PMSM)的流量耦合未知时如何确定其反电动势系数和转矩常数。
想象一下,我们有一个真正的电机在发电机模式下运行,在其端子处可以测量电压。 我们将以角速度旋转它的轴:
angular_velocity = 5; # 高兴/高兴
实验台在模型中呈现 PMSMParameterization.engee 个屏蔽子系统。
与实际实验测量一样,电压信号具有噪声。
.png)
以下是基于PMSM块(库物理建模/电力/电机/带永磁体)的模型。
我们将在此示例中定义PMSM块的缺失参数。
.png)
在单位设置中,您可以选择参数化永久磁铁磁通量的方法**。 你可以问:
*流量耦合 (指定通量联动),
*恒定扭矩 (指定扭矩常数)
*反电动势比 (指定反电动势常数)。
选择设置反电动势系数。 反电动势系数是未知的,所以首先我们将其设置为任意值。:
Ke = 0.1; # B*c/高兴。
启动模型:
engee.addpath(@__DIR__)
if "PMSMParameterization" in [m.name for m in engee.get_all_models()]
m = engee.open( "PMSMParameterization" ) # 加载模型
else
m = engee.load( "PMSMParameterization.engee" )
end
results1 = engee.run(m, verbose=true)
从模型读取数据:
t = collect(results1["V_exp"]).time; # 时间
V_model = collect(results1["V_model"]).value; # 在PMSM模型中测量的电压
V_exp = collect(results1["V_exp"]).value; # 实验装置的电压C
让我们绘制实验电机a相绕组*上的电压及其模型。 电压幅值变化显着,因为反电动势系数的值是 任意设置。
using Plots
plotlyjs();
plot(t, V_exp, title="实验", xlabel="时间,c", ylabel="电压,V", w = 2, label="实验设置")
plot!(t, V_model, title="模型", xlabel="时间,c", ylabel="电压,V", w = 2, label="PMSM模型")
反电动势系数的计算
反电动势系数 它可以使用公式计算:
-a相绕组上电压的峰值;
-转子的旋转角速度。
该公式对于定子绕组中的可忽略电流有效。 在模型中,每个相通过电阻连接到地 欧姆,这使得测量条件更接近开路模式。
峰值电压值 估计为信号的最大值和最小值之差的一半。 为了降低高频噪声的影响,我们对测量电压进行了预滤波。
# 测电压信号的滤波:
using DSP
window_size = 100;
# A相绕组两端峰值电压的计算
V_exp_filt = filt(ones(window_size) / window_size, 1, V_exp);
V_a_peak = (maximum(V_exp_filt)-minimum(V_exp_filt))/2;
计算反电动势系数:
Ke = V_a_peak / angular_velocity;
println("Коэффициента противо-ЭДС: $Ke В∙с/рад")
让我们用反电动势系数的计算值运行模型。
results2 = engee.run(m, verbose=true)
if "PMSMParameterization" in [m.name for m in engee.get_all_models()]
m = engee.open("PMSMParameterization") # 加载模型
else
m = engee.load("PMSMParameterization.engee")
end
results2 = engee.run(m, verbose=true)
从模型读取数据:
t = collect(results2["V_exp"]).time; # 时间
V_model = collect(results2["V_model"]).value; # 在PMSM模型中测量的电压
V_exp = collect(results2["V_exp"]).value; # 实验装置的电压C
plot(t, V_exp, title="实验", xlabel="时间,c", ylabel="电压,V", w = 2, label="实验设置")
plot!(t, V_model, title="模型", xlabel="时间,c", ylabel="电压,V", w = 2, label="PMSM模型")
计算反电动势系数后,实验电机a相绕组上的电压与模型形状和幅值相似。
扭矩常数的计算
将流动耦合参数化的另一种方法是在PMSM单元设置中选择转矩常数以进行*永磁体磁通联动参数化 (指定扭矩常数)。
在本例中,我们不会在模型中更改此设置,而是考虑计算扭矩常数的过程。:
扭矩常数也可用于对流动耦合进行参数化。 . 要做到这一点,在参数参数化永磁体的磁通量选择一个选项扭矩常数。 在本例中,我们将保留所选的参数化方法,但计算 基于测量结果:
-绕组中的峰值电流值a相 ;
-施加在电机轴上的扭矩。
从模型读取数据:
I_model = collect(results2["I_model"]).value; # 在PMSM模型中测量的电流
I_exp = collect(results2["I_exp"]).value; # 来自实验装置的电流
T_exp = collect(results2["T_exp"]).value; # 真正引擎上的时刻
using Statistics
T = abs(mean(T_exp));
window_size = 1000;
I_exp_filt = filt(ones(window_size) / window_size, 1, I_exp);
I_exp_peak = (maximum(I_exp_filt)-minimum(I_exp_filt))/2;
Kt = 2/3*T/I_exp_peak;
println("Константа крутящего момента: $Kt Н∙м/А")
让我们比较实验电机的a相绕组中的电流和模型:
plot(t, I_exp, title="实验", xlabel="时间,c", ylabel="电流,A", w = 2, label="实验设置")
plot!(t, I_model, title="模型", xlabel="时间,c", ylabel="电流,A", w = 2, label="PMSM模型")
计算的反电动势系数和扭矩常数具有相似的数值。: 和 由于它们与永磁体的磁通耦合有关 通过数对电机极 :