目录

Motor_Studio

MotorStudio — 通用电机调试上位机,为 PMSM/BLDC 伺服驱动开发提供统一的通信接口、实时数据可视化、参数在线管理、电机参数自动辨识与 Isaac Sim 模型导出。

完整的硬件连接与协议细节见 需求文档.md


功能特性

模块 说明
通信 串口 (RS-232/485/TTL) 与 CAN 总线,插件式协议架构,支持多帧拆分
电机控制 位置 / 速度 / 转矩 / 回零控制,含急停与安全限幅
实时监控 多通道示波器 + 仪表盘,遥测统计、故障与状态变化检测
参数管理 寄存器在线读写、批量读写、本地缓存镜像、分组筛选
参数辨识 相电阻 / 电感 / 反电动势 / 惯量+摩擦 / 刚度+阻尼 五项实验,一键全自动
数据记录 实时遥测 CSV 记录与离线回放
参数模板 模板 CRUD、JSON 导入导出、应用到驱动 / 从驱动捕获
OTA 升级 对接 Motor_Bootloader 的 CAN 升级协议
Isaac Sim 导出 辨识结果导出为 NVIDIA Isaac Sim USD 文件

技术栈

层级 技术
语言 Python 3.11+
GUI PySide6 (Qt 6 Widgets)
可视化 pyqtgraph ≥ 0.13.0
数值计算 NumPy ≥ 1.24.0
CAN 通信 python-can ≥ 4.3.0
测试 pytest + pytest-qt
包管理 uv + setuptools

快速开始

# 1. 安装 (开发模式)
pip install -e .

# 2. 运行
motorstudio
# 或: python -m motorstudio

运行测试

python -m pytest tests/ -v

打包为 Windows .exe

build.bat        # 依赖 .venv 虚拟环境, 产物输出到 dist\MotorStudio.exe

分层架构

┌─────────────────────────────────────────────┐
│  UI Layer      motorstudio/ui, /app          │  Panels, Widgets, Theme, MainWindow
├─────────────────────────────────────────────┤
│  Services Layer  motorstudio/services/       │  Control, Monitor, Identify, Param, Log
├─────────────────────────────────────────────┤
│  Device Layer    motorstudio/device/         │  MotorDriver, RegisterCache
├─────────────────────────────────────────────┤
│  Comm Layer      motorstudio/comm/           │  Transport, ProtocolAdapter, ConnectionMgr
├─────────────────────────────────────────────┤
│  Core Layer      motorstudio/core/           │  Protocol, MotorModel, Identification
│                   (纯 Python, 零 GUI 依赖)    │
├─────────────────────────────────────────────┤
│  Utils           motorstudio/utils/          │  RingBuffer, Math, Units
└─────────────────────────────────────────────┘

数据流:Transport → ProtocolAdapter → MotorDriver → Service → Qt Signal → UI(线程安全)。


项目结构

Motor_Studio/
├── motorstudio/               # 主包
│   ├── main.py                # 应用入口
│   ├── app/                   # 主窗口 / 设置
│   ├── core/                  # 核心层 (协议 / 电机模型 / 辨识 / 模板 / 日志)
│   ├── comm/                  # 通信层 (串口 / CAN 传输)
│   ├── device/                # 设备层 (驱动抽象 / 寄存器缓存)
│   ├── services/              # 服务层 (控制 / 监控 / 辨识 / 参数 / 记录)
│   ├── ui/                    # UI 层 (面板 / 控件 / 主题)
│   └── utils/                 # 工具 (环形缓冲 / 数学 / 单位)
├── tests/                     # 单元测试 (电机模型 + 协议)
├── resources/                 # 图标 / QSS 样式
├── scripts/                   # 构建辅助脚本
├── pyproject.toml             # 项目元数据 / 依赖
├── MotorStudio.spec           # PyInstaller 打包配置
├── build.bat                  # Windows 一键打包脚本
└── 需求文档.md                # 完整需求文档

文档


子模块说明

本仓库是总工程 Motor_Project 的一个 git submodule(目录 Motor_Studio/)。总工程只记录指向本仓库某个 commit 的指针,修改后需分两步提交,否则总工程不会指向新版本:

# 第一步:本仓库内提交并推送
git checkout master            # 避免在 detached HEAD 上提交
git add .
git commit -m "feat: xxx"
git push origin master

# 第二步:回总工程更新指针并提交
cd ..
git add Motor_Studio           # 更新总工程记录的子模块 commit
git commit -m "chore: 更新 Motor_Studio 子模块"
git push origin master

⚠️ 只提交本仓库而不更新总工程指针,他人克隆总工程得到的仍是旧版本代码。

关于
71.1 MB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

版权所有:中国计算机学会技术支持:开源发展技术委员会
京ICP备13000930号-9 京公网安备 11010802047560号