Resolver Decoder
库:
Motor Control Blockset /
Sensor Decoders
描述
Resolver Decoder 模块为连接到电机轴的旋转变压器计算以下内容:
电机的机械角位置
电机的电角位置的正弦和余弦值
电机的机械转速
旋转变压器使用初级激励输入信号生成调制的二次正弦和余弦波形,然后由 ADC 进行采样。旋转变压器利用一个绕组到两个绕组的变换。正弦和余弦调制发生在二次绕组中,这是因为这些绕组的设计和构造将它们放置在相隔 90 度的位置。
有关该模块使用的算法的更多详细信息,请参阅算法。
端口
输入
V Sin — 采样的二次正弦信号
矢量
旋转变压器输出的采样的二次正弦波形。当使用正弦激励时,需要对该信号进行归一化,使其位于范围 [-1, 1] 内,并以 0 为中心。
数据类型: single
| double
| fixed point
V Cos — 采样的二次余弦信号
矢量
旋转变压器输出的采样的二次余弦波形。当使用正弦激励时,需要对该信号进行归一化,使其位于范围 [-1, 1] 内,并以 0 为中心。
数据类型: single
| double
| fixed point
输出
θm — 电机机械位置
标量
旋转变压器(和电机)的机械角位置,以度、弧度或标幺为单位。
数据类型: single
| double
| fixed point
sinθe — 电机位置的正弦
标量
电机电角位置的正弦值。
数据类型: single
| double
| fixed point
cosθe — 电机位置的余弦
标量
电机电角位置的余弦值。
数据类型: single
| double
| fixed point
ωm — 电机机械转速
标量
电机的机械转速,以度/秒、弧度/秒、RPM 或标幺为单位。
数据类型: single
| double
| fixed point
参数
Computation method — 模块使用的计算方法
Arithmetic (默认) | PLL
将 Resolver Decoder 模块设置为使用以下计算方法之一:
Arithmetic - 使用基于算术方程和 atan2 运算的算法来计算模块输出。有关此方法的详细信息,请参阅本页的算法部分。
Sine and Cosine electrical position - 使用基于 PLL 的算法来计算模块输出。有关此方法的详细信息,请参阅 PLL with Feed Forward。
Block Output — 模块的输出
Mechanical position (默认) | Sine and Cosine electrical position | Mechanical speed
将 Resolver Decoder 模块设置为输出以下一项或多项内容:
Mechanical position - 使模块能够计算电机的机械位置。
Sine and Cosine electrical position - 使模块能够计算电机电气位置的正弦和余弦值。
Mechanical speed - 使模块能够计算电机的机械转速。
输入参数
Number of pole-pairs for resolver — 旋转变压器极对计数
1
(默认) | 标量
旋转变压器中可用的极对数。
Type of excitation method — 旋转变压器激励方法
Sinusoidal Excitation (默认) | Square Pulse Excitation
用于获得二次正弦和余弦波形的旋转变压器激励方法。
Enable input normalization — 使模块能够归一化输入
off (默认) | on
使用方波脉冲激励方法时,仅当选择此参数时,此模块才会归一化二次正弦和余弦输入。
依存关系
要启用此参数,请将 Type of excitation method 设置为 Square Pulse Excitation。
Discrete step size (s) — 采样时间,在此采样时间过后模块将再次执行
50e-6
(默认) | 标量
每两个连续的模块执行实例之间的固定时间间隔(以秒为单位)。
依存关系
要启用此参数,请将 Block Output 设置为 Mechanical speed。
正弦和余弦电气位置的输入
Number of pole-pairs for motor — 电机极对计数
3
(默认) | 标量
电机中可用的极对数。
依存关系
要启用此参数,请将 Block Output 设置为 Sine and Cosine electrical position。
Position offset (mechanical radians) — 旋转变压器机械位置偏移量(以弧度为单位)
0
(默认) | 标量
旋转变压器机械位置和电机机械位置之间的偏移量(以弧度为单位)。
依存关系
要启用此参数,请将 Block Output 设置为 Sine and Cosine electrical position。
Integer rounding mode — 定点运算的舍入模式
Zero (默认) | Simplest
选择在计算电机电气位置的正弦和余弦值时使用的定点运算的舍入模式。
Simplest - 模块将生成紧凑的舍入代码,计算速度更快。然而,随着时间的推移,这种模式可能会在正弦和余弦电气位置输出中增加偏差。
Zero - 模块将确保舍入代码不会在正弦和余弦电气位置输出中增加任何偏差。但此模式会导致计算速度变慢。
依存关系
要启用此参数,请将 Block Output 设置为 Sine and Cosine electrical position。
正弦激励方法的输入
Phase delay (electrical radians) — 输入信号的相位延迟
0.1746
(默认) | 标量
模块添加到 Sin
和 Cos
输入端口信号的相位延迟。
依存关系
要启用此参数,请将 Type of excitation method 设置为 Sinusoidal Excitation。
Number of samples per excitation cycle — 输入信号每个周期的采样数
16
(默认) | 大于零的偶数标量
Sin
和 Cos
输入端口信号的一个周期中可用的采样数。
依存关系
要启用此参数,请将 Type of excitation method 设置为 Sinusoidal Excitation。
输出参数
Position unit — 位置输出的单位
Radians (默认) | Degrees | Per-unit
模块的机械位置输出的单位。
依存关系
要启用此参数,请将 Block Output 设置为 Mechanical position。
Speed unit — 转速输出单位
Degrees/Sec (默认) | Radians/Sec | RPM | Per-unit
模块的机械转速输出的单位。
依存关系
要启用此参数,请将 Block Output 设置为 Mechanical speed。
Base speed (RPM) — 电机的基转速 (RPM)
2000
(默认) | 标量
电机的额定转速(以 RPM 为单位)。
依存关系
要启用此参数,请将 Speed unit 设置为 Per-Unit,并将 Block Output 设置为 Mechanical speed。
算法
该模块使用二次正弦与余弦波形的正确采样和归一化版本来解调正弦与余弦信号,从而确定旋转变压器的电气位置。它根据旋转变压器中可用的极对数将此位置转换为其机械等效位置。所得的值表示电机的机械位置。
该模块还使用解调的正弦与余弦信号(旋转变压器电角的正弦与余弦)来计算电机转速以及电机电气位置的正弦和余弦值。
旋转变压器激励方法
该模块支持以下激励方法:
正弦激励 - 此方法中的主要激励信号为正弦信号。这种方法在调制后生成正弦二次波形。
方波脉冲激励 - 此方法中的主要激励信号是方波脉冲。这种方法在调制后生成方波脉冲二次信号。
正弦激励
使用正弦激励方法时,该模块期望二次正弦和余弦旋转变压器信号默认以每个激励信号周期 16 个采样的速率进行采样,如图所示。该模块还可以向采样的正弦和余弦信号添加关于激励信号的相位延迟。
使用正弦激励时,该模块不会自动归一化调制的正弦和余弦旋转变压器输出。在将这些调制的波形输入模块之前,需要对其进行归一化处理(在 [-1,1] 范围内,以 0 为中心)。
然后,该模块会解调采样的信号。它会计算一个信号周期的平均振幅和峰值振幅以及峰值振幅的符号,如下所示
,
和
其中:
是一个信号周期的平均振幅
是每个激励周期的采样数
是一个信号周期的峰值振幅
该模块计算旋转变压器的电角位置,如下所示
其中:
是二次正弦信号的
是二次余弦信号的
是旋转变压器的电角位置
这使得该模块能够解调并提取正弦和余弦包络。该模块使用这些解调包络信号来计算模块输出。
方波脉冲激励
使用方波脉冲激励方法时,该模块期望以每个脉冲一个采样的速率对二次正弦和余弦信号进行采样,如下所示。
如果选择 Enable input normalization 参数,则在接收到离散时间采样波形后,模块会自动对波形进行归一化(在 [-1,1] 范围内,以 0 为中心)。要在模块内执行归一化,请确保两个输入信号具有相等的峰值幅值。
然后,该模块会解调正弦和余弦信号,并使用解调后的信号计算模块输出。
电机机械位置的计算
当使用正弦或方波脉冲激励时,该模块使用解调波形来计算旋转变压器的电气位置。此旋转变压器位置可以使用正斜坡(顺时针旋转)或负斜坡(逆时针旋转)来更改。
为了正确检测绕回(从 0 PU 到 1 PU 或从 1 PU 到 0 PU),该模块测量两个连续采样之间的差异。由于输入信号频率始终小于采样频率的一半,因此小于 -0.5 PU 的差值表示正斜坡,小于 +0.5 PU 的差值表示负斜坡。
在识别旋转变压器电气位置方向后,该模块通过对斜坡信号进行外插,使用旋转变压器极对数来计算旋转变压器(和电机)的机械位置。
例如,对于三极对旋转变压器,该模块对斜坡信号进行外插以获得三倍于原始幅值的幅值。然后将该值除以 3 来获得旋转变压器的机械位置,如图所示。
本节说明此模块如何使用算术运算来计算电机的机械位置。该模块也可以使用基于锁相环 (PLL) 的算法来计算机械位置。有关基于 PLL 的计算方法的详细信息,请参阅 PLL with Feed Forward。
电机位置的正弦和余弦计算
当使用正弦或方波脉冲激励时,该模块会生成解调的正弦和余弦波形(旋转变压器电气位置的正弦和余弦)。从这些解调波形中,该模块根据电机和旋转变压器极对的比率,使用算术计算来计算电机电气位置的正弦和余弦值。为了适应可能的不同比率,该模块使用单位模块,而单位模块又使用基于通用二进制编码的十进制 (BCD) 的结构。
例如,如果电机与旋转变压器极对的比率 (n) 为 5,下图显示基于 BCD 的算法,该算法最终生成电机电气位置的正弦和余弦。
因此,n = 电机极对数/旋转变压器极对数 = 5。
n = 5
的 BCD 码是 [0 0 1 0 1]
或 [24 23 22 21 20]
。此模块为此序列配置算法,如下所示。
该模块支持的 n(整数)的值的范围是从 1 到 31。
注意
该模块根据比率 n 优化计算。例如,如果 n = 5
,则该模块仅通过利用以下两个子系统来计算 sin_2th
和 cos_2th
两次。
同样,每当开关不绕过信号时,它都会如图所示终止信号,以确保生成最少且优化的代码。
本节说明此模块如何使用算术运算来计算电机位置的正弦和余弦等效值。该模块也可以使用基于锁相环 (PLL) 的算法来计算电气位置的正弦和余弦等效值。有关基于 PLL 的计算方法的详细信息,请参阅 PLL with Feed Forward。
电机转速的计算
当使用正弦或方波脉冲激励时,该模块会生成解调的正弦和余弦波形(旋转变压器电气位置的正弦和余弦)。根据这些波形,该模块使用此处描述的算法来计算电机机械转速。
首先,该模块计算这些离散时间采样信号的两个采样之间的差值,并将它们相加。
在理想情况下,当使用连续时间信号时:
其中,ωr 是关于时间的常量。
由于我们使用离散时间采样信号:
如果 ωxTs 非常小,则 sinωrTs 大约等于 ωrTs。这是 speed x time
,因此,此项表示采样持续时间的位置差 Δθ
。
为了获得更精确的转速,我们使用 sin-1 的泰勒级数展开式来添加 的以下补偿。
由于误差可以忽略不计,因此可以认为前面的 ωr 值是精确的。因此,我们可以认为:
其中,Pr 是旋转变压器的极对数。
当使用定点数据类型时,该模块将增益 分别相乘,以避免数据溢出。
此处, 是模块应用于图中所示计算的转速的近似补偿,用于获得实际机械转速的更精确版本。
其中:
g 是转速转换因子
θ 是旋转变压器的电气位置
ωr 是旋转变压器的电角速度
Δθ 是每个采样的旋转变压器电气位置差异
ω 是旋转变压器(或电机)的机械转速
Ts 是正弦和余弦包络信号的采样时间
注意
所有模块输入都应具有相同的振幅和数据类型(有符号定点或浮点)。
本节说明此模块如何使用算术运算来计算电机转速。该模块也可以使用基于锁相环 (PLL) 的算法来计算电机转速。有关基于 PLL 的计算方法的详细信息,请参阅 PLL with Feed Forward。
参考
[1] The block's capability of resolver excitation using square-pulse carrier frequency is based on the collaboration (IITD/FT/03/2038/2020) between The MathWorks, Inc. and Indian Institute of Technology (IIT), Delhi - with inputs from Prof. Amit Kumar Jain (Faculty Consultant-Incharge, EE, IIT Delhi) and Apurva Verma (PhD student, IIT Delhi).
扩展功能
C/C++ 代码生成
使用 Simulink® Coder™ 生成 C 代码和 C++ 代码。
定点转换
使用 Fixed-Point Designer™ 设计和仿真定点系统。
版本历史记录
在 R2020a 中推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)