Main Content

在 Simulink 中实现机械臂的 CAN 网络

以下示例说明如何使用 Vehicle Network Toolbox™ 和 Simulink® 实现远程操作臂中的控制器局域网 (CAN)。

Vehicle Network Toolbox 提供了 Simulink 模块,用于通过 Simulink 模型在控制器局域网 (CAN) 上传输和接收实时报文。此示例使用 CAN Configuration、CAN Pack、CAN Transmit、CAN Receive 和 CAN Unpack 模块来执行 CAN 总线上的数据传输。使用的 CAN 报文在 CAN 数据库文件 canDatabaseFor6DofRoboticArm.dbc 中定义。

此示例使用 MathWorks® 虚拟 CAN 通道。您也可以将模型连接到其他支持的硬件。

模型描述

Model3.JPG

该模型由以下子系统组成:操作臂系统、反向动力和控制器、关节 CAN 传输接口、关节 CAN 接收接口、反向动力和控制器 CAN 传输接口,以及反向动力和控制器 CAN 接收接口。每个关节加上反向动力和控制器子系统构成了 CAN 总线中的一个节点。

用户输入末端操纵装置的位置坐标(X、Y 和 Z,以米为单位)和姿态(滚转、俯仰和偏转,以度为单位,在 body-3 中,顺序为 2-3-1)。反向动力和控制器子系统接收通过 CAN 总线从关节角度传感器发送过来的反馈,并通过 CAN 总线向每个关节电机发送适当的命令,以使末端操纵装置的位置和方向到达用户输入的值。

假设远程操作臂连接到太空轨道上的航天器。在这种情况下,重力被忽略。

操作臂系统

该子系统由远程操作臂的刚体模型组成,使用 Simscape Multibody 2G 建模。该操作臂有六个关节。每个关节由带变速箱的直流电机驱动,使用 Simscape Foundational Library 建模。每个关节还有一个关节角度传感器。传感器数据发送到 CAN 总线。每个电机由受控电压源供电。电压源从 CAN 总线接收报文,并在与报文中的信息对应的各终端上施加 DC 电压。

反向动力和控制器

反向动力和控制器子系统进一步实现反向动力和控制算法。反向动力根据用户输入的所需位置(X、Y 和 Z)和方向(滚动、俯仰和偏转,以度为单位)计算所需的关节角度。离散 PID 控制器利用从 CAN 总线读取的关节角度传感器值来确定应施加到每个电机的直流电压,以将关节角度驱动到所需的值。直流电压值作为报文在 CAN 总线中发送。

关节 CAN 传输接口

该子系统包括将来自对应传感器的关节角度值传输到 CAN 总线所必需的 VNT 模块。

关节 CAN 接收接口

该子系统包括接收和解包来自 CAN 总线的报文所必需的 VNT 模块,这些报文包含有关需要应用于与每个电机对应的受控电压源的直流电压的信息。

反向动力和控制器 CAN 传输接口

Model1.JPG

该子系统包含将反向动力和控制器子系统计算的电机信号(需要通过受控电压源施加的直流电压)传输到 CAN 总线所必需的 VNT 模块。

反向动力和控制器 CAN 接收接口

Model2.JPG

该子系统包括接收来自 CAN 总线的报文所必需的 VNT 模块,这些报文包含有关关节角度传感器发送的关节角度的信息。