主要内容

磁场定向控制的永磁同步机

这个例子展示了如何模型控制器和实现在Xilinx®Zynq™-7000可编程SoC的目标。这个示例使用ZedBoard™与模拟设备®电动机控制融合。如果您没有所需的硬件,您可以使用这个示例来帮助您开发自己的硬件配置的控制器。

介绍

这个示例模型的磁场定向控制(FOC)永磁同步电机(永磁同步电动机),但是您可以应用这个示例中所示的技术发展最控制器算法。这张图片显示了模型的广义工作流仿真控制器的部署算法在嵌入式硬件板。

模拟系统试验台来洞察控制器算法设计的行为。然后探索设计算法的分区。高速率的部分算法划分为一个模型,配置了HDL代码生成。低利率的部分算法划分模型配置为C代码生成。从这些模型生成C和HDL代码,学习如何将这段代码集成到您的设计。

在探索算法C和HDL代码之后,自动化部署算法代码参考框架的处理器和可编程逻辑。然后,在已部署的应用程序执行测试,记录结果,以及仿真结果进行比较。

因为这个示例部署一个比特流和手臂®Xilinx Zynq可执行文件,必须设置Xilinx Zynq硬件板之前的例子开始。为了确保正确设置您的环境,完成开始使用针对Xilinx Zynq平台(高密度脂蛋白编码器)例子开始这个例子之前与你的硬件配置。

需求

关于硬件的更多信息,请参阅Zynq所有可编程SoC /模拟设备智能驱动设备

模拟算法的行为

本节展示如何打开示例项目,检查控制器模型,并通过仿真验证了控制器的行为。这个例子是打包为一个项目。在仿真软件项目的更多信息,见金宝app是什么项目?(金宝app模型)

1。运行zynqexPMSMFOCStart函数来创建和打开一个项目文件的工作副本这个例子在默认MATLAB项目文件夹中。选择一个特定的文件夹,文件夹的绝对路径作为输入使用。文件夹的绝对路径必须小于80个字符。

zynqexPMSMFOCStart (“C: \ Temp”);

2。选择快捷方式管理查看这个示例使用的快捷键。

3所示。右键单击快捷方式和识别开放运行快捷方式上下文菜单项。

4所示。运行的任务。t1_openSimulationTestBenchModel快捷方式打开focZynqTestBench模型。

task.t1_openSimulationTestBenchModel

Motor_And_Load子系统由表面永磁同步电动机的数学模型、电机负载,编码器和电流传感器。Controller_Algorithm子系统包括一个I / O工程单位转换、电子位置计算、转子速度计算,模式调度器,四种控制模式(禁用,开环速度控制、编码器标定和闭环速度控制)。的C / DD / C子系统从连续时间转换数据,可变时间步解决者和浮点数据类型,离散时间,固定时间步解算器和定点数据类型,模拟。

如果你没有安装SimPowerSystems, Motor_And_Load子系统包含一个块,使您能够使用默认的电动机和负载参数模拟模型。在这种情况下,你是无法探索或修改参数。

5。在模拟仿真软件将来发布的选项金宝app卡,单击运行模拟模型。

6。当模型结束运行时,打开仿真数据检查。在模拟选项卡上,单击数据检查。仿真数据检查器的更多信息,请参阅仿真数据检查(金宝app模型)

7所示。在仿真数据检查,选择< commandType >,< velocityCommand >,< rotorVelocity >,< controllerMode >信号。

前两秒,控制器是吩咐编码器位置传感器校准。编码器位置传感器之前必须校准控制器可以实现闭环控制。在第一部分的位置校准,使用开环控制电机加速为了识别指数脉冲编码器。一旦发现该指数,控制器命令和持有零位置,直到确定编码器抵消。在这段时间内的速度是零。两秒后,控制器改变成闭环控制和遵循命令速度剖面。在闭环速度控制,在永磁同步电动机FOC调节相电流。

分区算法和生成代码

本节将向您展示如何划分为互补控制器算法软件和硬件实现代C和HDL代码的软件和硬件实现,分别。检查报告中创建代码生成显示如何将这段代码集成到您自己的嵌入式设计。

1。在focZynqTestBench模型中,打开Controller_Algorithm子系统。控制器算法包含Algorithm_C和Algorithm_HDL块,引用focZynqCfocZynqHDL模型,分别。的focZynqC模型包含的部分算法在软件实现。类似地,focZynqHDL模型包含的部分算法在硬件上实现。

2。运行的任务。t2_generateCCode功能打开focZynqC模型、生成C代码和生成报告。

task.t2_generateCCode

focZynqC模型包含模式调度器,速度控制回路,开环速度控制器,和常规自动校准编码器偏移量。

3所示。代码生成的报告显示了生成的代码对应的模型。如果你是新的代码生成报告,你可以开始代码接口报告查看代码的函数接口。C代码是便携式的,可与任何浮点嵌入式处理器集成使用ansi C编译器。代码生成报告的更多信息,见报告生成代码

4所示。运行的任务。t3_generateHdlCode功能打开focZynqHdl模型、生成HDL代码和生成报告。

task.t3_generateHdlCode

focZynqHdl模型包含电气位置计算、转子速度计算,过流检测,继矢量控制器。

5。代码生成报告显示HDL代码对应于模型的方式。如果你是新的代码生成报告,你可以开始探索生成的源文件报告的窗格中,选择focZynqHdl.vhd文件,其中包含的实体规范。算法的HDL代码可移植性,可以与任何支持硬件描述语言(VHDL)的FPGA集成代码。金宝app

设置Xilinx Zynq平台和汽车板

本节将向您展示如何设置和连接硬件板需求部分中列出。

1。运行的硬件设置Xilinx Zynq平台。硬件设置的信息,请参阅安装支持Xili金宝appnx Zynq平台

2。连接ZedBoard如图所示。

3所示。AD-FMCMOTCON2-EBZ控制器连接板和ZedBoard如图所示。

比特流部署到可编程序逻辑

本节将向您展示如何使用HDL工作流顾问生成算法,HDL代码HDL打包成一个IP核心,IP核心融入Xilinx参考设计,并创建一个比特流。

1。运行的任务。t4_openHdlWorkflowAdvisor函数打开HDL工作流顾问。

task.t4_openHdlWorkflowAdvisor

2。在高密度脂蛋白工作流顾问> 1。设置目标> 1.1设置目标设备和合成工具集团目标平台被设置为ZedBoard和FMCMOTCON2ZedBoard和FMCMOTCON2是一个Vivado包含ADC的参考设计,编码器和PWM组件。信息如何创建这个参考设计,明白了定义定制的董事会和参考设计Zynq工作流(高密度脂蛋白编码器)

3所示。选择1.2。设置目标接口确定港口。的目标平台的接口前缀IP指连接注册ZedBoard电机控制设计参考。

4所示。选择4.3构建FPGA比特流>运行选中的任务或运行任务。t5_generateBitstreamAndInterfaceBlock函数从项目生成算法和HDL代码创建Xilinx FPGA比特流的参考设计。

task.t5_generateBitstreamAndInterfaceBlock

5。遵循比特流生成的进步在新打开DOS命令提示符。除了生成一个比特流,另外生成定制的目标focZynqHdlAxiInterfaceLib软件界面库。库包含一个AXI_Interface块。的AXI_Interface块,其中包含AXI4-Lite接口组件,提供了从模型部署在ARM处理器连接模型部署在可编程序逻辑。

6。运行的任务4.4项目目标设备或运行任务。FPGA t6_downloadBitstream函数从项目到项目。

task.t6_downloadBitstream

可执行文件部署到ARM处理器

本节展示了如何为控制器和自动化生成C代码将这段代码与Linux参考框架来构建、部署和运行模型作为一个可执行的ARM处理器。数据记录在处理器上运行的模型可以模拟的结果进行比较。

1。运行的任务。t7_openZynqArmModel功能打开focZynqArmDeployment模型。

task.t7_openZynqArmModel

focZynqArmDeployment模型可以生成C代码、自动化集成Linux手臂参考框架,和部署可执行的ARM处理器Xilinx Zynq平台。部署模型引用原控制器模型和包含测试刺激,范围和AXI_Interface库中创建的块比特流部署到可编程序逻辑部分。

2。在硬件选项卡上,单击监视和优化构建、部署和运行模型作为可执行在ARM处理器上。生成的代码编译参考框架来创建一个可执行的。执行时,仿真软件监控的信号,显示他金宝app们的范围。

3所示。打开仿真数据检查查看记录的信号和比较他们先前记录的信号focZynqTestBench模型。在模拟选项卡上,单击数据检查

4所示。在仿真数据检查,选择rotorVelocity信号。在编码器标定模式,最初不同的信号然后同意自模拟和真实的汽车开始与不同的转子位置。相比之下,速度闭环控制仿真和硬件非常相似。出现差异的原因是电动机的仿真模型和传感器使用数据表值和没有明确考虑制造公差的物理运动。

其他的事情努力

  • 继续探索这个例子中的文件以获得更多了解仿真、代码生成和自动化部署可以帮助你开发一个控制器硬件。

  • 高密度脂蛋白编码器支金宝app持浮点单精度的数据类型。打开一个浮点模型的例子:

zynqexPMSMFOCSingleStart
  • 浮点模型突出了HDL编码的能力从模型生成HDL代码包含一个定点和浮点数据类型。遵循相同的任务来实现控制算法与单精确电流控制Xilinx Zynq SoC平台。