标幺制
Motor Control Blockset™ 使用以下国际单位制 (SI):
量 | 单位 | 符号 |
---|---|---|
电压 | 伏特 | V |
电流 | 安培 | A |
转速 | 弧度/秒 每分钟转数 | 弧度/秒 rpm |
转矩 | 牛顿-米 | N.m |
功率 | 瓦特 | W |
注意
转速的 SI 单位是 rad/s。然而,大多数制造商以 rpm 为单位指定电机转速。Motor Control Blockset 更多地使用 rpm 作为转速单位,而不是 rad/s。不过,您可以根据自己的喜好使用任一单位。
标幺制
标幺 (PU) 制在电气工程中通常用来表示电压、电流、功率等量值。它用于电力系统分析的变压器和 AC 电机。嵌入式系统工程师还使用此制式来优化代码生成和可扩展性,尤其是在处理定点目标时。
对于给定的量(如电压、电流、功率、转速和转矩),PU 制用基量来表示值:
一般情况下,大多数系统选择系统的标称值作为基值。有时,系统也可能选择最大可测量值作为基值。建立基值后,所有信号都以相对于所选基值的 PU 表示。
例如,在电机控制系统中,如果电流的所选基值为 10A,则 2A 电流的 PU 表示可以是 (2/10) PU = 0.2 PU。
同样,
例如 0.2 PU 的 SI 单位表示 =(0.2 x 基值)= (0.2 x 10)A。
标幺制和 Motor Control Blockset
Motor Control Blockset 使用以下约定来定义电压、电流、转速、转矩和功率的基值。
量 | 表示 | 约定 |
---|---|---|
基电压 | Vbase | 这是逆变器提供的最大相电压。 对于空间矢量 PWM,通常是 。 对于正弦 PWM,它是 。 对于不连续 PWM (DPWM),它是 。 有关 PWM 方法的详细信息,请参阅 PWM Reference Generator。 |
基电流 | Ibase | 这是逆变器的电流感测电路可测量的最大电流。 一般情况下(但不绝对),它是逆变器的 ISenseMax。 |
基转速 | Nbase | 这是电机的标称(或额定)转速。这也是电机在标称电压和标称负载下没有弱磁运行时可达到的最大转速。 |
基转矩 | Tbase | 此转矩是根据基电流通过数学计算推断的。从物理上讲,电机并不一定会产生此转矩。 一般来说,它是 。 |
基功率 | Pbase | 这是由基电压和基电流推断的功率。 一般来说,它是 。 |
其中:
Vdc 是您提供给逆变器的 DC 电压。
Imax 是连接到逆变器的电流传感器的 ADC 测得的最大电流。
p 是 PMSM 中可用的极对数。
FluxPM 是 PMSM 的永磁磁链。
pmsm 是保存电机变量的 MATLAB® 工作区参数结构体。
inverter 是保存逆变器变量的 MATLAB 工作区参数结构体。
PU_System 是保存 PU 制变量的 MATLAB 工作区参数结构体。
对于电压和电流值,通常可以将标称正弦电压(或电流)的峰值视为 1PU。因此,用于电压和电流的基值是 RMS 值乘以 ,或是在相-中性点之间测得的峰值。
使用 PU 制可以简化计算。Motor Control Blockset 将这些基值定义用于工具箱示例中所用算法执行的与 PU 制相关的转换。工具箱将与 PU 制相关的变量存储在 MATLAB 工作区中名为 PU_System
的结构体中。
为什么使用标幺制而不是标准 SI 单位
相对于 SI 单位,用标幺制表示信号有许多优点。此方法可以:
提高代码执行的计算效率,因此是定点目标的首选单位制式。
创建可跨许多系统使用的可扩展控制算法。
将 SI 单位转换为磁场定向控制所用的标幺制
此示例说明如何将 SI 单位转换为 PMSM 磁场定向控制的标幺制 (PU)。
以 SI 单位准备和仿真模型
运行脚本 FOCofPMSMData
将参数加载到基础工作区。请注意,脚本中的 ControllerVariant
变量设置为 SI
,这为 Control
子系统选择 SI Unit Control
变体。
FOCofPMSMData;
打开并仿真示例模型。打开数据检查器并观察 SI 单位 (rad/s) 中的磁场定向控制操作。
mdl = "FOCofPMSM";
open_system(mdl);
sim(mdl);
Simulink.sdi.view;
将模型转换为标幺制
通过计算基值来设置标幺制。
PU_System = mcb.getPUSystemParameters(pmsm,inverter);
通过将 ControllerVariant
变量设置为 PU
来为 Control
子系统配置 Per Unit Control
变体。您可以随时通过将变量重新赋给 SI
或运行 FOCofPMSMData
脚本来切换到 SI Unit Control
变体。
ControllerVariant = 'PU';
检查标幺控制子系统
检查 Per Unit Control
子系统。突出显示将信号转换为标幺值的模块,或将参数配置为标幺值的模块。
使用 convert2PU
模块将输入参考转速转换为标幺值。
hilite_system('FOCofPMSM/Control/Per Unit Control/Speed Controller/convert2PU');
将反馈系统更新为标幺值:
使用
Convert2PU
模块将输入电流反馈转换为标幺值。使用
ConvertTheta2PU
模块将测得的电机位置转换为标幺值。在
Mechanical to Electrical Position
模块中,将输入角度机械单位设置为Per unit
。在
Speed Measurement
模块中,将位置单位设置为Per unit
,将转速单位设置为Per unit based on dialog
。
hilite_system('FOCofPMSM/Control/Per Unit Control/Current Controller/Convert2PU'); hilite_system('FOCofPMSM/Control/Per Unit Control/Current Controller/ConvertTheta2PU'); hilite_system('FOCofPMSM/Control/Per Unit Control/Current Controller/Mechanical to Electrical Position'); hilite_system('FOCofPMSM/Control/Per Unit Control/Current Controller/Speed Measurement');
在 Field-Oriented Current Controller
模块中,将输入电气位置单位设置为 Per-unit
。这使得里面的 Sine-Cosine Lookup 模块能够接受以标幺值为单位的位置输入。
hilite_system('FOCofPMSM/Control/Per Unit Control/Current Controller/Field-Oriented Current Controller','green');
通过将其限值设置为 -1
和 1
来更新 PI 控制器配置。
hilite_system('FOCofPMSM/Control/Per Unit Control/Current Controller/Constant2','red');
由于电流控制器输出从 -1 到 +1 饱和,因此使用 Convert2Voltages
模块将 Vabc
输出缩放为实际电压以供给电机被控对象。
hilite_system('FOCofPMSM/Control/Per Unit Control/Current Controller/Convert2Voltages','blue');
在 SpeedController
模块中,将饱和界限更新为标幺值。将上限设为 pmsm.I_rated/PU_System.I_base
,将下限设为 -pmsm.I_rated/PU_System.I_base
。
hilite_system('FOCofPMSM/Control/Per Unit Control/Speed Controller/SpeedController');
在 FOC Default Controller Gains
模块中,将输出单位 设置为 Per-unit
。该模块需要基本转速和基本电流输入来计算以标幺值为单位的 PI 控制器增益。
hilite_system('FOCofPMSM/Control/Per Unit Control/Tune PI Controllers/FOC Default Controller Gains');
以标幺制为单位对模型进行仿真
对模型进行仿真。打开数据检查器并观察以标幺制为单位的磁场定向控制操作。
sim(mdl); Simulink.sdi.view;
当比较以 SI 为单位(左)和以标幺制为单位(右)的图时,请注意两个单位制中的控制器响应是相同的。
另请参阅
主题
- Per-Unit System of Units (Simscape Electrical)