在实时系统中使用场向控制自动调谐块调优PI控制器
这个例子通过使用面向场控制自动调谐块计算速度和电流控制器中的比例积分(PI)控制器的增益值。有关面向域控制的详细信息,请参见场向控制(FOC).
该模型支持模拟和代码生成。当你运行模型时,它使用PI控制器的简单增益值来实现速度控制运行的稳定状态。
模型只在稳定状态下开始调优。根据控制器目标(带宽和相位裕量),它在控制器输出中引入扰动。该模型利用系统对干扰的响应来计算最优控制器增益。
模型
该示例包括模型mcb_pmsm_foc_autotuner_speedgoat.
您可以将此模型用于模拟和代码生成。您可以使用open_system命令打开Simulink®模型。
open_system (“mcb_pmsm_foc_autotuner_speedgoat.slx”);
有关支持的硬件配置的详细信息,请参见生成代码并将模型部署到目标硬件中的“必需的硬件”部分。
所需MathWorks®产品2022世界杯八强谁会赢?
电机控制块集™
Simulink控制设计™
仿真软件实时™
快速山羊I/O块集
先决条件
1.示例模型中可用的电机参数是为随快羊电机控制套件
.您可以通过将这些参数替换为来自电机数据表或其他来源的值来修改任何其他电机的这些参数。
2.如果您从数据表或其他来源获得电机参数,请在与Simulink®模型相关的模型初始化脚本中更新电机和逆变器参数。有关说明,请参见模型初始化脚本.
模拟模型
这个例子支持模拟。按照以下步骤来模拟模型。
1.打开此示例中包含的模型。
2.检查在信号构建器中配置的参考速度配置文件(可在mcb_pmsm_foc_autotuner_speedgoat/系统输入/速度参考中获得)。
3.检查并更新面向域控制自动调谐器块掩码中的FOC自动调谐器参数(在控制算法/FOC_AutoTuner子系统中可用)。有关面向字段控制自动调谐器块的详细信息,请参见场向控制自动调谐器.
4.检查并更新与模型相关的模型初始化脚本中的简单增益值。
5.点击运行在模拟TAB来模拟模型。
6.使用您输入的简单增益值,验证电机达到额定速度至少一半的稳态运行。模型在第17秒开始场向控制(FOC)调谐(使用场向控制自动调谐块)。
7.调优完成后,在控制算法子系统中的显示PI参数块中观察计算出的PI控制器增益值。
8.通过使用仿真数据检查器观察新计算的PI参数的系统响应。
有关更多细节,请参见使用场向控制自动调谐器调谐PI控制器.
生成代码并将模型部署到目标硬件
本节将指导您如何生成代码并在目标硬件上运行FOC算法。
所需的硬件
此示例支持快羊电机控制套件
这包括以下组成部分:
来自速羊的额定48v和20a三相逆变器
100 W三相无刷直流电机来自马克森电机
具有4096脉冲的正交编码器
150w 254v DC电源
注意:联系Speedgoat获取对您的硬件有效的位流文件。
有关Speedgoat硬件设置的详细信息,请参见Speedgoat软件配置指南
.
在目标硬件上生成代码和运行模型
1.模拟模型并验证您正在获得所需的控制器响应。
2.完成速羊电机控制套件的硬件连接。
校准电流偏移量
1.在模型中,集合操作模式来电流偏置校正.
2.在实时选项卡,单击构建模型在目标运行下拉菜单来构建模型。
注意:不要点击目标运行因为这个示例模型不支持外部模式下的实时执行。
3.导航到Simulink构建模型的文件夹。双击文件mcb_pmsm_foc_autotuner_speedgoat.mldatx
打开“Simulink实时应用程序”对话框。
4.在“Simulink实时应用程序”对话框中,选择要连接的目标计算机。点击好吧将应用程序文件加载到硬件。
5.在MATLAB命令提示符中输入这些命令(以相同的顺序),在硬件上执行加载的应用程序。
Tg = slrealtime;
tg.start;
6.在模型成功运行之后,使用数据检查在模拟选项卡查看记录的信号。的稳定Iab_offset
信号就是当前的偏移量。
7.控件中的当前偏移值逆变器。CtSensAOffset
而且逆变器。CtSensBOffset
在与Simulink模型相关的模型初始化脚本中可用的变量。
开环控制运行电机
1.在模型中,集合操作模式来开环速度控制.
2.在实时选项卡,单击构建模型在目标运行下拉菜单来构建模型。
3.导航到Simulink构建模型的文件夹。双击文件mcb_pmsm_foc_autotuner_speedgoat.mldatx
打开“Simulink实时应用程序”对话框。
4.在“Simulink实时应用程序”对话框中,选择要连接的目标计算机。点击好吧将应用程序文件加载到硬件。
5.在MATLAB命令提示符中输入这些命令(以相同的顺序),在硬件上执行加载的应用程序。
Tg = slrealtime;
tg.start;
6.在模型执行之后,使用数据检查在模拟选项卡查看记录的信号。验证速度反馈(Speed_fb
)与参考速度(Speed_Ref
)信号。
例如,验证正参考速度有正速度反馈,位置信号(Pos_PU
)有正斜坡。
如果参考速度和速度反馈信号的符号不匹配,则更改A引导B参数(变频器和工厂模型/SpeedGoatDrivers/条件编码器块)从0到1或从1到0。然后按照本节中的步骤2到步骤6在硬件上再次执行模型。
注意:在开环速度控制模式下,电机转速限制在500转/分和1200转/分之间。
电机运行闭环控制
1.在模型中,集合操作模式来闭环速度控制.
2.设置船自动调谐按钮上的模型禁用禁用场向控制(FOC)自动调谐器。
3.在实时选项卡,单击构建模型在目标运行下拉菜单来构建模型。
4.导航到Simulink构建模型的文件夹。双击文件mcb_pmsm_foc_autotuner_speedgoat.mldatx
打开“Simulink实时应用程序”对话框。
5.在“Simulink实时应用程序”对话框中,选择要连接的目标计算机。点击好吧将应用程序文件加载到硬件。
6.在MATLAB命令提示符下输入这些命令(以相同的顺序),在硬件上执行加载的应用程序并运行电机。
Tg = slrealtime;
tg.start;
电机以信号生成器中配置的速度在闭环控制中运行。
7.检查电机是否达到稳态运行,因为如果电机转速不稳定,FOC自动调谐器将无法工作。
如果电机不能达到稳态,则在模型初始化脚本中手动修改PI参数(与模型关联),直到电机转速稳定到电机基本转速的一半。
注意:当在模型初始化脚本中调整PI参数时,电机可能会显示较慢的速度响应。
8.如果电机达到稳定的速度,按照步骤运行FOC自动调谐器。
运行FOC Autotuner
1.设置船自动调谐按钮上的模型启用启用面向场的控制自动调谐器。
2.验证操作模式设置为闭环速度控制.
3.检查和更新面向现场控制自动调谐器块掩码中的FOC自动调谐器参数(如自动调谐器触发时间和控制器目标)(在控制算法/FOC_AutoTuner子系统中可用)。有关面向字段控制自动调谐器块的详细信息,请参见场向控制自动调谐器.
4.在实时选项卡,单击构建模型在目标运行下拉菜单来构建模型。
5.导航到Simulink构建模型的文件夹。双击文件mcb_pmsm_foc_autotuner_speedgoat.mldatx
打开“Simulink实时应用程序”对话框。
6.在“Simulink实时应用程序”对话框中,选择要连接的目标计算机。点击好吧将应用程序文件加载到硬件。
7.在MATLAB命令提示符下输入这些命令(以相同的顺序),在硬件上执行加载的应用程序并运行电机。
Tg = slrealtime;
tg.start;
在硬件上开始执行模型后的第17秒,模型开始进行面向场控制(FOC)调优(使用面向场控制自动调优块)。它记录PI控制器的增益值(kp_Id
,ki_Id
,kp_Iq
,ki_Iq
,kp_speed
,ki_speed
)。
8.在仿真数据检查器中,在调优前后观察并比较系统响应与PI参数的关系。
9.如果调优后的系统响应令人满意,则更新与模型相关的模型初始化脚本中的增益值。对于连续的模型执行,您可以使用模型中的FOC Autotuner按钮禁用FOC调优,并使用新的PI参数继续进行闭环测试。
注意:不要在信号构建器中重新配置或更改参考速度值,以免参考速度在调优过程中发生变化。