集成单片机电机控制应用程序的调度和外围设备
这个例子展示了如何识别并解决问题对外围设置和任务调度在早期发育。
以下是典型的挑战与单片机外围设备和调度:
ADC-PWM同步实现PWM电流传感在中期点
将传感器延迟实现所需的控制器响应的闭环系统
研究不同的PWM设置在设计特殊的算法
这个例子展示了如何使用SoC Blockset应对这些挑战的运动控制闭环应用在模拟和验证硬件通过部署在TI参与F28379D发射台。
硬件要求:
基于TI参与F28379D发射台或TI参与F2837xD董事会
BOOSTXL-DRV8305EVM电机驱动板
Teknic m - 2310 - p - ln - 04 - k永磁同步电动机电动机
模型结构
open_system (“soc_pmsm_singlecpu_foc”);
打开soc_pmsm_singlecpu_foc模型。该模型模拟了单CPU电动机控制器,包含在soc_pmsm_singlecpu_ref模型永磁同步电机逆变器系统。从植物使用控制器感官输出ADC接口(SoC Blockset)和使用的启动脉宽调制接口(SoC Blockset)驱动逆变器。从电机控制算法块Blockset™是本例中使用。
ADC采集时间
ADC硬件包含一个示例和保持电路模拟的输入。以确保完整的ADC测量,必须选择最低收购时间占输入电路的组合效应和取样保持电路的电容器。
开放的ADC接口块和更改默认采集100纳秒的时间。运行模拟和查看结果仿真数据检查并观察有畸变电流波形。收集时间导致ADC测量低没有达到他们的真正价值。结果,控制器通过生成一个相对的工作周期反应导致电流发生变化,由马达。这些数据显示,反应不正确的ADC测量和透支在当前频道的阶段,当前阶段的蓝色和橙色B阶段电流。模拟速度反馈显示明显的振荡在开环闭环过渡,这在现实世界将停止发动机。
为了解决这个问题,开放ADC接口块变化和采集时间更改为更大的值,320 ns。这个值高于最小ADC采集时间建议ADC节操作条件(12位单端模式)TI参与F28379D发射台数据表。运行模拟和查看结果仿真数据检查。这图显示了准确采样ADC值和控制器跟踪参考价值。
验证仿真结果对硬件部署模型到TI参与F28379D发射台。在系统芯片选项卡上,单击配置、构建和部署打开SoC建设者(SoC Blockset)工具。
在SoC Builder工具外围配置工具,设置ADC > SOCx周期采集窗口参数13 ADC钟表的滴答声
B和C的ADC模块。ADC采集时钟参数必须设置为模拟时间价值,在ADC接口组块,乘以ADC的时钟频率。你可以得到的ADC时钟频率模型的硬件设置。打开soc_pmsm_singlecpu_ref模型。在系统芯片选项卡上,单击硬件设置打开配置参数窗口。在硬件实现> > ADC_x目标硬件资源节中,你可以看到ADC MHz时钟频率
参数值。这个图显示了ADC接口块设置模拟和外围部署应用程序设置。在模拟和codegen使用相同的设置,确保预期行为。
在选择构建操作从硬件选择页面,监控数据为外部模式构建和负载
。这个图显示了数据从硬件精确采样ADC值和控制器跟踪参考价值。
ADC-PWM同步
BOOSTXL-DRV8305EVM电动机驱动的三相逆变器使用6功率场效应管。这个马达驱动板使用下部分流电阻感应电动机电流。目前感觉整个并联电路放大电压降。这个设置可以保证低功耗,因为目前只流经分流当底部开关,远离PWM整流的噪音。这图显示了下部分流电阻在BOOSTXL-DRV8305EVM马达驱动电路。
正确操作,电流传感必须发生在中期的PWM时期adc触发器。具体来说,PWM柜台底部开关时,必须在最大值活跃在可逆计数器模式。电流采样在不同的实例结果的测量电流为零。
分析这种情况下,切换模型高保真逆变器仿真模式。改变植物的变异使用基于详细的MOSFET的三相逆变器复制BOOSTXL-DRV8305EVM。
set_param (“soc_pmsm_singlecpu_foc /逆变器和电动机/平均或切换”,…“LabelModeActivechoice”,“SwitchingInverter”);
改变输出模式
参数的脉宽调制接口(SoC Blockset)来切换
并连接6 pwm的Mux块。
set_param (“soc_pmsm_singlecpu_foc / PWM通道/ PWM接口”,“OutSigMode”,“切换”);set_param (“soc_pmsm_singlecpu_foc / PWM频道/ PWM Interface1”,“OutSigMode”,“切换”);set_param (“soc_pmsm_singlecpu_foc / PWM频道/ PWM Interface2”,“OutSigMode”,“切换”);
删除现有的PWM接口之间的连接块和Mux。
h = get_param (“soc_pmsm_singlecpu_foc / PWM频道/ Mux”,“LineHandles”);delete_line (h.Inport);
作为最后一步,Mux连接6 PWM输出。
set_param (“soc_pmsm_singlecpu_foc / PWM频道/ Mux”,“输入”,“6”);
add_line (“soc_pmsm_singlecpu_foc / PWM通道”,…{“PWM接口/ 1”,“PWM接口/ 2”,“PWM Interface1/1”,…“PWM Interface1/2”,“PWM Interface2/1”,“PWM Interface2/2”},…{“Mux / 1”,“Mux / 2”,“Mux / 3”,“Mux / 4”,“Mux / 5”,“Mux / 6”},“高速公路”,“智能”);
打开PWM接口模块和设置事件触发模式来PWM期结束
。运行模拟和查看结果仿真数据检查。在图中,A和B阶段阶段电流几乎是零电流。这将导致损失的反馈和控制回路中没有驱动。选择启用任务模拟
在任务管理器来模拟和可视化任务仿真数据块检查员。
为了解决这个问题,改变事件触发模式来中期的PWM周期
,相当于PWM内部计数器的最大值。运行模拟和查看结果仿真数据检查。
将模型部署到TI参与F28379D发射台使用SoC建设者(SoC Blockset)工具。在SoC Builder工具外围配置工具,设置PWM事件条件来计数器等于时期
。在模拟和codegen使用相同的设置,确保预期行为。这个图显示了PWM接口块设置模拟和外围配置工具设置部署。
这个图中显示的数据与正确的仿真和硬件ADC-PWM同步和控制器跟踪参考价值。
另请参阅
开始使用多处理器块单片机(SoC Blockset)
版权2020 - 2021 MathWorks公司。