估计控制增益和使用工具函数
对作为磁场定向控制 (FOC) 算法一部分的转速和转矩控制环执行控制参数调节。Motor Control Blockset™ 为您提供了多种方法来计算电机、逆变器和控制器可用的系统或模块传递函数的控制环增益:
使用 Field Oriented Control Autotuner 模块。
使用 Simulink® Control Design™。
使用模型初始化脚本。
磁场定向控制自动调节器
Motor Control Blockset 的 Field-Oriented Control Autotuner 模块使您能够实时自动调节磁场定向控制 (FOC) 应用中的 PID 控制环。您可以自动调节与以下环路相关联的 PID 控制器(有关更多详细信息,请参阅How to Use Field Oriented Control Autotuner Block):
直轴(d 轴)电流环
交轴(q 轴)电流环
转速环
对于该模块调节的每个环路,Field-Oriented Control Autotuner 模块以闭环方式执行自动调节试验,而不使用与该环路相关联的参数化模型。该模块使您能够指定模块调节控制环的顺序。当针对一个环路运行调节试验时,该模块对其他环路不起作用。有关 FOC 自动调节器的更多详细信息,请参阅Field Oriented Control Autotuner和使用 Field Oriented Control Autotuner 调节 PI 控制器。
Simulink Control Design
Simulink Control Design 可用于设计和分析在 Simulink 中建模的控制系统。您可以自动调节任意 SISO 和 MIMO 控制架构,包括 PID 控制器。您可以将 PID 自动调节部署到嵌入式软件以实时自动计算 PID 增益。
您可以找到工作点并计算不同工况下 Simulink 模型的精确线性化。Simulink Control Design 提供的工具可用于计算基于仿真的频率响应,而无需修改您的模型。有关详细信息,请参阅https://www.mathworks.com/help/slcontrol/index.html。
模型初始化脚本
本节介绍 Motor Control Blockset 示例如何估计实现磁场定向控制所需的控制增益。例如,对于连接到正交编码器的 PMSM,下列步骤描述使用初始化脚本根据系统详细信息计算控制环增益值的过程:
在 MATLAB® 中打开示例的初始化脚本 (
.m
) 文件。要查找关联的脚本文件名,请执行以下操作:选择建模 > 模型设置 > 模型属性以打开模型属性对话框。
在“模型属性”对话框中,导航到回调选项卡 > InitFcn 以查找 Simulink 在运行该示例之前打开的脚本文件的名称。
下图显示初始化脚本 (
.m
) 文件的示例。使用工作区编辑控制项变量值。例如,要更新定子电阻 (
Rs
),请使用变量pmsm
将参数值添加到Rs
字段。与目标模型相关联的模型初始化脚本会调用以下函数,并用必要的变量设置工作区。
模型初始化脚本 模型初始化脚本调用的函数 描述 与目标模型相关联的脚本 mcb_SetPMSMMotorParameters
该函数的输入是 PMSM 的类型(例如 BLY171D)。
该函数在 MATLAB 工作区中填充名为
pmsm
的结构体,该结构体由模型使用。它还计算所选电机的永磁磁通和额定转矩。
您可以通过为新电机添加额外的 switch-case 来扩展该函数。
此函数还将通过运行参数估计获得的结构体
motorParam
加载到结构体pmsm
。如果结构体motorParam
在 MATLAB 工作区中不可用,该函数将加载默认参数。mcb_SetACIMMotorParameters
该函数的输入是交流感应电机的类型(例如 EM_Synergy)。
该函数在 MATLAB 工作区中填充名为
acim
的结构体,该结构体由模型使用。您可以通过为新电机添加额外的 switch-case 来扩展该函数。
此函数还将通过运行参数估计获得的结构体
motorParam
加载到结构体acim
。如果结构体motorParam
在 MATLAB 工作区中不可用,该函数将加载默认参数。mcb_SetInverterParameters
该函数的输入为逆变器类型(例如 BoostXL-DRV8305)。
该函数在 MATLAB 工作区中填充名为
inverter
的结构体,该结构体由模型使用。该函数还计算所选逆变器的逆变器电阻。
您可以通过为新逆变器添加额外的 switch-case 来扩展该函数。
mcb_SetProcessorDetails
该函数的输入是处理器类型(例如 F28379D)和脉冲宽度调制 (PWM) 开关频率。
该函数在 MATLAB 工作区中填充名为
target
的结构体,该结构体由模型使用。该函数还计算 PWM 计数器周期,该周期是目标模型中 ePWM 模块的参数。
您可以通过为新处理器添加额外的 switch-case 来扩展该函数。
mcb_getBaseSpeed
该函数的输入是电机和逆变器参数。
该函数计算 PMSM 的基转速。
在 MATLAB 命令行窗口中键入
help mcb_getBaseSpeed
或参阅获得基转速一节来了解更多详细信息。mcb_SetPUSystem
该函数的输入是电机和逆变器参数。
该函数设置电压、电流、转速、转矩和功率的标幺制基值。
该函数在 MATLAB 工作区中填充名为
PU_System
的结构体,该结构体由模型使用。mcb_SetControllerParameters
该函数的输入是电机和逆变器参数、标幺制基值、PWM 开关时间周期、控制系统的采样时间和转速控制器的采样时间。
该函数计算比例积分 (PI) 参数(Kp、Ki)以实现磁场定向控制。
该函数在 MATLAB 工作区中填充名为
PI_params
的结构体,该结构体由模型使用。有关更多详细信息,请参阅获得控制器增益一节。
mcb_updateInverterParameters
该函数的输入是电机和逆变器参数。
该函数根据所选硬件和电机更新逆变器参数。
下表说明您可以更新的每个控制参数的有用变量。
注意
如果您无法更新与示例模型相关联的模型初始化脚本,可以尝试在 Windows® 系统上以管理员模式启动 MATLAB。
控制参数类别 | 控制参数名称 | MATLAB 工作区变量 |
---|---|---|
电机参数 | 制造商型号 | pmsm.model |
制造商序列号 | pmsm.sn | |
极对 | pmsm.p | |
定子电阻(Ohm) | pmsm.Rs | |
d 轴定子绕组电感(亨) | pmsm.Ld | |
q 轴定子绕组电感(亨) | pmsm.Lq | |
反电动势常量 (V_line(peak)/krpm) | pmsm.Ke | |
电机惯量 (kg.m2) | pmsm.J | |
摩擦常量 (N.m.s) | pmsm.F | |
永磁磁通 (WB) | pmsm.FluxPM | |
额定转矩 | pmsm.T_rated | |
Nbase | pmsm.N_base | |
| pmsm.N_max | |
额定电流 | pmsm.I_rated | |
位置解码器 | QEP 索引和霍尔位置偏移量校正 | pmsm.PositionOffset |
每转的正交编码器刻线数 | pmsm.QEPSlits | |
逆变器参数 | 制造商型号 | inverter.model |
制造商序列号 | inverter.sn | |
逆变器的直流母线电压 (V) | inverter.V_dc | |
逆变器允许的最大电流 (A) | inverter.I_trip | |
MOSFET 的导通电阻(欧姆) | inverter.Rds_on | |
电流感测的分流电阻(欧姆) | inverter.Rshunt | |
电机遇到的每相板电阻(欧姆) | inverter.R_board | |
电流传感器的 ADC 偏移量(Ia 和 Ib) |
| |
电流传感器自动校准 ADC 偏移量的最大限值(Ia 和 Ib) | inverter.CtSensOffsetMax | |
电流传感器自动校准 ADC 偏移量的最小限值(Ia 和 Ib) | inverter.CtSensOffsetMin | |
启用电流感测 ADC 的自动校准 | inverter.ADCOffsetCalibEnable | |
由 SPI 配置的 ADC 增益因子 | inverter.ADCGain | |
逆变器类型: 1 - 高电平有效使能逆变器 0 - 低电平有效使能逆变器 | inverter.EnableLogic | |
电流进入电机的约定: 1 - 电流感测放大器将进入电机的电流感测为正 –1 - 电流感测放大器将进入电机的电流感测为负 | inverter.invertingAmp | |
逆变器电流感测电路的参考电压 (V) | inverter.ISenseVref | |
对应于 1 安培电流的逆变器电流感测电路的输出电压 (V/A) 可以使用数据表中的电流分流电阻值 (
| inverter.ISenseVoltPerAmp | |
由逆变器电流感测电路测得的最大可测量峰值-中性点电流 (A) | inverter.ISenseMax | |
处理器 | 制造商型号 | target.model |
制造商序列号 | target.sn | |
CPU 频率 | target.CPU_frequency | |
PWM 频率 | target.PWM_frequency | |
PWM 计数器周期 | target.PWM_Counter_Period | |
ADC 的参考电压 (V) | Target.ADC_Vref | |
12 位 ADC 的最大计数输出 | Target.ADC_MaxCount | |
串行通信的波特率 | Target.SCI_baud_rate | |
标幺制 | 基电压(V) | PU_System.V_base |
基电流(A) | PU_System.I_base | |
基转速(rpm) | PU_System.N_base | |
基转矩(Nm) | PU_System.T_base | |
基功率(瓦特) | PU_System.P_base | |
目标设备的数据类型 | 数据类型(定点或浮点)选择 | dataType |
采样时间值 | 转换器的开关频率 | PWM_frequency |
PWM 开关时间周期 | T_pwm | |
电流控制器的采样时间 | Ts | |
转速控制器的采样时间 | Ts_speed | |
仿真采样时间 | Ts_simulink | |
电机的仿真采样时间 | Ts_motor | |
逆变器的仿真采样时间 | Ts_inverter | |
控制器参数 | Iq 控制器的比例增益 | PI_params.Kp_i |
Iq 控制器的积分增益 | PI_params.Ki_i | |
Id 控制器的比例增益 | PI_params.Kp_id | |
Id 控制器的积分增益 | PI_params.Ki_id | |
转速控制器的比例增益 | PI_params.Kp_speed | |
转速控制器的积分增益 | PI_params.Ki_speed | |
弱磁控制器的比例增益 | PI_params.Kp_fwc | |
弱磁控制器的积分增益 | PI_params.Ki_fwc | |
传感器延迟参数 | 电流传感器延迟 | Delays.Current_Sensor |
转速传感器延迟 | Delays.Speed_Sensor | |
低通转速滤波器的延迟 | Delays.Speed_Filter | |
控制器延迟参数 | 电流控制环的阻尼因子 (ζ) | Delays.OM_damping_factor |
转速控制环的对称最佳因子 | Delays.SO_factor_speed |
注意
对于预定义的处理器和驱动程序,模型初始化脚本使用默认值。
模型初始化脚本使用以下函数来执行计算:
控制参数类别 | 函数 | 功能 |
---|---|---|
电机的基转速 | mcb_getBaseSpeed | 计算额定电压和额定负载下 PMSM 的基转速。 有关详细信息,请在 MATLAB 命令提示符下键入 |
给定电机和逆变器的电机特性 | mcb_getCharacteristics | 获得 PMSM 电机的以下驱动特性。
有关详细信息,请在 MATLAB 命令提示符下键入 有关详细信息,请参阅获取电机特性一节。 |
mcb_getCharacteristicsAcim | 获得感应电机的以下电机特性。
获得感应电机的以下驱动特性。
有关详细信息,请在 MATLAB 命令提示符下键入 有关详细信息,请参阅获取电机特性一节。 | |
控制算法参数 | mcb_SetControllerParameters | 计算以下 PI 控制器的增益:
有关详细信息,请参阅获得控制器增益一节。 |
您所使用的电机和逆变器的控制分析 | mcb_getControlAnalysis | 对磁场定向电机控制系统中使用的 PI 控制器的计算增益执行频域分析。 注意 此功能需要 Control System Toolbox™。 有关详细信息,请在 MATLAB 命令提示符下键入 |
获得基转速
函数 mcb_getBaseSpeed
计算给定电源电压下 PMSM 的基转速。基转速是在额定电压和额定负载下,弱磁区域之外的最大电机转速。
当您调用此函数(例如 base_speed = mcb_getBaseSpeed(pmsm,inverter)
)时,它会返回给定 PMSM 和逆变器组合的基转速(以 rpm 为单位)。该函数接受以下输入:
PMSM 参数结构体。
逆变器参数结构体。
以下方程描述函数执行的计算:
逆变器电压约束通过计算 d 轴和 q 轴电压来定义:
电流极限圆定义电流约束,可以被视为:
在以上方程中,对于表贴式 PMSM, 为零。对于内置式 PMSM,考虑与 MTPA 对应的值 和 。
使用上述关系,我们可以按如下所示计算基转速:
其中:
是对应于定子电压频率的电角速度(弧度/秒)。
是电机的机械基转速(弧度/秒)。
是 d 轴电流(安培)。
是 q 轴电流(安培)。
是当 为零时的 d 轴电压(伏特)。
是当 为零时的 q 轴电压(伏特)。
是 d 轴绕组电感(亨)。
是 q 轴绕组电感(亨)。
是定子相绕组电阻(欧姆)。
是永磁磁链(韦伯)。
是 d 轴电压(伏特)。
是 q 轴电压(伏特)。
是供给电机的相对于中性点电压(峰值)的基波最大值(伏特)。
是供给逆变器的直流电压(伏特)。
是电机的最大相电流(峰值)(安培)。
是电机极对数。
获取电机特性
函数 mcb_getCharacteristics
计算 PMSM 的转矩、功率和电流特性,这有助于您开发电机的控制算法。
该函数返回给定 PMSM 的以下特性:
转矩对转速
功率对转速
Idq 对转速
Ipeak 对转速
函数 mcb_getCharacteristicsAcim
计算感应电机的电机特性和驱动特性,这有助于您开发电机的控制算法。
该函数返回给定感应电机的以下电机特性:
转矩对转速
功率对转速
该函数返回给定感应电机的以下驱动特性:
转矩对转速
功率对转速
Idq 对转速
Ipeak 对转速
获得控制器增益
函数 mcb_SetControllerParameters
计算磁场定向电机控制系统中使用的 PI 控制器的增益。
您可以使用以下命令调用函数 mcb_SetControllerParameters
:
PI_params = mcb_SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed);
该函数返回 FOC 算法中使用的 PI 控制器的增益:
直轴(d 轴)电流环
交轴(q 轴)电流环
转速环
弱磁控制环
该函数接受以下输入:
pmsm object
inverter object
PU system params
T_pwm
Ts_control
Ts_speed
该函数不对任何特性绘图。
补偿器的设计取决于应用于电机控制系统的经典频率响应分析。我们对电流控制器使用基于模数最优值 (MO) 的设计,对转速控制器使用基于对称最优值 (SO) 的设计。
该函数根据输入参量自动计算其他所需参数(例如,延迟、阻尼因子)。
您可以通过为指定系统延迟、阻尼因子和对称最优值因子的函数提供可选输入来修改默认系统响应:
PI_params = mcb_SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed,Delays);
阻尼因子 (ζ) 定义一个二阶系统标准型的动态行为,其中 0
< ζ < 1
[1]。欠阻尼系统比临界阻尼或过阻尼系统能更快地接近最终值。在无振荡响应系统中,临界阻尼系统的响应最快。过阻尼系统对任何输入的响应都始终很慢。此参数的默认值为 。
对称最优因子 (a) 定义将穿越频率置于两个转角频率的几何均值处,以获得最大相位裕度,从而实现转速环的最优阻尼,其中 a > 1
[2]。此参数的默认值为 1.2
。
此示例说明如何自定义参数:
% Sensor Delays Delays.Current_Sensor = 2*Ts; %Current Sensor Delay Delays.Speed_Sensor = Ts; %Speed Sensor Delay Delays.Speed_Filter = 20e-3; %Delay for Speed filter (LPF) % Controller Delays Delays.OM_damping_factor = 1/sqrt(2); %Damping factor for current control loop Delays.SO_factor_speed = 1.5; %Symmetrical optimum factor 1 < x < 20 % Controller design PI_params = mcb_SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed,Delays);
执行控制分析
函数 mcb_getControlAnalysis
执行 PMSM FOC 电流控制系统的基本控制分析。该函数对磁场定向电机控制系统中使用的计算所得的 PI 控制器增益执行频域分析。
注意
此函数需要 Control System Toolbox。
当您调用此函数(例如 mcb_getControlAnalysis(pmsm,inverter,PU_System,PI_params,Ts,Ts_speed)
)时,它将针对电流控制环或子系统执行以下函数:
闭环电流控制系统的传递函数
根轨迹
波特图
稳定裕度(PM 和 GM)
阶跃响应
极零点图
该函数会绘制对应的图:
参考
[1] Ogata, K. (2010). Modern control engineering. Prentice hall.
[2] Leonhard, W. (2001). Control of electrical drives. Springer Science & Business Media. pp. 86.