当前位置: 首页 > news >正文

(开源)MotorEffMAP-电机电控效率MAP图绘制程序

MotorEffMAP 是一个用于绘制电动汽车电机、电控、系统效率 MAP 的 Python 桌面工具。程序读取 Excel 测试数据,根据MotorEffMAP.ini中的列名和绘图参数,批量生成效率 MAP、功率等高线、效率区域占比表和占比图。

下载

  • 项目仓库:https://github.com/swordstudiox/MotorEffMAP
  • 编译版下载:https://github.com/swordstudiox/MotorEffMAP/releases

普通用户建议从 Releases 下载编译版。开发者或需要二次修改时再使用源码运行。

主要功能

  • 支持一次选择多个 Excel 文件。
  • 支持自动遍历每个 Excel 文件中的多个 sheet。
  • 支持 MCU、Motor、System 三类效率 MAP。
  • 支持功率等高线叠加显示。
  • 支持效率区域占比计算,并导出 Excel 和 PNG。
  • 支持在界面中编辑MotorEffMAP.ini配置。
  • 支持源码运行和 Windows 编译版运行。

目录结构

文件或目录说明
run.py源码运行入口。
MotorEffMAP_GUI.pyPySide6 图形界面、配置页、绘图和输出保存。
MotorEffMAP_Logic.py数据读取、清洗、包络线、插值、占比计算。
MotorEffMAP.ini用户配置文件。
requirements.txt源码运行依赖。
build_exe.batWindows 一键打包脚本。
build_script.pyPyInstaller 打包逻辑。
example/示例数据和示例输出图片,可用于快速试运行和查看效果。
docs/program-implementation.md详细程序实现文档,供维护者和程序读取。
docs/program-implementation.html与 Markdown 同步的离线 HTML 文档,供用户查看。

编译版怎么运行

  1. 打开 Releases。
  2. 下载最新发布包。
  3. 解压到本地目录。
  4. 确认目录中至少包含:
MotorEffMAP.exe MotorEffMAP.ini
  1. 双击MotorEffMAP.exe
  2. 在程序中点击选择数据文件,选择.xls.xlsx
  3. 点击处理并保存所有

编译版会从MotorEffMAP.exe同级目录读取MotorEffMAP.ini。如果要给不同项目使用不同配置,可以复制整个程序目录,再分别修改各目录下的MotorEffMAP.ini

源码怎么运行

1. 准备 Python

建议使用 Python 3.10 或更新版本。

2. 克隆仓库

git clone https://github.com/swordstudiox/MotorEffMAP.git cd MotorEffMAP

3. 创建虚拟环境

Windows PowerShell:

python -m venv venv .\venv\Scripts\Activate.ps1

Windows CMD:

python -m venv venv venv\Scripts\activate.bat

4. 安装依赖

pip install -r requirements.txt

5. 启动程序

python run.py

源码运行时,程序会读取项目根目录下的MotorEffMAP.ini

程序界面

示例数据

仓库中的example/目录提供了一组可直接试用的示例文件:

文件说明
example/MotorEffMAP_主界面.png程序主界面截图。
example/示例_效率数据.xlsx示例输入数据,可在程序中直接选择并处理。
example/示例_效率数据_Sheet1_KK-630V-正转驱动_MCUEfficiencyMAP.png示例生成的 MCU 效率 MAP。
example/示例_效率数据_Sheet1_KK-630V-正转驱动_效率占比.xlsx示例生成的效率区域占比表。
example/示例_效率数据_Sheet1_KK-630V-正转驱动_效率占比.png示例生成的效率区域占比图。

示例图片使用仓库内相对路径引用,在 GitHub 等远程 Git 仓库页面中可以直接显示。

示例效果

Excel 数据要求

程序会读取 Excel 中的所有 sheet。每个 sheet 的第一行应作为列名,列名要和MotorEffMAP.ini中配置一致。

建议数据格式:

类型要求
转速数字,可正可负,程序会取绝对值用于 MAP。
扭矩数字,可正可负,程序会取绝对值用于 MAP。
功率数字,可正可负,程序会取绝对值用于 MAP。
MCU 效率数字,建议 0 到 100 之间。
电机效率数字,建议 0 到 100 之间。
系统效率数字,建议 0 到 100 之间。
母线电压数字,或在customUdc中直接配置固定电压。

注意事项:

  • Excel 末尾可以有空行,程序会删除无效空行。
  • 如果某列存在但某些单元格为空,空值不会被当成 0。
  • 如果配置中写的列名在 Excel 中不存在,程序会提示错误并停止处理该 sheet。
  • 同一个 sheet 建议只放同一转向、同一电动/发电状态、同一电压等级的数据。

配置文件说明

配置文件是MotorEffMAP.ini。可以直接编辑,也可以在程序的配置页签中修改后点击保存并重载

基本信息

配置项说明示例
VehicleCode车型、项目或样件代号,会出现在标题和输出文件名中。KK
customSpeedDirection自定义转向名称。留空时由转速均值自动判断;填写后覆盖自动判断结果。正转
customMotionState自定义工况状态。留空时由功率均值自动判断;填写后覆盖自动判断结果。驱动

Excel 列名映射

这些配置项右侧必须填写 Excel 第一行中真实存在的列名。

配置项说明
Speed转速列名。
Toqrue扭矩列名。
P_Motor电机功率列名。
Eff_MCU控制器效率列名。
Eff_Motor电机效率列名。
Eff_SYS系统效率列名。
U_dc母线电压列名。
customUdc固定电压值。填写有效数字后,程序优先使用该电压,不再使用U_dc列。

示例:

VehicleCode = KK Speed = 转速[rpm] Toqrue = 扭矩[Nm] P_Motor = 功率[kW] Eff_MCU = 效1 Eff_Motor = 效2 Eff_SYS = 效3 U_dc = Udc4 customUdc =

MAP 输出开关

配置项说明
MCUMAP1输出控制器效率 MAP,0不输出。
MotorMAP1输出电机效率 MAP,0不输出。
SYSMAP1输出系统效率 MAP,0不输出。
MCUAreaRatioCalculation1计算控制器效率区域占比。
MotorAreaRatioCalculation1计算电机效率区域占比。
SYSAreaRatioCalculation1计算系统效率区域占比。

绘图和网格参数

配置项说明示例
EffMAPStep效率等高线和占比阈值,支持英文逗号、分号或空格分隔。80,85,90,95,99
PowerMAPStep功率等高线值,支持英文逗号、分号或空格分隔。5,10,15,20,25
xstep转速轴刻度间隔。500
ystep扭矩轴刻度间隔。20
StartSpeed效率区域占比起始转速。默认从0rpm开始。0
StartTorque效率区域占比起始扭矩。默认从0Nm开始。0
SpeedGrid插值网格转速步长,必须大于 0。越小越精细,但越慢。5
TorqueGrid插值网格扭矩步长,必须大于 0。越小越精细,但越慢。0.5
MaxGridPoints最大网格点数安全上限,限制网格行数 x 网格列数,防止步长过小导致内存过大。5000000

效率区域占比分母按几何运行区域计算。默认StartSpeed=0StartTorque=0时,从0rpm / 0Nm开始统计。

使用流程

  1. 准备 Excel 数据,确认第一行列名正确。
  2. 打开程序。
  3. 切换到配置页,检查列名映射和绘图参数。
  4. 点击保存并重载
  5. 回到处理与分析页。
  6. 点击选择数据文件
  7. 点击处理并保存所有
  8. 在程序目录查看输出的 PNG、XLSX 和日志文件。

输出文件

输出文件会保存在当前运行目录。文件名包含源文件名、sheet 名、车型、电压、转向、状态和输出类型,以避免批量处理时互相覆盖。

示例:

示例数据_Sheet1_车型A-500V-正转驱动_MCUEfficiencyMAP.png 示例数据_Sheet1_车型A-500V-正转驱动_MotorEfficiencyMAP.png 示例数据_Sheet1_车型A-500V-正转驱动_SystemEfficiencyMAP.png 示例数据_Sheet1_车型A-500V-正转驱动_效率占比.xlsx 示例数据_Sheet1_车型A-500V-正转驱动_效率占比.png

怎么自行编译

Windows 下可以直接运行:

build_exe.bat

或在已安装依赖的 Python 环境中运行:

python build_script.py

构建脚本会:

  1. 强制使用项目虚拟环境venv\Scripts\python.exe
  2. 检查并安装pyinstaller
  3. 直接使用已有MotorEffMAP.ico,不再转换图标。
  4. 清理旧的build/dist/MotorEffMAP.spec
  5. 使用 PyInstaller 打包。
  6. 根据version.ini将发布目录命名为MotorEffMAP_日期-版本号
  7. 复制MotorEffMAP.iniversion.iniMotorEffMAP.ico到发布目录。
  8. 清理当前程序不用的 Qt 资源并检查构建产物完整性。

构建完成后,可执行文件目录为:

dist/MotorEffMAP_20260611-V1.2/

进入该目录双击MotorEffMAP.exe即可运行。

http://www.gsyq.cn/news/1562855.html

相关文章:

  • 嵌入式GUI开发:emWin树形视图控件核心API与实战应用
  • YOLOv8车辆损伤检测与事故严重程度分级系统
  • 嵌入式GUI开发:LISTVIEW控件从入门到精通,实现高效数据展示与排序
  • 8GB显存跑35B大模型:Qwen-A3B轻量化部署实战
  • 【Netty源码解读和权威指南】第38篇:Netty SSL TLS安全传输——HTTPS背后的Netty实现
  • 嵌入式GUI开发:emWin 2D图形库核心功能与性能优化实战
  • 2026青岛公认口碑好的全屋定制品牌门店选购指南 - 官方资讯
  • 淮南师范学院王牌专业主要学什么课程?未来的培养方向和就业领域是什么? - 寻茫精选
  • 2026年合肥理工学校最新发布招生办电话号码及报考流程一览 - 教育为先
  • 咸宁职业技术学院王牌专业在全国 / 省内排名第几?行业认可度高吗? - 寻茫精选
  • 洪梅镇TikTok短视频剪辑:新手必学的10个剪辑技巧 - 东莞选校指南
  • 2026年浙江GEO优化服务商实力榜单|本地企业AI搜索优化首选指南 - 936品牌测评网
  • 安徽水利水电职业技术学院的王牌专业有哪些?哪些专业性价比最高、最值得报? - 寻茫精选
  • 人脸检测实战:从传统方法到深度学习,构建鲁棒系统的完整指南
  • 安徽水利水电职业技术学院王牌专业在全国 / 省内排名第几?行业认可度高吗? - 寻茫精选
  • 上海家电维修 / 家电清洗|本地避坑指南,满分五星平台 | 2026首选一步到家 - 一步到家
  • 草莓目标检测数据集:农业AI视觉落地的最小可行方案
  • 咸宁职业技术学院王牌专业主要学什么课程?未来的培养方向和就业领域是什么? - 寻茫精选
  • Deepseek本地部署实战:MoE架构与SiLU激活函数的工程落地
  • 2026抖店拍单工具闭眼入:合规为王,一站式代发首选【抖掌柜】深度实测推荐 - 抖掌柜
  • MATLAB雷达CFAR检测仿真包:含多种算法实现、可视化结果与完整说明
  • 2026年铸铝门品牌实力盘点:十家值得关注的厂家与选购参考 - 门业观察
  • 广东农工商职业技术学院的王牌专业有哪些?哪些专业性价比最高、最值得报? - 寻茫精选
  • 2026年亲测三家京东E卡回收正规平台综合评分:折扣差异解析与安全变现操作全流程 - 鼎鼎收礼品卡回收
  • 零知识证明-FFS身份鉴别方案
  • 2026寄大件怎么省钱?个人寄件全流程+5折技巧 - 快递物流资讯
  • Claude Opus 4.6实测:前端工程化能力与认知写作方法论深度解析
  • 安徽水利水电职业技术学院的王牌专业有没有校企合作项目?实习和实训机会多不多? - 寻茫精选
  • 对口升学本科靠谱吗?推荐合肥理工学校! - 教育为先
  • 2026年安徽省初三中考成绩差考不上高中适合上什么学校??——推荐合肥理工学校! - 教育为先