估计控制增益并调节控制参数
调节作为磁场定向控制 (FOC) 算法一部分的转速和转矩控制环。您可以从以下方法中选择,以计算电机、逆变器和控制器可用的系统或模块传递函数的控制环增益:
使用 Field Oriented Control Autotuner 模块。
使用 FOC Default Controller Gains 模块。
使用 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 控制器。
FOC Default Controller Gains 模块
Motor Control Blockset 的 FOC Default Controller Gains 模块使您能够将控制增益计算集成到控制器代码中。使用此库模块,您可以在不同电机设置之间切换时,在运行时确定控制器增益而无需重新编译代码。
Simulink Control Design
Simulink Control Design 可用于设计和分析在 Simulink 中建模的控制系统。您可以自动调节任意单输入单输出 (SISO) 和多输入多输出 (MIMO) 控制架构,包括 PID 控制器。您可以将 PID 自动调节部署到嵌入式软件以实时自动计算 PID 增益。
您可以找到工作点并计算不同工况下 Simulink 模型的精确线性化。Simulink Control Design 提供的工具可用于计算基于仿真的频率响应,而无需修改您的模型。有关详细信息,请参阅离线频率响应估计 (Simulink Control Design)。
模型初始化脚本
您可以使用 Motor Control Blockset 示例附带的初始化脚本来初始化估计控制增益所需的控制参数。有关初始化函数的列表,请参阅初始化控制参数。有关控制增益估计函数的列表,请参阅计算控制增益并执行控制分析。
例如,对于连接到正交编码器的 PMSM,下列步骤描述使用初始化脚本根据系统详细信息初始化控制参数的过程:
打开使用初始化脚本的示例。例如:
openExample('mcb/FOCQepExample')在 MATLAB® 中打开示例的初始化脚本 (
.m) 文件。要查找关联的脚本文件名,请执行以下操作:打开示例模型。选择建模 > 模型设置 > 模型属性。“模型属性”对话框将打开。

在“模型属性”对话框中,导航到回调选项卡 > InitFcn 字段。此字段包含 Simulink 在模型编译开始时执行的脚本的名称。

下图显示
mcb_pmsm_foc_qep_f28069m_data.m初始化脚本的内容。
使用工作区编辑控制项变量值。例如,要更新定子电阻 (
Rs),请使用变量pmsm将参数值添加到Rs字段。
初始化控制参数
与目标模型相关联的模型初始化脚本会调用以下函数,并用必要的变量设置工作区。
| 模型初始化脚本调用的函数 | 描述 |
|---|---|
mcb.getPMSMParameters | 函数的输入是 PMSM 的品牌和制造商名称(例如,BLY171D)。 该函数在 MATLAB 工作区中返回名为 它还计算所选电机的永磁磁通和额定转矩。 如果指定新电机的名称,该函数将返回包含默认值的 此函数还将通过运行参数估计获得的结构体 |
mcb.getACIMParameters | 函数的输入是 ACIM 的品牌和制造商名称(例如,EM_Synergy)。 该函数在 MATLAB 工作区中返回名为 如果指定新电机的名称,该函数将返回包含默认值的 此函数还将通过运行参数估计获得的结构体 |
mcb.getInverterParameters | 函数的输入是逆变器的品牌和制造商名称(例如,BoostXL-DRV8305)。 该函数在 MATLAB 工作区中返回名为 该函数还计算所选逆变器的逆变器电阻。 如果指定新逆变器的名称,该函数将返回包含默认值的 |
mcb.getProcessorParameters | 该函数的输入是处理器类型(例如 F28379D)和脉冲宽度调制 (PWM) 开关频率。 该函数在 MATLAB 工作区中返回名为 该函数还计算 PWM 计数器周期,该周期是目标模型中 ePWM 模块的参数。 |
mcb.getPUSystemParameters | 该函数的输入是电机和逆变器参数。 该函数设置电压、电流、转速、转矩和功率的标幺制基值。 该函数在 MATLAB 工作区中返回名为 |
mcb.getSISystemParameters | 该函数的输入是电机和逆变器参数。 该函数设置电压、电流、转速、转矩和功率的 SI 制基值。 该函数在 MATLAB 工作区中返回名为 |
mcb.updateInverterParameters | 该函数的输入是电机和逆变器参数。 该函数根据所选硬件和电机更新逆变器参数。 |
注意
对于预定义的处理器和驱动,模型初始化脚本使用默认值。
计算控制增益并执行控制分析
模型初始化脚本使用这些函数来估计实现磁场定向控制所需的控制增益。
| 计算出的控制参数类别 | 函数 | 功能 |
|---|---|---|
| 电机的基转速 | mcb.getMotorBaseSpeed | 计算额定电压和额定负载下 PMSM 的基转速。 基转速是在额定电压和额定负载下,弱磁区域之外的最大电机转速。 |
| 给定电机和逆变器的电机特性 | mcb.PMSMCharacteristics | 获得 PMSM 电机的以下驱动特性。
|
mcb.ACIMCharacteristics | 获得感应电机的以下电机特性。
获得感应电机的以下驱动特性。
| |
| 控制算法参数 | mcb.getPIControllerParameters | 计算以下 PI 控制器的增益:
要为 PMSM 计算 PI 控制器增益,请改用 |
mcb.calcFOCGains | 计算这些 PI 控制器的增益和传递函数:
| |
| 您所使用的电机和逆变器的控制分析 | mcb.getMotorControlAnalysis | 对磁场定向电机控制系统中使用的 PI 控制器的计算增益执行频域分析。 注意 此函数需要 Control System Toolbox™。 |