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

DonkeyCar油门校准实战指南:从PWM信号到精准扭矩控制

1. 项目概述:为什么校准油门是DonkeyCar上路前不可跳过的“第一课”

刚把DonkeyCar小车的底盘、摄像头、Jetson Nano主板和电机驱动板都接好了,通电一按遥控器——车轮猛转、车身原地打滑、油门推杆一动就飙到最大转速,甚至电机发出刺耳啸叫……这不是硬件坏了,而是你还没给这台自动驾驶小车装上“刹车与油门的标尺”。在DonkeyCar生态里,“校准油门”不是可选项,而是启动任何后续训练、测试或自动行驶任务前的强制前置动作。它本质是建立遥控器油门通道(通常为CH3)与电机驱动板(如Sabertooth、RoboClaw或VESC)输入信号之间的精确映射关系,让“推杆10%行程”真正对应“电机输出10%扭矩”,而不是30%或85%。我带过二十多期线下DIY小车工作坊,超过65%的新手第一次跑manage.py时卡在calibrate_throttle环节,不是因为命令输错,而是根本没理解校准背后那三重物理层逻辑:遥控器PPM/PWM信号的占空比范围、电调/驱动板支持的控制协议类型(RC PWM / Serial / DShot)、以及电机实际响应的非线性死区与饱和特性。这篇文章不讲抽象理论,只说我在深圳南山车库实测三个月、烧过两块Sabertooth 2x32、重刷七次SD卡后总结出的校准全流程——从示波器实测PWM波形开始,到最终用throttle_min/throttle_max/throttle_deadzone三个参数把油门曲线压进±0.5%误差带内。如果你正对着终端里反复闪烁的Throttle: 0.000发呆,或者发现小车在local_angle模式下总往墙角冲,那这篇就是为你写的。内容覆盖树莓派+PCA9685方案、Jetson Nano+Arduino桥接方案、以及最新VESC+UART直连方案,所有参数均来自真实车体实测数据表,拒绝“网上抄来的默认值”。

2. 校准底层逻辑拆解:油门不是“开/关”,而是一条需要被测绘的物理曲线

2.1 油门信号链的四层物理结构

DonkeyCar的油门控制绝非简单的“摇杆→小车动”,而是一条横跨四个物理层级的信号链。忽略任一层,校准必然失败:

  • 第一层:遥控器发射端
    市面主流2.4GHz遥控器(如Flysky FS-i6X、Radiomaster TX12)输出的是PPM(Pulse Position Modulation)或PWM(Pulse Width Modulation)信号。以FS-i6X为例,其CH3油门通道在中立位(摇杆回中)输出1500μs脉宽,满油门(推到底)为1900μs,怠速(拉到底)为1100μs——这是行业通用标准,但每台遥控器出厂存在±15μs偏差。我用DSO138示波器实测过12台同型号FS-i6X,中立位脉宽分布在1482–1517μs之间。这个偏差直接导致“摇杆回中”时小车仍缓慢爬行。

  • 第二层:接收机与主控通信
    接收机(如FS-iA6B)将PPM解码为单通道PWM,再通过GPIO引脚传给树莓派/Jetson。这里的关键陷阱是:树莓派GPIO无法直接捕获高精度PWM(需依赖pigpio库的硬件定时器),而Jetson Nano的GPIO捕获精度受CUDA进程抢占影响,实测抖动达±8μs。因此DonkeyCar官方推荐使用Arduino Nano作为中间协议转换器——它用ATmega328P的16位定时器精准捕获PWM,再通过Serial转成ASCII字符串发给主控。这步省不得,否则你看到的throttle: 0.321可能是真实值0.287或0.355。

  • 第三层:驱动板协议解析
    Sabertooth 2x32支持三种模式:RC PWM(直接接PWM信号)、Analog(0–5V电压)、Serial(TTL电平指令)。新手常误选RC模式却未调整DIP开关,导致驱动板将1500μs识别为“全制动”而非“中立”。更隐蔽的问题是VESC:它默认启用DShot150协议,但DonkeyCar的vesc.py驱动仅支持UART文本指令(如v1234),若VESC固件未切换至UART模式,校准程序会持续超时。

  • 第四层:电机-轮胎-地面耦合系统
    即使信号链完美,物理层仍有非线性:电机启动需克服静摩擦力(死区),低速段扭矩响应迟滞,高速段因反电动势导致转速饱和。我在370电机+橡胶轮胎组合上实测,0–10%油门指令对应0–3rpm转速(几乎不动),而90–100%指令仅提升120–135rpm——这意味着校准必须分段处理,不能简单线性映射。

提示:校准前务必确认你的驱动板型号与DonkeyCar配置文件中的DRIVE_TRAIN_TYPE严格一致。我在GitHub Issues里见过太多案例:用户用RoboClaw却在myconfig.py里写DRIVE_TRAIN_TYPE = "DC_STEERING_THROTTLE",结果校准程序向RoboClaw发送Sabertooth专用指令,驱动板直接进入保护锁死状态。

2.2 DonkeyCar校准流程的三大核心目标

DonkeyCar的calibrate_throttle命令表面是调整三个参数,实则达成三个硬性物理目标:

  1. 死区消除(Deadzone Elimination)
    确保摇杆在中立位±5°范围内,电机完全停转。这要求throttle_deadzone参数能覆盖遥控器中立位偏差+接收机噪声+驱动板最小响应阈值。实测中,FS-i6X+FS-iA6B组合的综合死区为±23μs,对应DonkeyCar的throttle值约±0.015(计算过程见2.3节)。

  2. 线性度保障(Linearity Guarantee)
    从怠速(1100μs)到满油门(1900μs)的800μs区间,需映射为throttle值-1.0到+1.0的线性输出。但驱动板实际响应常呈S型曲线——低段斜率小,中段陡峭,高段压缩。校准需通过throttle_min/throttle_max截取有效线性段,舍弃两端非线性区。

  3. 方向一致性(Direction Consistency)
    油门推杆“向上推”必须对应小车前进,“向下拉”对应倒车。若接线时将油门通道接到CH2(通常为副翼),或驱动板正负极反接,校准后会出现“推杆向上车往后退”的灾难性结果。DonkeyCar用THROTTLE_FORWARD_PWMTHROTTLE_REVERSE_PWM两个参数强制定义方向,而非依赖物理接线顺序。

2.3 参数换算原理:从微秒到浮点数的精确映射

DonkeyCar内部将PWM脉宽(μs)统一归一化为[-1.0, +1.0]浮点数,换算公式为:
throttle_value = (pulse_width - 1500) / 400

推导过程:

  • 标准中立位 = 1500μs → 归一化为0.0
  • 标准满油门 = 1900μs → (1900-1500)/400 = +1.0
  • 标准怠速 = 1100μs → (1100-1500)/400 = -1.0

但此公式假设遥控器绝对精准。实际需用实测中立位修正:
若示波器测得中立位为1487μs,则新零点 = 1487μs,满油门/怠速仍按1900/1100μs计算,此时:
throttle_value = (pulse_width - 1487) / 400
→ 这正是throttle_minthrottle_max参数的物理意义:它们不是随意设定的数值,而是根据实测脉宽计算出的归一化边界。

我整理了五款主流遥控器的实测中立位数据供你参考:

遥控器型号实测中立位(μs)对应throttle_deadzone建议值备注
Flysky FS-i6X1482–15170.018–0.022批次差异大,必实测
Radiomaster TX121495–15030.012–0.015稳定性最佳
FrSky Taranis QX71498–15050.013–0.016需关闭OpenTX的“Trim Expo”
Turnigy 9X1470–15300.025–0.035老旧机型,偏差显著
BetaFPV LiteRadio1490–15100.015–0.020性价比之选

注意:throttle_deadzone值并非越大越好。过大会导致油门响应迟钝,小车起步“肉”;过小则中立位抖动。我的经验是:先设0.015,完成校准后在manage.py中手动微调,观察Throttle:实时值在摇杆回中时是否稳定在±0.003内。

3. 实操全流程:从硬件检查到参数固化,一步不跳的现场记录

3.1 校准前的七项硬件自检清单

在运行python manage.py calibrate_throttle前,必须完成以下检查。跳过任一项,90%概率校准失败:

  1. 遥控器电池电量
    低于6.8V时,FS-i6X的PWM输出会漂移。用万用表测接收机电池座电压,确保≥7.2V。我曾因一节AA电池虚电,导致校准后小车始终向左偏航。

  2. 接收机天线方向
    FS-iA6B的天线必须垂直于遥控器天线(即90°夹角),平行放置会导致信号衰减30%,PWM波形出现毛刺。

  3. 驱动板DIP开关状态
    Sabertooth 2x32:确认SW1–SW4为ON OFF ON OFF(RC PWM模式);RoboClaw 2x7A:SW1–SW4为ON ON OFF OFF(RC模式)。用放大镜看开关底部金属片是否完全接触。

  4. 电机接线极性
    将电机线接入驱动板时,红黑线对应M1A/M1B不可反接。反接会导致校准程序判定方向错误,生成负向throttle_max

  5. 供电隔离
    驱动板与主控板(树莓派/Jetson)必须共地,但电源需独立。严禁用树莓派USB口给驱动板供电——电机启停电流突变会拉垮5V轨,导致树莓派重启。我用DFRobot的12V/5A开关电源,一路12V给驱动板,一路5V经LM2596降压模块给树莓派。

  6. 轮胎离地状态
    校准时小车必须悬空(用纸箱垫高),避免轮胎与地面摩擦影响电机响应。实测显示,接地状态下电机启动电流比悬空高2.3倍,易触发驱动板过流保护。

  7. 环境电磁干扰
    远离WiFi路由器、蓝牙音箱、手机充电器。我曾在车库校准,因旁边有无线充设备,示波器显示PWM波形叠加了1.2MHz高频噪声,校准值跳变±0.05。

实操心得:把以上七项做成贴纸,贴在你的工作台边。每次校准前逐条打钩,能节省平均47分钟排障时间。我在深圳创客空间教课时,学员按此清单操作,校准一次成功率从38%提升至92%。

3.2 分步校准操作与关键参数设置

步骤1:启动校准程序并进入交互模式
cd ~/donkeycar source env/bin/activate python manage.py calibrate_throttle

程序启动后,终端显示:

Throttle Channel: 3 Press 'q' to quit. Press 'a' to set throttle_min (full reverse) Press 'b' to set throttle_max (full forward) Press 'x' to set throttle_deadzone Press 's' to save and exit

关键操作细节

  • 此时遥控器不要开机!程序会先读取当前GPIO电平作为基线。若遥控已开启,基线值被污染,后续校准全错。
  • 确保摇杆处于完全回中位置(用游标卡尺量摇杆轴心到外壳距离,两侧误差≤0.3mm)。
步骤2:设定throttle_min(怠速点)
  • 打开遥控器电源,将油门摇杆缓慢拉到底(怠速位),保持5秒。
  • 在终端按a键,程序读取此刻PWM值并显示:
    throttle_min set to -0.998
  • 验证动作:松开摇杆回中,观察终端Throttle:值是否回落至-0.002附近。若为-0.123,说明摇杆未拉到底或接收机故障。

实测数据:FS-i6X在怠速位实测脉宽1092–1108μs,归一化后为-1.02~-0.98。DonkeyCar取中值-1.00,但建议保留-0.998——留0.002余量防信号抖动。

步骤3:设定throttle_max(满油门点)
  • 将油门摇杆缓慢推到底(满油门位),保持5秒。
  • b键,终端显示:
    throttle_max set to 0.996
  • 致命陷阱:推杆速度过快会导致PWM波形过冲。我用示波器抓过波形,快速推动时1900μs脉宽会瞬时跳到1925μs,程序采样到错误峰值。务必用1秒匀速推动。
步骤4:设定throttle_deadzone(死区)
  • 摇杆回中,按x键,程序自动计算当前值作为死区中心。
  • 终端提示:Current throttle: -0.003, setting deadzone to 0.015
  • 手动优化:此时按x键三次,程序会将死区扩大为0.018、0.021、0.024。观察摇杆微动时Throttle:值是否在±0.003内跳变。最优值是扩大到跳变消失的最小值。
步骤5:保存参数并验证
  • s键保存,参数写入myconfig.py
    THROTTLE_MIN = -0.998 THROTTLE_MAX = 0.996 THROTTLE_DEADZONE = 0.021
  • 立即运行python manage.py drive,在WebUI中观察Throttle滑块:
    • 摇杆回中 → 滑块停在0.000,无抖动
    • 摇杆推1/4 → 滑块停在0.248–0.252(理论值0.25)
    • 摇杆拉1/4 → 滑块停在-0.249–-0.253(理论值-0.25)

实操心得:保存后别急着关机!用手机慢动作录像拍下摇杆回中瞬间,回放确认无肉眼可见抖动。我曾因0.001的残余抖动,在赛道测试时小车连续撞墙三次。

3.3 三类驱动板的专项校准技巧

Sabertooth 2x32方案(最常用)
  • DIP开关陷阱:SW1–SW4必须为ON OFF ON OFF,但SW3(Enable)易被误认为“关机开关”。实测发现,SW3=OFF时驱动板仍供电,但RC模式失效,表现为摇杆推动时电机无反应。
  • 校准后必做:用万用表测M1A/M1B间电压。摇杆回中时应为0V;推杆1/2时应为6.2V(12V供电下);若为0.3V,说明死区过大或驱动板故障。
  • 散热警告:连续校准超3分钟,Sabertooth表面温度>70℃,需停机冷却。我用铝制散热片+小风扇改装,校准效率提升2倍。
RoboClaw 2x7A方案(高扭矩首选)
  • 串口速率坑:RoboClaw默认波特率38400,但DonkeyCar的roboclaw.py驱动设为115200。需用RoboClaw Config Utility软件将波特率改为115200,并勾选“RC Mode”。
  • 方向校准秘籍:若小车前进时摇杆需下拉,进入Config Utility → “General Settings” → 勾选“Invert RC Throttle”。
  • 电流监控:校准中观察RoboClaw面板LED,绿色常亮为正常;红色闪烁表示过流,立即停止——常见于轮胎接地未悬空。
VESC方案(高性能进阶)
  • 固件切换:必须刷入VESC_TOOL里的UART固件(非DShot)。在VESC Tool中:App SettingsApp to useUARTSave
  • 校准命令变更:VESC不支持calibrate_throttle,需改用:
    python manage.py --model=models/mypilot.h5 drive --type=vesc
    然后在WebUI中手动拖动Throttle滑块,用万用表测VESC的ADC引脚电压(0–3.3V对应-1.0~+1.0),反向推算参数。
  • 安全锁:VESC有硬件使能引脚(EN),必须接高电平才能输出。校准前用杜邦线将EN5V短接,否则电机永远不转。

4. 常见问题与排查技巧实录:那些让我熬夜到凌晨三点的Bug

4.1 油门值持续跳变(±0.05以上)

现象:摇杆稳稳回中,终端Throttle:显示0.023-0.0180.031循环跳变。
排查路径

  1. 查电源纹波:用示波器测树莓派5V引脚,若纹波>80mV,更换电源或加LC滤波(100μH电感+1000μF电容)。
  2. 查GPIO干扰:拔掉所有非必要外设(GPS、IMU、LED灯带),仅留遥控接收机。若跳变消失,说明外设地线引入噪声。
  3. 查接收机固件:FS-iA6B需升级到V2.1固件(官网下载),旧版固件在弱信号下PWM抖动达±30μs。

终极方案:改用Arduino Nano桥接。我编译了定制固件,加入5点滑动平均滤波,跳变降至±0.002。代码开源在GitHub(搜索donkeycar-arduino-filter)。

4.2 校准完成后小车原地打滑

现象throttle_min/max已设,摇杆回中时电机嗡嗡响但车轮微转。
根因分析

  • 死区不足throttle_deadzone=0.015太小,电机启动扭矩>静摩擦力。
  • 驱动板响应延迟:Sabertooth在RC模式下有12ms响应延迟,导致PID控制器误判。
  • 轮胎打滑:橡胶轮胎在光滑地面静摩擦系数<0.4,电机微转即突破极限。

解决步骤

  1. throttle_deadzone提高至0.025,重新校准。
  2. myconfig.py中添加:
    # Sabertooth响应补偿 THROTTLE_DELAY = 0.012 # 单位:秒
  3. 更换硅胶轮胎或铺防滑垫。我在车库用地胶垫(摩擦系数0.8),打滑问题彻底解决。

4.3 摇杆推动时小车倒退,拉动时前进

现象:物理摇杆方向与小车运动方向完全相反。
三步定位法

  1. 查接线:确认遥控接收机的CH3线接在Arduino的D2(DonkeyCar默认),而非D3
  2. 查驱动板极性:断电,用万用表二极管档测M1A/M1B间电阻。若正反向导通,说明MOSFET击穿,需更换驱动板。
  3. 查软件反转:在myconfig.py中添加:
    THROTTLE_INVERTED = True # 强制反转油门方向

    注意:此参数仅在硬件无法调整时使用。我坚持“硬件优先修正”,因软件反转会降低控制精度。

4.4 校准程序卡在“Waiting for signal...”

现象:终端显示Waiting for signal on channel 3...,数分钟无响应。
硬件级排查表

检查项正常状态异常表现解决方案
接收机LED常亮绿灯红灯闪烁更换接收机电池
Arduino RX LED每秒闪1次不闪或狂闪检查Arduino与接收机连线
树莓派GPIO2引脚电压摇杆回中=1.8V恒为0V或3.3V用万用表测GPIO2对地电压
ls /dev/tty*/dev/ttyACM0无ACM设备重插Arduino USB线,查dmesg日志

深度技巧:若/dev/ttyACM0不存在,执行sudo dmesg | grep tty,若输出cdc_acm 1-1.2:1.0: ttyACM0: USB ACM device,说明驱动加载成功;若无此行,需在/boot/config.txt末尾添加:

enable_uart=1 dtoverlay=disable-bt

然后sudo systemctl disable hciuart

4.5 多遥控器协同校准(车队场景)

需求场景:实验室需同时校准10台DonkeyCar,每台配不同遥控器。
高效方案

  • python manage.py calibrate_throttle --channel 3 --save-path ./configs/car01.py指定配置文件路径。
  • 编写批量脚本batch_calibrate.sh
    #!/bin/bash for i in {01..10}; do echo "Calibrating car$i..." python manage.py calibrate_throttle --channel 3 --save-path ./configs/car${i}.py < ./scripts/car${i}_input.txt sleep 10 done
    其中car01_input.txt预存按键序列:a(设min)→Enterb(设max)→Enterx(设deadzone)→s(保存)。
  • 物理管理:给每台遥控器贴色标(红/蓝/绿),接收机天线缠不同颜色胶带,避免混淆。

我在深圳大学AI实验室部署20台车队时,用此方案将单台校准时间从12分钟压缩至90秒,总耗时30分钟。关键在预录按键序列——实测人工按键误差达±0.3秒,而脚本精确到毫秒。

5. 校准后的性能验证与长期维护

5.1 四维验证法:确保校准值真实可靠

完成校准不等于万事大吉,必须通过以下四维验证:

  1. 时间维度验证:连续运行2小时,每15分钟记录一次throttle中立值。若波动>±0.005,说明电源或温漂问题。我在Jetson Nano上发现,CPU温度>65℃时,GPIO捕获精度下降,需加装散热风扇。

  2. 温度维度验证:在校准室(25℃)完成后,移至车库(15℃)和阳光下(38℃)各测一次。优质遥控器温度漂移<±8μs/10℃,劣质品可达±25μs/10℃。

  3. 负载维度验证:空载校准后,加装300g配重(模拟摄像头+电池),重复校准。若throttle_max变化>0.01,说明电机负载影响信号链,需检查驱动板散热。

  4. 频谱维度验证:用RTL-SDR接收2.4GHz遥控信号,分析频谱纯净度。若存在谐波杂散(如1.2GHz峰),说明遥控器晶振老化,应更换。

5.2 参数长期维护指南

校准参数不是一劳永逸,需按周期维护:

  • 日常:每次开机前,摇杆回中观察Throttle:是否稳定在0.000±0.002。
  • 每周:用游标卡尺测摇杆机械回中精度,若偏差>0.5mm,清洁摇杆电位器(用电子清洁剂喷3秒)。
  • 每月:用示波器复测PWM波形,重点看上升沿时间(应<1μs)。若>2μs,更换接收机。
  • 每季:更新DonkeyCar主干分支,重新运行校准。因pwm.py驱动常有精度优化(如v4.3.0加入卡尔曼滤波)。

个人经验:我在车库墙上贴了一张“校准日志表”,记录每次校准的日期、遥控器型号、throttle_deadzone值、环境温度。坚持11个月后,发现FS-i6X的死区值随使用次数线性增大(每月+0.001),这让我提前更换了3台老化遥控器,避免了赛道事故。

5.3 从校准到驾驶的无缝衔接

校准只是起点,真正的价值在于它如何支撑后续驾驶:

  • PID调参基础throttle_deadzone直接决定PID控制器的积分分离点。死区过大,积分项累积过慢,小车起步“肉”;死区过小,积分饱和,导致过冲撞墙。
  • 数据集质量:录制user/throttle数据时,若校准不准,10%油门指令实际对应15%扭矩,模型学到的是错误映射,训练后小车永远学不会平稳起步。
  • 仿真一致性:DonkeyCar的Gazebo仿真中,throttle_min/max参数必须与实车一致,否则仿真训练的模型迁移到实车时,油门响应偏差达40%。

最后分享一个硬核技巧:在校准完成后,立即运行python manage.py makemovie --tub=data/tub_123 --out=movie.mp4,生成一段摇杆从怠速→中立→满油门的视频。用帧分析工具(如FFmpeg)提取每帧的throttle值,绘制曲线图。理想曲线应为平滑直线,若出现拐点,说明某段PWM非线性,需在myconfig.py中启用分段线性映射(DonkeyCar v4.4+支持)。这个动作让我揪出了两块有缺陷的Sabertooth驱动板,它们在70–85%油门段存在明显平台区。

我在深圳南山车库的DonkeyCar调试台上,贴着一张泛黄的便签,上面写着:“油门校准不是调参数,是给机器装上人类的手感。”每一次微调死区,都是在教小车理解“轻点”和“深踩”的区别;每一次重设throttle_max,都是在帮它学会克制的力量。当你看到小车在赛道上平稳过弯,油门响应如呼吸般自然,那正是无数个深夜里,你和示波器、万用表、遥控器共同完成的精密对话。

http://www.jsqmd.com/news/1074907/

相关文章:

  • 第 31 篇:keep-alive:连接保活的真相
  • 台球辅助工具终极指南:3分钟掌握精准瞄准技巧
  • Hokuyo激光雷达与gmapping建图原理及TurtleBot实战调优
  • 终极指南:3步安装League Akari,免费英雄联盟智能助手提升你的游戏体验
  • GEO内容结构化技术是什么?如何让AI精准提取和引用品牌信息?
  • 3步搭建个人专属网页邮箱:Roundcube Mail完整实战指南
  • 1个脚本搞定5个网盘签到
  • 【6.17】搞懂 OFDM:5G、WiFi 高速上网的底层核心,顺带讲清它天生的 “音量忽大忽小” 毛病!
  • 8位MCU市场格局与技术演进:从历史洞察看嵌入式控制器的持久生命力
  • Windows资源管理器3D模型缩略图革命:告别“盲选文件“,开启可视化文件管理新时代
  • MHMarkets迈汇:“算力热潮支撑市场情绪”
  • How to Write a Strong Thesis Statement
  • 美加墨世界杯期间,请网站防范风险插件造成的劫持
  • 099、NPU的RISC-V扩展:自定义NPU指令
  • 【维安康】射频功率放大器:全链条自主可控,重新定义无线通信的“能量引擎“
  • 孟献贵民法精讲讲义2026年|孟献贵民法精讲讲义2026答案|孟献贵民法精讲讲义
  • AI/ML论文的Thesis Statement写作指南:从模糊描述到可证伪的技术主张
  • 04-性能优化与最佳实践——05. 代码分割 - lazy 与 Suspense
  • Mythos能力解析:隐性知识建模与跨语境前提推演技术
  • ORM(Object-Relational Mapping,对象关系映射)
  • Lingjing(灵境)+vulnhub:Empire_Breakout打靶记录
  • 监督对比学习提升木薯病害识别准确率的实战解析
  • 别把 AI 硬塞进 OA:从审批、问答到数据分析的落地清单
  • 李佳行政法笔记|李佳行政法精讲讲义|李佳行政法口诀
  • 092、NPU的虚拟地址支持:MMU与IOMMU
  • 孟献贵民法精讲pdf|孟献贵民法视频|孟献贵民法口诀
  • AI这缸中之脑如何触碰现实? AI 的“脑机接口”Function Call
  • 印刷报价透明度测评:基于西安金顺印务的流程拆解与参数化分析
  • TurtleBot3 Cartographer工程化落地:硬件参数驱动的SLAM配置实战
  • ansys workbench 中的mesh模块生成的网格无法直接传输给static structural 模块中的mesh模块,需要单独划分网格——这个是不是软件bug,建议升级。