无刷直流电机驱动机器人进给轴仿真说明书
模型文件:
BrushlessDCRobotAxisControl.slx(Simulink R2023b,223 885 B,mtime 20-10月-2026 09:49:44)
示例脚本:BrushlessDCRobotAxisControlExample.m(MathWorks,作者 H. Le-Huy,Laval University,1997–2007)
完成日期:2026-10-20
交付目录:Examples\BrushlessDCRobotAxisControlExample\BrushlessDCRobotAxisControl_仿真说明书_261020\
1 模型概述
1.1 功能与来源
本示例演示一台无刷直流(BLDC)电机经减速器驱动两自由度机器人关节(或机床进给轴),用"位置环—转速环—电流环"三环串级控制完成点位定位:
- 位置环是 PD:位置误差乘 KpK_pKp,叠加实测角速度乘 KdK_dKd(微分反馈而非误差微分),输出转速指令;
- 转速环是 PI:采样周期 Tsc=140T_{sc} = 140Tsc=140 µs,输出转矩指令,限幅 ±26.7\pm 26.7±26.7 N·m;
- 电流环是滞环:带宽 h=0.1h = 0.1h=0.1 A,矢量控制采样周期 Tvect=20T_{vect} = 20Tvect=20 µs,直接产生逆变桥门极信号;
- 传动链是两级减速(i1=130i_1 = 130i1=130、i2=100i_2 = 100i2=100),减速器带柔性轴(KshK_{sh}Ksh、BshB_{sh}Bsh)与自身惯量;
- 机械负载是两关节刚体动力学,关节 1 的惯量随关节 2 的角位置变化(J1J_1J1 是 θ2\theta_2θ2 的函数)。
本模型回答的工程问题很具体:在"位置—转速—电流"三级都闭环、且机械负载惯量远大于电机惯量(折算比约 1:11:11:1 到 1:21:21:2)的条件下,点位定位的跟踪精度由哪一环决定,电机的转矩与电流峰值留有多少裕量。
官方描述的要点共四条,本说明书第 4 章逐条用数据核对:
| # | 官方描述(原文要点) | 实测值 | 核对位置 |
|---|---|---|---|
| 1 | 两关节由三次多项式轨迹从 −30°/−45°-30°/-45°−30°/−45° 走到 30°/45°30°/45°30°/45°,tfin=1.5t_{fin} = 1.5tfin=1.5 s | 终值 30.00003° / 44.99991°,轨迹在 1.5 s 结束 | 4.1 节 |
| 2 | 位置环输出转速指令,限幅 ±2200\pm 2200±2200 rpm | 转速给定峰值 1297.0 / 1498.1 rpm,未触及限幅 | 4.4 节 |
| 3 | 电机转矩指令限幅 ±17.8×1.5=±26.7\pm 17.8 \times 1.5 = \pm 26.7±17.8×1.5=±26.7 N·m | 电磁转矩实测 [−11.57,+8.88][-11.57, +8.88][−11.57,+8.88] N·m,用了 43 % 的限幅 | 4.8 节 |
| 4 | 电流环为滞环调制,带宽 0.1 A | 导通平台纹波峰峰 1.89 A,等效开关频率 5.85 kHz | 4.6、4.7 节 |
第 3 条值得单独说明:官方把转矩限幅写成
Tmin = -17.8*1.5、Tmax = 17.8*1.5,是表达式而不是数值。1.5 是"1.5 倍过载"的系数,17.8 N·m 是电机额定转矩。本说明书统一按 26.7 N·m 引用。
物理来源:驱动块 AC6 是 SPS 库中六步换相、梯形反电动势的 BLDC 驱动。永磁磁链 ψf=0.175\psi_f = 0.175ψf=0.175 V·s,极对数 p=4p = 4p=4,由此确定两个基本常数:
ke=pψf=4×0.175=0.700 V⋅s/rad,kt=2pψf=2×4×0.175=1.400 N⋅m/A k_e = p\psi_f = 4\times0.175 = 0.700\ \mathrm{V\cdot s/rad},\qquad k_t = 2p\psi_f = 2\times4\times0.175 = 1.400\ \mathrm{N\cdot m/A} ke=pψf=4×0.175=0.700 V⋅s/rad,kt=2pψf=2×4×0.175=1.400 N⋅m/A
注意 kt=2kek_t = 2k_ekt=2ke:前者是"两相串联导通"口径,后者是"单相"口径。第 5 章的转矩平衡与功率平衡反复用到这个 2 倍关系。
1.2 原理框图

图1-1 系统原理框图
主回路自左至右:三相 220 V / 60 Hz 电源 → 不控整流 + 2 000 µF 母线 → 三相逆变桥(IGBT/二极管,六步换相)→ 永磁同步电机(梯形反电动势)→ 减速器 + 关节。
控制链自下而上:轨迹发生器给出两关节的三次多项式位置指令 θ∗\theta^{*}θ∗,送位置控制器(PD,输出转速指令 N∗N^{*}N∗),再送转速电流环(PI + 滞环,输出门极信号去驱动逆变桥)。反馈通道是编码器:关节角 θ\thetaθ 与角速度 ω\omegaω 回到位置控制器,电机转速回到转速环。
图上的所有数字都取自本次仿真的实测值或模型掩膜原值,不是数据手册标称值。
1.3 信号流与数据出口
模型的观测点不在信号线上,而在三个带数据记录的 Scope 块里:Measurement center 子系统内含 Motor Drive 1 Measurements T1、Motor Drive 2 Measurement T2、Robot Measurements 三个 Scope。它们各自记录一路 8 列 / 5 列的复合信号:
| 出口 | 列 | 信号 | 单位 | 来源块 |
|---|---|---|---|---|
drive(轴 1 驱动) | 1~3 | VabV_{ab}Vab、IabcI_{abc}Iabc(3 相) | V、A | 逆变桥输出测量 |
| 4 | TeT_eTe 电磁转矩 | N·m | AC6 输出 | |
| 5 | NNN 转速 | rpm | AC6 输出 | |
| 6 | N∗N^{*}N∗ 转速给定 | rpm | 转速环输出 | |
| 7 | TrefT_{ref}Tref 转矩给定 | N·m | 转速环输出 | |
drive1(轴 2 驱动) | 1~8 | 同 drive,轴 2 | Motor Drive T2 | |
robot(机械侧) | 1~2 | Tq1T_{q1}Tq1、Tq2T_{q2}Tq2 关节转矩 | N·m | 减速器输出 |
| 3~4 | α1\alpha_1α1、α2\alpha_2α2 角加速度 | rad/s2^22 | Robot 输出 | |
| 5~6 | ω1\omega_1ω1、ω2\omega_2ω2 角速度 | rad/s | Robot 输出 | |
| 7~8 | θ1\theta_1θ1、θ2\theta_2θ2 关节角 | rad | Robot 输出 | |
| 9 | J1 & J2J_1\ \&\ J_2J1 & J2 当前惯量 | kg·m2^22 | Robot 输出 |
时间轴是定步长 1 µs 的等距栅格,0~2 s 共 2 000 001 点。16 列 ×\times× 2 000 001 点一次性落盘约 260 MB,且 MATLAB 堆上限只有约 1.66 GB,故落盘分三层(见 8.2 节):
S:全程按 20 块(20 µs)做块均值后的包络栅格(100 000 点),用于全过程趋势;RZ1、RZ2:0.745~0.765 s 与 1.895~1.915 s 两段原始 1 µs 窗口(各 20 000 点),用于电流纹波与开关频率分析;RAW:在原始 1 µs 栅格上直接取的极值与时刻,不经过任何重采样。
R8 口径:超调量、上升时间、峰值、峰值时刻这些暂态类指标全部在原始 1 µs 栅格上算(
RAW),包络只用于画趋势图。包络的 20 µs 块均值会把开关尖峰抹平,实测差异是:电流原始峰值 11.074 A vs 包络 10.969 A(偏低 0.95 %);转矩原始 [−11.694,+8.950][-11.694, +8.950][−11.694,+8.950] N·m vs 包络 [−11.567,+8.877][-11.567, +8.877][−11.567,+8.877] N·m(偏低 1.0 %);转速两者完全一致(1298.04 对 1298.04)。位置与转速这类缓变量可以用包络,电流与转矩的极值必须用原始栅格。
所有时均值一律用时间加权梯形积分
yˉ=1t2−t1∫t1t2y dt \bar{y} = \frac{1}{t_2 - t_1}\int_{t_1}^{t_2} y\,dt yˉ=t2−t11∫t1t2ydt
不用 mean;RMS 同理用 ∫y2dt/(t2−t1)\sqrt{\int y^2 dt/(t_2-t_1)}∫y2dt/(t2−t1)。本模型栅格均匀,两种口径数值接近,但统一后与扫描脚本可比。
2 模型结构
2.1 顶层

图2-1 模型顶层
顶层共 44 个块:15 个子系统、11 个 From、14 个 Goto、2 个 Gain、2 个 Terminator。按功能分四组:
- 轨迹与控制器组:
Trajectory generator(一路两输出)、Position Controller T1、Position Controller T2; - 驱动组:
AC Source T1/T2(三相电压源)、Motor Drive T1/T2(含整流、母线、斩波、逆变、电机、转速环、电流环的复合掩膜块)、Speed Reducer与Speed Reducer1; - 机械组:
Robot(两关节刚体动力学); - 观测与辅助组:
Measurement center(三个 Scope)、measurements T1/T2(纯信号整理,不参与动力学)、powergui(Discrete,Ts=T_s =Ts=Ts)、More Info(纯文本说明)。
From/Goto 是成对的无线连接,把 teta_ref1、teta_ref2、TH1、TH2、NREF1、NREF2、w1、w2、teta1、teta2、alfa1、alfa2 等 12 条信号在图上"拉直",避免长距离走线。Gain 与 Gain1 的增益都是 30/π,作用是把减速器输出的角速度 rad/s 换算成 rpm 送转速环比较。
两个 Terminator 接在 Motor Drive 的 Wm 输出上——该端口在本模型中不使用(转速由减速器侧反算),因此端接而非悬空。
2.2 电机驱动子系统

图2-2 电机驱动子系统
功率通道自左下到右上:Three-phase diode rectifier(不控整流,Ron=1R_{on} = 1Ron=1 mΩ、Vf=1.3V_f = 1.3Vf=1.3 V、缓冲 Rsnb=10R_{snb} = 10Rsnb=10 kΩ / Csnb=20C_{snb} = 20Csnb=20 nF)→ Braking chopper(R=8R = 8R=8 Ω、f=4f = 4f=4 kHz、投入 320 V、退出 310 V)→ 母线电容 2 000 µF → Three-phase inverter(IGBT/Diode,Ron=1R_{on} = 1Ron=1 mΩ、Vf=0.8V_f = 0.8Vf=0.8 V、Tf=1T_f = 1Tf=1 µs、Tt=2T_t = 2Tt=2 µs)→ Permanent Magnet Synchronous Machine (trapezoidal back-EMF)。
控制通道自左上:Speed Controller(PI,kp=0.5k_p = 0.5kp=0.5、ki=10k_i = 10ki=10、限幅 ±26.7\pm 26.7±26.7 N·m、采样 Tsc=140T_{sc} = 140Tsc=140 µs,PI 内环还有一个 1 kHz 输出滤波)→ Current Controller(滞环,h=0.1h = 0.1h=0.1 A,最高频率 freq_max = 20 kHz,采样 Tvect = 20 µs)→ VECT(矢量变换与门极分配)→ Detailed gates → 逆变桥。
Measures 块汇总 iabci_{abc}iabc、VabcV_{abc}Vabc、TeT_eTe、ωm\omega_mωm,经 Multiple output buses 拆成 motor、conv、ctrl 三条总线输出。rad2rpm 把 ωm\omega_mωm 换成 rpm 反馈到转速环的 N 端。
Tf = 1 µs、Tt = 2 µs 是开关器件的最小导通/关断时间,它们把实际开关频率压住——这是 4.7 节解释"实测开关频率只有 5.85 kHz、远低于 20 kHz 上限"的关键。
2.3 机器人机械子系统

图2-3 机器人机械子系统
上半部是轴 1,下半部是轴 2,结构完全对称:输入 T1(关节转矩,来自减速器)→ 减去阻尼项 C1ω1C_1\omega_1C1ω1 → 除以当前惯量 J1J_1J1 得到角加速度 α1\alpha_1α1 → 两个离散积分器(KTsz−1\frac{KT_s}{z-1}z−1KTs)依次得到 ω1\omega_1ω1 与 θ1\theta_1θ1。
三个 f(u) 块是该子系统的核心,表达式都是掩膜原值:
J1(θ2)=174.272 θ22+79.578 θ2+170 kg⋅m2,J2=50 kg⋅m2 J_1(\theta_2) = 174.272\,\theta_2^2 + 79.578\,\theta_2 + 170\ \mathrm{kg\cdot m^2},\qquad J_2 = 50\ \mathrm{kg\cdot m^2} J1(θ2)=174.272θ22+79.578θ2+170 kg⋅m2,J2=50 kg⋅m2
C1=0.005×1302=84.5,C2=0.005×1002=50 N⋅m⋅s/rad C_1 = 0.005\times130^2 = 84.5,\qquad C_2 = 0.005\times100^2 = 50\ \mathrm{N\cdot m\cdot s/rad} C1=0.005×1302=84.5,C2=0.005×1002=50 N⋅m⋅s/rad
J1J_1J1 随 θ2\theta_2θ2 变化,是耦合惯量:关节 2 的摆角改变关节 1 的等效惯量。在本模型的工作区间 θ2∈[−45°,45°]\theta_2 \in [-45°, 45°]θ2∈[−45°,45°] 内,J1J_1J1 从 215 kg·m2^22(θ2=−45°\theta_2 = -45°θ2=−45°)变到 340 kg·m2^22(θ2=+45°\theta_2 = +45°θ2=+45°),跨度为 1.58 倍。
C1C_1C1、C2C_2C2 的表达式 u*0.005*130*130 不是随手填的:0.005 是电机侧粘滞系数 Friction,1302130^21302 是把电机侧阻尼折算到关节侧的减速比平方。第 5.4 节用能量积分验证了这个折算。
两个 G1、G2 块的表达式是 u*0,即重力项为零——本模型不含重力补偿,是纯水平面运动。
2.4 位置控制器子系统

图2-4 位置控制器子系统
结构极简,但有一处容易看错:
N∗=sat[Kp(θ∗−θ)+Kd ω],Kp=32 000 rpm/rad, Kd=400 rpm/(rad/s) N^{*} = \mathrm{sat}\big[K_p(\theta^{*} - \theta) + K_d\,\omega\big],\qquad K_p = 32\,000\ \mathrm{rpm/rad},\ K_d = 400\ \mathrm{rpm/(rad/s)} N∗=sat[Kp(θ∗−θ)+Kdω],Kp=32000 rpm/rad, Kd=400 rpm/(rad/s)
限幅 ±2200\pm 2200±2200 rpm(Saturation 块)。KdK_dKd 乘的是实测角速度 ω\omegaω,不是误差的微分。二者的区别在于:前者是速度反馈阻尼(会压低闭环带宽但显著提高阻尼比),后者是标准 PD(不改变稳态刚度)。对点位定位而言,速度反馈形式更常用,因为它同时抑制了负载扰动引起的速度波动。
KpK_pKp 的量纲是 rpm/rad,KdK_dKd 是 rpm/(rad/s)。这两个数看起来很大,实际含义是:1 rad 的位置误差 → 32 000 rpm 的转速指令,再被 2200 rpm 限幅压住,所以位置环在大误差段实际上是bang-bang 式饱和,只有误差小于 2200/32000=0.06882200/32000 = 0.06882200/32000=0.0688 rad =3.94°= 3.94°=3.94° 后才进入线性区。
2.5 三环控制律与传动链换算
三环的串级关系与量纲换算如下(θ\thetaθ 用 rad,NNN 用 rpm,TTT 用 N·m):
θ→ Kp(θ∗−θ)+Kdω N∗→ PI Tref→ 滞环 iabc→ kt=2pψf Te \theta \xrightarrow[\ K_p(\theta^{*}-\theta) + K_d\omega\ ]{} N^{*} \xrightarrow[\ \mathrm{PI}\ ]{} T_{ref} \xrightarrow[\ \text{滞环}\ ]{} i_{abc} \xrightarrow[\ k_t = 2p\psi_f\ ]{} T_e θ Kp(θ∗−θ)+Kdω N∗ PI Tref 滞环 iabc kt=2pψf Te
传动链把电机侧与关节侧连起来:
ωm=i ω,N=i ω⋅30π,Tq=η i Te \omega_m = i\,\omega,\qquad N = i\,\omega\cdot\frac{30}{\pi},\qquad T_q = \eta\, i\, T_e ωm=iω,N=iω⋅π30,Tq=ηiTe
其中 η=1\eta = 1η=1(减速器掩膜 eff)。注意 Tq=ηiTeT_q = \eta i T_eTq=ηiTe 是静态关系,动态下柔性轴(Ksh=17 190K_{sh} = 17\,190Ksh=17190 N·m/rad、Bsh=600B_{sh} = 600Bsh=600 N·m·s/rad)会引入扭转角,瞬时值不严格成立。第 4.8 节给出实测两条曲线,本说明书不对 Tq=iTeT_q = iT_eTq=iTe 做定量校核,只对关节侧的转矩平衡做校核(5.3 节)。
直线位移换算是本说明书为"机床进给轴"场景补的一层,模型本身没有丝杠:
s=θ360°⋅h,h=10 mm (假设导程) s = \frac{\theta}{360°}\cdot h,\qquad h = 10\ \mathrm{mm}\ (\text{假设导程}) s=360°θ⋅h,h=10 mm (假设导程)
即关节(与丝杠同轴)转 1 圈,工作台移动 10 mm;折合到电机轴是每电机转 h/i=0.0769h/i = 0.0769h/i=0.0769 mm。轴 1 行程 60° → s=1.667s = 1.667s=1.667 mm,需要电机转 60/360×130=21.66760/360\times130 = 21.66760/360×130=21.667 转。
2.6 关键参数汇总
表2-1 电机参数(AC6 掩膜原值,两轴相同)
| 参数 | 数值 | 单位 | 含义 |
|---|---|---|---|
Rs | 0.2 | Ω | 定子相电阻 |
Lls / Lms | 8.5 / 8.5 | mH | 定子漏感 / 励磁电感 |
FluxCst ψf\psi_fψf | 0.175 | V·s | 永磁磁链 |
p | 4 | - | 极对数 |
J | 0.01 | kg·m2^22 | 转子惯量 |
Friction | 0.005 | N·m·s/rad | 粘滞阻尼 |
TorqueCst ktk_tkt | 1.05 | N·m/A | 转矩常数(填表值,与 2pψf2p\psi_f2pψf 不同口径) |
VoltageCst kek_eke | 126.966 | V·s/rad(电) | 反电动势常数(填表值) |
modelDetailLevel | Detailed | - | 开关级建模 |
driveType | AC6 | - | 六步换相 BLDC |
TorqueCst = 1.05与 2pψf=1.42p\psi_f = 1.42pψf=1.4 不一致。这两个数在 SPS 里服务于不同用途(前者用于内部标幺化,后者是实际电磁关系),本说明书以 2pψf2p\psi_f2pψf 为准,并用第 5 章的转矩平衡验证。
表2-2 电源、母线与控制参数
| 参数 | 数值 | 单位 | 含义 |
|---|---|---|---|
| 电源线电压 / 频率 | 220 / 60 | V / Hz | 三相理想电压源 |
cap_bus | 2 000 | µF | 母线电容 |
activationVoltage / shutdownVoltage | 320 / 310 | V | 制动斩波投入 / 退出 |
Rbrake / fbrake | 8 / 4 000 | Ω / Hz | 斩波电阻与频率 |
Ron_inv / Vf_inv | 1 mΩ / 0.8 V | - | 逆变桥通态参数 |
Tf / Tt | 1 / 2 | µs | 最小开通 / 关断时间 |
kp_sc / ki_sc | 0.5 / 10 | - | 转速环 PI |
Tsc / fc_sc | 140 / 1 000 | µs / Hz | 转速环采样 / 输出滤波 |
Tmin / Tmax | −26.7-26.7−26.7 / +26.7+26.7+26.7 | N·m | 转矩指令限幅 |
modulationType | Hysteresis | - | 电流环调制方式 |
h | 0.1 | A | 滞环带宽 |
Tvect / freq_max | 20 / 20 000 | µs / Hz | 电流环采样 / 最高频率 |
Kp / Kd | 32 000 / 400 | rpm/rad、rpm/(rad/s) | 位置环 PD |
| 位置环限幅 | ±2200\pm 2200±2200 | rpm | Saturation 块 |
表2-3 机械与传动参数
| 参数 | 数值 | 单位 | 含义 |
|---|---|---|---|
posini / posfin | [−30,−45][-30,-45][−30,−45] / [30,45][30,45][30,45] | ° | 轨迹起止点 |
tfin | 1.5 | s | 轨迹持续时间 |
i(Speed Reducer) | 130 | - | 轴 1 减速比 |
i(Speed Reducer1) | 100 | - | 轴 2 减速比 |
Jrdh | 0.001 | kg·m2^22 | 减速器自身惯量(电机侧) |
eff | 1 | - | 传动效率 |
Ksh / Bsh | 17 190 / 600 | N·m/rad、N·m·s/rad | 柔性轴刚度 / 阻尼 |
J_1(\theta_2) | 174.272θ22+79.578θ2+170174.272\theta_2^2+79.578\theta_2+170174.272θ22+79.578θ2+170 | kg·m2^22 | 关节 1 变惯量 |
J_2 | 50 | kg·m2^22 | 关节 2 惯量 |
C_1 / C_2 | 84.5 / 50 | N·m·s/rad | 关节阻尼(=== Friction⋅i2\cdot i^2⋅i2) |
| 折算惯量比 | 约 1:11:11:1 | - | Jmi12=169J_m i_1^2 = 169Jmi12=169 vs J1≈215∼340J_1 \approx 215\sim340J1≈215∼340 |
3 运行方法
3.1 环境要求
- MATLAB / Simulink R2023b,Simscape Electrical(Specialized Power Systems 库);
- 模型依赖
powergui(Discrete,Ts=T_s =Ts=Ts,TsT_sTs 来自 base 工作区的Ts = 1e-6); - 数据图脚本依赖
ml_plot_params.m、ml_tx.m、ml_fig.m、ml_chkpng.m、ml_audit_tx.m、ml_style_legend.m(位于%USERPROFILE%\.workbuddy\skills\matlab-mcp\scripts)。
3.2 运行步骤
按 export -> analyze -> sweep -> figs -> shot 的顺序执行,每个脚本自带路径解析,可在任意目录启动。
| 阶段 | 命令 | 耗时 | 产物 |
|---|---|---|---|
| 基准仿真 | run BrushlessDCRobotAxisControl_export.m | 139.0 s | bdcaxis_base.mat、bdcaxis_cfg.mat |
| 指标计算 | run BrushlessDCRobotAxisControl_analyze.m | 8 s | bdcaxis_metrics.mat |
| 参数扫描 | run BrushlessDCRobotAxisControl_sweep.m | 15 算例 ×\times× 137.5 s ≈ 2 063 s | bdcaxis_sweep.mat |
| 数据图 | run BrushlessDCRobotAxisControl_figs.m | 42 s | 17 张 PNG |
| 截图与框图 | run BrushlessDCRobotAxisControl_shot.m | 26 s | 5 张 PNG |
sweep 脚本设计成按组、按算例分批执行:先 SWGRP = {'KP'} 只跑该组,跑完自动把结果按 tag 合并进 bdcaxis_sweep.mat;这样即使中途被打断,已完成的算例不会丢失(合并函数 mergeSW 会按 tag 去重)。
3.3 本次运行的求解器配置
表3-1 求解器与输出配置
| 项 | 取值 | 说明 |
|---|---|---|
StopTime | 2 s | 模型原值 |
Solver | FixedStepDiscrete | 模型原值 |
FixedStep | auto(实际 1 µs) | 由 base 工作区 Ts = 1e-6 决定 |
powergui | Discrete,Ts=T_s =Ts= Ts,f=60f = 60f=60 Hz,Tustin | 模型原值 |
| 输出栅格 | 2 000 001 点,等距 1 µs | 解算器自身栅格,未重采样 |
| 数据出口 | 3 个 Scope,DataLogging on,Structure With Time | 原始栅格,落盘时按 1.3 节分三层 |
| 单次基准仿真耗时 | 139.0 s(已编译) | 首次编译另加约 18 s |
| 峰值内存 | out 结构约 68 MB | 16 列 ×\times× 2 000 001 点 ×\times× 8 B ≈ 256 MB,实际按需释放 |
关于内存的实测:派单提示 MATLAB 堆约 1.66 GB。本次先做 0.3 s 测速(21~25 s),再用 memory 查 MaxPossibleArrayBytes = 4.66~5.63 GB(随系统负载浮动),确认 2 s 全程 16 列可以一次跑完,未缩短基准仿真的 StopTime。
3.4 与示例默认配置的差异(重要)
表3-2 本次运行相对模型原配置的差异
| 差异 | 内容 | 原因与后果 |
|---|---|---|
| D1 | 运行前在 base 工作区显式赋值 Ts = 1e-6 | 模型的 PreLoadFcn 与 InitFcn 只写 Ts = 1e-6,但 FixedStep 填的是 auto,且 powergui 的采样时间栏直接引用 Ts。脚本用 assignin('base','Ts',1e-6) 显式赋值,保证步长恒为 1 µs |
| D2 | 打开 ReturnWorkspaceOutputs,三个 Scope 置 DataLogging on、格式 Structure With Time、LimitDataPoints off、DecimateData off | 原模型不记录数据(Scope 只显示不落盘),不打开取不到任何曲线;不影响数值结果 |
| D3 | 落盘只存"20 µs 包络 + 两段 20 ms 原始窗口 + 原始栅格极值" | 260 MB 全量落盘无必要(且逼近堆上限);所有暂态指标仍在原始 1 µs 栅格上算,包络只用于画趋势图 |
| D4 | sweep 的 StopTime 与基准相同(2.0 s) | 扫描要覆盖"加速 → 到位 → 保持"全过程,缩短会改变 tfin=1.5t_{fin} = 1.5tfin=1.5 s 之后的稳态判据,故未缩短 |
| D5 | 求解器、powergui、FixedStep、全部元件参数与掩膜参数 | 均未改动,扫描结束后逐个还原并核对 |
收尾已清理交付目录
仿真数据\*.dmr(残留 0 个)。系统tempdir下有 2 个.dmr未能删除(0f43-a671-07de-3ad3.dmr、b825-2686-2896-224b.dmr):MATLAB 主进程持有句柄,delete、system('del /f /q')、PowerShellRemove-Item -Force三种方式均报"文件正在使用"。它们位于系统临时目录、不在交付目录内,不影响交付物,如实记录在此。BrushlessDCRobotAxisControl.slx的 mtime 全程未变(20-10月-2026 09:49:44,223 885 B)。
4 基准工况仿真结果
本章 11 张图对应一次 2 s 的基准仿真,全部指标抄自 仿真数据\bdcaxis_metrics.mat 与 bdcaxis_base.mat。读图时请始终区分:蓝 = 轴 1、红 = 轴 2、灰虚线 = 给定。
4.1 位置给定与实测

图4-1 位置给定与实测
两条给定曲线都是三次多项式,在 1.5 s 内从起点走到终点,之后保持:
θ∗(t)=θ0+Δ[3τ2−2τ3],τ=min(t,tfin)tfin \theta^{*}(t) = \theta_0 + \Delta\left[3\tau^2 - 2\tau^3\right],\qquad \tau = \frac{\min(t,t_{fin})}{t_{fin}} θ∗(t)=θ0+Δ[3τ2−2τ3],τ=tfinmin(t,tfin)
轴 1:θ0=−30°\theta_0 = -30°θ0=−30°、Δ=60°\Delta = 60°Δ=60°;轴 2:θ0=−45°\theta_0 = -45°θ0=−45°、Δ=90°\Delta = 90°Δ=90°;tfin=1.5t_{fin} = 1.5tfin=1.5 s。
实测曲线与给定曲线在整幅图上完全重合,肉眼分不出两条线——这正是点位定位应有的形态。定量地:
| 指标 | 轴 1 | 轴 2 |
|---|---|---|
| 终值 / ° | 30.00003 | 44.99991 |
| 峰值 / ° | 30.00003 | 45.00011 |
| 峰值时刻 / s | 1.99999 | 1.95513 |
| 超调量 / % | 9.80×10−59.80\times10^{-5}9.80×10−5 | 2.48×10−42.48\times10^{-4}2.48×10−4 |
超调量按 σ=(θmax−θend)/Δ×100%\sigma = (\theta_{max} - \theta_{end})/\Delta \times 100\%σ=(θmax−θend)/Δ×100% 定义,两个轴都在 10−410^{-4}10−4 量级,即数值上无超调。
为什么没有超调?因为位置环进入线性区之前一直是饱和的(误差大于 3.94° 时 N∗N^{*}N∗ 被压在 2200 rpm),而进入线性区时转速已经随轨迹自然降下来,PD 的 KdωK_d\omegaKdω 项又提供了额外阻尼。三次多项式本身在最优点(τ=0.5\tau = 0.5τ=0.5)之后速度单调下降,与 PD 的减速需求同向,不会激起振荡。
4.2 位置跟踪误差

图4-2 位置跟踪误差
误差曲线是判断"位置环跟得好不好"的直接依据,形态分三段:
- 0~0.23 s 起动段:误差从 0 迅速增大,因为给定已经开始加速而电机还在克服惯量,误差是"追不上"造成的;
- 0.23~0.78 s 加速段:误差单调增大到峰值,峰值出现在 0.7763 s(轴 1)/ 0.7683 s(轴 2),正好是给定加速度换向(τ=0.5\tau = 0.5τ=0.5,即 0.75 s)之后一点;
- 0.78~1.5 s 减速段:误差单调回落并过零,误差换号说明实测已经追上给定、开始"超前";
- 1.5~2.0 s 保持段:误差收敛到 10−410^{-4}10−4 度量级。
| 指标 | 轴 1 | 轴 2 |
|---|---|---|
| 峰值误差 / ° | 1.5732 | 1.5581 |
| 峰值时刻 / s | 0.7763 | 0.7683 |
| 全程 RMS 误差 / ° | 0.9942 | 0.9853 |
| 末段(1.9~2.0 s)时均误差 / ° | −2.42×10−4-2.42\times10^{-4}−2.42×10−4 | −2.37×10−5-2.37\times10^{-5}−2.37×10−5 |
| 终点误差 / ° | 2.94×10−52.94\times10^{-5}2.94×10−5 | −8.76×10−5-8.76\times10^{-5}−8.76×10−5 |
| 上升时间(10 %~90 %)/ s | 0.4983 | 0.4975 |
| 调节时间(±2°\pm2°±2°)/ s | 0.0000 | 0.0000 |
| 调节时间(±1.2°\pm1.2°±1.2°)/ s | 1.1404 | 1.1268 |
| 调节时间(±0.5°\pm0.5°±0.5°)/ s | 1.3942 | 1.3850 |
| 调节时间(±0.05°\pm0.05°±0.05°)/ s | 1.5199 | 1.5056 |
读表要点:
- 峰值误差 1.57° 占行程的 2.6 %,出现在加速段末尾。这不是稳态误差,而是跟踪滞后——位置环带宽不够,跟不上三次轨迹在 0.75 s 处最大的加速度变化率。
- ±2° 行写 0.0000 是判据不适用:峰值误差 1.5732° 从未超过 2°,按"最后一次超阈值"的定义自然返回 0。真正有信息量的是下面三行。
- ±0.5°(0.83 % 行程)1.394 s 与 ±0.05°(0.083 %)1.520 s:后者已经越过轨迹终点 1.5 s,说明末段的收敛由位置环单独完成,与轨迹无关。阈值越严,调节时间越靠后,这正是 I 型系统典型的指数收敛尾巴。
4.3 关节速度与电机转速

图4-3 关节速度与电机转速
左轴是电机转速 N1N_1N1(rpm),右轴是关节角速度 ω1\omega_1ω1(rad/s)。两条曲线形状完全一致——因为它们本来就是同一个量的两种刻度:
N=i ω⋅30π=130×30π ω≈1241.4 ω N = i\,\omega\cdot\frac{30}{\pi} = 130\times\frac{30}{\pi}\,\omega \approx 1241.4\,\omega N=iω⋅π30=130×π30ω≈1241.4ω
峰值:关节角速度 1.046 rad/s(轴上右侧刻度 1.0 略上方),对应电机转速 1298.0 rpm(0.7747 s)。这个峰值与三次多项式的理论值吻合:
ωpk=1.5Δtfin=1.5×60°1.5 s=60 °/s=1.0472 rad/s \omega_{pk} = 1.5\frac{\Delta}{t_{fin}} = 1.5\times\frac{60°}{1.5\ \mathrm{s}} = 60\ \mathrm{°/s} = 1.0472\ \mathrm{rad/s} ωpk=1.5tfinΔ=1.5×1.5 s60°=60 °/s=1.0472 rad/s
折合电机转速 60×130×60/360=130060\times130\times60/360 = 130060×130×60/360=1300 rpm,实测 1298.0 rpm,差 0.15 %(20 µs 包络的采样损失)。
曲线在 1.5 s 处陡降到零并保持,没有过冲——这是三次多项式的固有性质(τ=1\tau = 1τ=1 时速度与加速度同时为零),不是控制器的作用。
4.4 转速给定与实测

图4-4 转速给定与实测
四条曲线:两轴各一对(虚线 = 给定,实线 = 实测)。整幅图上给定量与实测量几乎完全重合,只在加速段能看到实线略低于虚线(约 5~10 rpm)。
| 指标 | 轴 1 | 轴 2 |
|---|---|---|
| 给定峰值 / rpm | 1297.0 | 1498.1 |
| 实测峰值 / rpm | 1298.0 | 1499.1 |
| 峰值时刻 / s | 0.7747 | 0.7623 |
| 是否触及 2200 rpm 限幅 | 否 | 否 |
| 末值 / rpm | 0.111 | −0.122-0.122−0.122 |
两个轴都没有触及 2200 rpm 限幅,最大只用到 59 %(1298/2200)与 68 %(1499/2200)。这说明轨迹参数(60°/1.5 s、90°/1.5 s)与电机的转速能力是匹配的,转速环没有进入饱和——这也是 4.1 节"无超调"的前提之一。
轴 2 的转速比轴 1 高 15.5 %(1499 对 1298),与行程比(90° 对 60°)和减速比(100 对 130)共同决定:
N2N1=Δ2Δ1⋅i2i1=9060×100130=1.5×0.769=1.154 \frac{N_2}{N_1} = \frac{\Delta_2}{\Delta_1}\cdot\frac{i_2}{i_1} = \frac{90}{60}\times\frac{100}{130} = 1.5\times0.769 = 1.154 N1N2=Δ1Δ2⋅i1i2=6090×130100=1.5×0.769=1.154
实测 1499.1/1298.0 = 1.155,吻合到 0.1 %。
4.5 转速偏差

图4-5 转速偏差
偏差 =N−N∗= N - N^{*}=N−N∗ 的量程只有 ±16\pm 16±16 rpm,把 4.4 节"看不见的差"放大:
- 0~0.7 s 加速段:偏差为负且逐渐增大到 −5-5−5 rpm 左右,电机追不上给定的加速需求;
- 0.7~1.0 s 峰值附近:偏差回到 0 附近,此时加速度接近零,转速环不需要输出大转矩;
- 1.0~1.5 s 减速段:偏差转正并迅速增大,在 1.5445 s(轴 1) 达到 +12.77 rpm 的峰值;
- 1.5 s 轨迹结束瞬间:给定阶跃到零,实测转速因惯性不能立即跟上,偏差出现一个尖锐的负尖峰;
- 1.5~2.0 s 保持段:偏差指数衰减到 ±0.2\pm 0.2±0.2 rpm 以内。
| 指标 | 轴 1 | 轴 2 |
|---|---|---|
| 偏差峰值 / rpm | 12.77 | 8.18 |
| 峰值时刻 / s | 1.5445 | 1.5284 |
| 全程 RMS / rpm | 2.60 | 1.77 |
| 偏差峰值占给定峰值 / % | 0.98 | 0.55 |
为什么峰值出现在 1.54 s 而不是加速段? 因为 1.5 s 时轨迹结束,给定速度从下降斜率直接归零(三次多项式在 τ=1\tau = 1τ=1 处速度为零,但给定在 1.5 s 那一个采样之后恒等于终点),转速环的 PI 有 Tsc=140T_{sc} = 140Tsc=140 µs 的采样延迟加 1 kHz 输出滤波,无法瞬时响应这个"最后一刻的斜率变化"。偏差衰减的时间常数约 0.16 s,与转速环的积分时间 1/ki=0.11/k_i = 0.11/ki=0.1 s 同量级。
轴 1 的偏差(12.77 rpm)比轴 2(8.18 rpm)大 56 %,尽管轴 1 的转速更低。原因是轴 1 的折算惯量比更大:J1/i12J_1/i_1^2J1/i12 在 θ2=−45°\theta_2 = -45°θ2=−45° 时是 215/16900=0.0127215/16900 = 0.0127215/16900=0.0127 kg·m2^22,而 J2/i22=50/10000=0.005J_2/i_2^2 = 50/10000 = 0.005J2/i22=50/10000=0.005 kg·m2^22,前者是后者的 2.5 倍。折算惯量大 → 同样的转矩指令产生的加速度小 → 跟踪偏差大。
4.6 相电流三相波形

图4-6 相电流三相波形(0.745~0.765 s,原始 1 µs)
这是原始 1 µs 栅格上的 20 ms 窗口,三相交替导通,每 60° 电角度换相一次。窗口选在 0.745~0.765 s,是为了避开起动与到位两个暂态,取一个"速度最高、电流较平稳"的工作点。
| 指标 | iai_aia | ibi_bib | ici_cic |
|---|---|---|---|
| 峰峰值(含基波)/ A | 4.446 | 4.370 | 4.341 |
| 峰峰值(去趋势纹波)/ A | 1.910 | 1.843 | 1.920 |
| RMS(去趋势纹波)/ A | 0.372 | 0.369 | 0.361 |
三相的统计量高度一致(极差 < 2.4 %),说明三相是对称的——这是六步换相 120° 导通的必然结果。
"峰峰(含基波)4.39 A"与"纹波峰峰 1.89 A"的区别:前者是窗口内最大值减最小值(含六步换相的台阶),后者是去掉趋势后的纯滞环纹波。去趋势用的是 201 点滑动均值(在 1 µs 栅格上是 201 µs,远小于一个电周期),把基波与换相台阶滤掉,只留下开关频率附近的锯齿。
窗口内三相峰峰值的平均是 4.39 A,远低于全程峰值 11.074 A(原始栅格,出现在 1.5014 s)。也就是说:电流裕量不是在稳态消耗的,而是在轨迹结束的制动瞬间——1.5 s 给定速度归零、实测转速还有残余,电机必须以最大转矩把它拉停。这一点在 4.8 节的转矩负峰上有完全对应的证据。
4.7 电流环滞环细节

图4-7 电流环滞环细节(0.750~0.753 s 放大)
把窗口再放大到 3 ms(3 000 个采样点),滞环调制的锯齿形态清晰可见:
- iai_aia 呈三角波,上下折返的幅度对应滞环带宽 h=0.1h = 0.1h=0.1 A 的两倍(因为一个完整周期要穿过 ±h/2 两次);
- 折返频率约 5.85 kHz,即周期约 171 µs;
- 理论估算:Δi=Udc2L⋅1f\Delta i = \frac{U_{dc}}{2L}\cdot\frac{1}{f}Δi=2LUdc⋅f1,取 Udc≈305U_{dc} \approx 305Udc≈305 V、L=Lls+Lms=17L = L_{ls}+L_{ms} = 17L=Lls+Lms=17 mH、Δi=0.2\Delta i = 0.2Δi=0.2 A,得 f=305/(2×0.017×0.2)=44.8f = 305/(2\times0.017\times0.2) = 44.8f=305/(2×0.017×0.2)=44.8 kHz——远高于实测 5.85 kHz。
为什么实测频率只有理论值的 1/7.7?因为电流环采样周期 Tvect=20T_{vect} = 20Tvect=20 µs 与 freq_max = 20 kHz 共同限制了翻转速度,而更关键的是滞环比较在矢量控制坐标下进行,一个控制周期内只判断一次。这与范例模型(BrushlessDCMotorDriveLowAndHighFidelity)6.5 节的结论一致:数字实现的滞环频率由采样周期主导,不由带宽主导。
4.8 电磁转矩与关节转矩

图4-8 电磁转矩与关节转矩
左轴是电机电磁转矩 TeT_eTe(虚线 = 转速环给出的 TrefT_{ref}Tref),右轴是关节转矩 TqT_qTq。
两条曲线的形态完全不同:
- TeT_eTe 是"宽厚"的带状:从 0 快速升到 8.9 N·m(0.03 s),然后单调下降到负峰 −11.57-11.57−11.57 N·m(1.50 s),再快速回零。带宽来自开关纹波(Te=ktiT_e = k_t iTe=kti,电流纹波 1.89 A 对应转矩纹波 2.6 N·m 峰峰)。
- TqT_qTq 是"细线":从 0 冲到 +572 N·m(0.0658 s),然后降到 −912-912−912 N·m(1.4993 s),再回到 0。
| 指标 | 轴 1 | 轴 2 |
|---|---|---|
| TeT_eTe 最大 / N·m | +8.95 | +7.40 |
| TeT_eTe 最小 / N·m | −11.69-11.69−11.69 | −7.35-7.35−7.35 |
| TrefT_{ref}Tref 峰值 / N·m | 8.21 | 6.58 |
| TqT_qTq 最大 / N·m | +572.1 | +211.9 |
| TqT_qTq 最小 / N·m | −912.7-912.7−912.7 | −204.7-204.7−204.7 |
| 限幅 / N·m | ±26.7\pm26.7±26.7 | ±26.7\pm26.7±26.7 |
| 限幅利用率 | 44 % | 28 % |
三点值得说明:
- TeT_eTe 没有触及 ±26.7 N·m 限幅,最大只用了 44 %(11.69/26.7)。轨迹与电机的能力匹配是宽裕的。
- TeT_eTe 的负峰比正峰大(−11.69-11.69−11.69 对 +8.95+8.95+8.95),且负峰出现在 1.4992 s——正对着轨迹结束的制动瞬间:给定速度归零、实测转速还有残余,电机要“拽住”全部惯量,这是全过程的电磁负荷最重点。
- TqT_qTq 的峰值 572 N·m 与关节惯量相符:θ2≈−45°\theta_2 \approx -45°θ2≈−45° 时 J1=215J_1 = 215J1=215 kg·m2^22,轨迹起始角加速度 αpk=6Δ/tfin2=6×1.047/2.25=2.79\alpha_{pk} = 6\Delta/t_{fin}^2 = 6\times1.047/2.25 = 2.79αpk=6Δ/tfin2=6×1.047/2.25=2.79 rad/s2^22,J1α=600J_1\alpha = 600J1α=600 N·m,与实测 572 N·m 差 4.7 %(差额被阻尼项 C1ω1C_1\omega_1C1ω1 与柔性轴分担)。
Tq≠i TeT_q \ne i\,T_eTq=iTe:130×11.69=1520130\times11.69 = 1520130×11.69=1520 N·m,而实测 TqT_qTq 最小只有 −912.7-912.7−912.7 N·m。原因是减速器内部有柔性轴(KshK_{sh}Ksh、BshB_{sh}Bsh)与自身惯量,动态下两侧转矩不严格成比例;另外 TqT_qTq 与 TeT_eTe 的极值时刻也不同(TeT_eTe 最低在 1.4992 s,TqT_qTq 最低在 1.4993 s,虽接近但由不同物理量决定)。本说明书不对 Tq=iTeT_q = iT_eTq=iTe 做定量校核,改在 5.3 节校核关节侧的 Jα+Bω=TqJ\alpha + B\omega = T_qJα+Bω=Tq。
4.9 传动链换算直线位移

图4-9 传动链换算直线位移
左轴是关节角 θ1\theta_1θ1(°),右轴是按假设丝杠导程 h=10h = 10h=10 mm 换算的工作台直线位移 sss(mm)。两条曲线形状相同,只是刻度不同:
s=θ1360°×10 mm s = \frac{\theta_1}{360°}\times 10\ \mathrm{mm} s=360°θ1×10 mm
| 指标 | 轴 1 | 轴 2 |
|---|---|---|
| 行程 / ° | 60.0000 | 90.0000 |
| 电机转数 / rev | 21.667 | 25.000 |
| 直线位移 / mm | 1.667 | 2.500 |
| 每电机转位移 / mm | 0.0769 | 0.1000 |
| 直线速度峰值 / mm/s | 1.665 | — |
必须强调:模型本身没有丝杠,h=10h = 10h=10 mm 是本说明书为"机床进给轴"场景补的一层换算假设。真实的机床进给轴还会有丝杠导程误差、反向间隙、导轨摩擦,这些都不在模型里。
若把 10 mm 导程换成常见的 5 mm 或 20 mm,位移数值按比例缩放,但角度域的动态特性(超调、上升时间、跟踪误差)完全不变——因为换算只改变输出刻度,不进入反馈回路。
4.10 负载转矩与转速偏差

图4-10 负载转矩与转速偏差
这张图把 4.5 节的转速偏差与 4.8 节的关节转矩画在一起,用来回答"负载变化会不会激起转速波动"。
- 关节转矩 TqT_qTq 从 +572+572+572 N·m 单调降到 −912-912−912 N·m(0~1.5 s),跨度 1 484 N·m;
- 转速偏差在这 1.5 s 内始终不超过 ±5 rpm,只在 1.54 s(轨迹结束后)才冲到 12.77 rpm。
也就是说:负载转矩变化 1 484 N·m,转速波动不到 5 rpm。折算成抗扰能力:
ΔNΔTq=51484=0.0034 rpm/(N⋅m) \frac{\Delta N}{\Delta T_q} = \frac{5}{1484} = 0.0034\ \mathrm{rpm/(N\cdot m)} ΔTqΔN=14845=0.0034 rpm/(N⋅m)
这个数字很小,说明转速环的 PI(kp=0.5k_p = 0.5kp=0.5、ki=10k_i = 10ki=10)配合电流环的快速响应,对缓变负载有很强的抑制能力。
但要注意:这条结论只对缓变负载成立。TqT_qTq 的变化率在 0~1.5 s 内是有限的(最大约 1 500 N·m/s),转速环有 140 µs 采样 + 1 kHz 滤波,足够跟上。若负载是阶跃(如切削力突变),偏差会大得多——本模型没有阶跃负载工况,这一点在 7.2 节列为局限。
4.11 机械功率与累计能量

图4-11 机械功率与累计能量
左轴是瞬时机械功率 pm=Te1ωm1+Te2ωm2p_m = T_{e1}\omega_{m1} + T_{e2}\omega_{m2}pm=Te1ωm1+Te2ωm2(W),右轴是累计能量 Wm=∫pm dtW_m = \int p_m\,dtWm=∫pmdt(kJ)。
功率曲线的形态是"正半周 → 负半周 → 归零":
- 0~0.3 s:功率快速升到 +1 182 W 峰值,此时电机在加速,TeT_eTe 与 ωm\omega_mωm 同号;
- 0.3~0.75 s:功率下降但仍为正,因为 TeT_eTe 在降、ωm\omega_mωm 在升;
- 0.75~1.5 s:功率转负,最低到 −927-927−927 W,此时电机在制动,TeT_eTe 与 ωm\omega_mωm 反号,能量从机械侧回馈到电机;
- 1.5~2.0 s:功率归零并保持。
累计能量先升后降,在 1.5 s 时达到最大值 0.603 kJ,之后回落到 0.297 kJ 并保持。为什么回落:WmW_mWm 是净机械能(正负功率的积分),1.5 s 前加速段注入 603 J,之后减速段的负功率把其中 306 J 送回电机侧,净值为 296.7 J。
| 指标 | 数值 | 说明 |
|---|---|---|
| 净注入机械能 WeW_eWe | 296.72 J | ∫(Te1ωm1+Te2ωm2)dt\int (T_{e1}\omega_{m1} + T_{e2}\omega_{m2})dt∫(Te1ωm1+Te2ωm2)dt |
| 电机粘滞耗散 WdW_dWd | 172.42 J | ∫Bm(ωm12+ωm22)dt\int B_m(\omega_{m1}^2+\omega_{m2}^2)dt∫Bm(ωm12+ωm22)dt |
| 关节阻尼耗散 WjW_jWj | 172.51 J | ∫(C1ω12+C2ω22)dt\int (C_1\omega_1^2+C_2\omega_2^2)dt∫(C1ω12+C2ω22)dt |
| 终态动能 WkW_kWk | 1.49×10−61.49\times10^{-6}1.49×10−6 J | 终态完全静止 |
| 未解释余项 WshW_{sh}Wsh | 124.30 J(41.9 %) | 减速器柔性轴阻尼 |
| 功率峰值 | +1 181.9+1\,181.9+1181.9 / −927.2-927.2−927.2 W | 加速 / 制动(20 µs 包络口径) |
WdW_dWd 与 WjW_jWj 只差 0.09 J(0.053 %),这个巧合不是巧合——它是第 5.4 节要校核的 Bmi2=CB_m i^2 = CBmi2=C 的直接体现。
余项 124.30 J 占 41.9 %,是本模型能量账未闭合的部分。原因是模型里两条 Speed Reducer 各带一对柔性轴阻尼 Bsh=600B_{sh} = 600Bsh=600 N·m·s/rad,这部分耗散没有单独的观测量,无法从数据出口分离。本说明书如实列为余项,不做强行分摊(详见 5.6 节)。
5 定量校核
本章用 7 条互不依赖的校核交叉验证模型自洽性。每条都给出"标称值 / 实测值 / 绝对残差 / 相对残差 / 数据来源",残差定义统一为 ε=(xmeas−xref)/xref\varepsilon = (x_{meas} - x_{ref})/x_{ref}ε=(xmeas−xref)/xref。
5.1 校核一:位置—转速量纲一致性 ω=dθ/dt\omega = \mathrm{d}\theta/\mathrm{d}tω=dθ/dt
做法:在原始 1 µs 栅格上,用相邻两点差分估算 θ˙=(θk+1−θk)/Δt\dot{\theta} = (\theta_{k+1}-\theta_k)/\Delta tθ˙=(θk+1−θk)/Δt,与同一时刻的实测角速度 ω\omegaω 比较,统计最大绝对偏差与 RMS 偏差。不做任何平滑,因为平滑会把差分的真实量级掩盖掉。
| 量 | 轴 1 | 轴 2 |
|---|---|---|
| 峰值角速度 ω\omegaω / (rad/s) | 1.0459 | 1.5700 |
| 最大绝对偏差 / (rad/s) | 1.366×10−61.366\times10^{-6}1.366×10−6 | 2.195×10−62.195\times10^{-6}2.195×10−6 |
| RMS 偏差 / (rad/s) | 6.86×10−76.86\times10^{-7}6.86×10−7 | 1.04×10−61.04\times10^{-6}1.04×10−6 |
| 相对残差 | 1.31×10−61.31\times10^{-6}1.31×10−6 | 1.40×10−61.40\times10^{-6}1.40×10−6 |
结论:残差在 10−610^{-6}10−6 量级,即浮点舍入的相对量级。这条校核确认了三件事:位置积分器的 KTsz−1\frac{KT_s}{z-1}z−1KTs 离散实现是正确的;θ\thetaθ 与 ω\omegaω 来自同一条积分链(不是两路独立采样);1 µs 栅格足以让差分达到机器精度。
5.2 校核二:转速折算 N=i ω⋅30/πN = i\,\omega\cdot 30/\piN=iω⋅30/π
做法:减速器输出 ω\omegaω(rad/s)经 Gain = 30/pi 送转速环,理论上 NNN 与 ω\omegaω 应严格成比例(比例系数 i⋅30/πi\cdot30/\pii⋅30/π)。逐点比较实测 NNN 与该理论值。
| 量 | 轴 1 | 轴 2 |
|---|---|---|
| 理论折算系数 i⋅30/πi\cdot 30/\pii⋅30/π / (rpm/(rad/s)) | 1241.4 | 954.9 |
| 峰值转速 NNN / rpm | 1298.04 | 1499.12 |
| 最大绝对偏差 / rpm | 4.281 | 0.934 |
| RMS 偏差 / rpm | 1.146 | 0.249 |
| 相对残差 | 3.30×10−33.30\times10^{-3}3.30×10−3 | 6.23×10−46.23\times10^{-4}6.23×10−4 |
结论:轴 1 残差 0.33 %、轴 2 残差 0.062 %。轴 1 的残差大 5.3 倍,原因是轴 1 的减速比更大(130 对 100),同样的 ω\omegaω 量化误差被放大 1.3 倍;更要紧的是 Gain 的 30/π 是双精度常数,而 NNN 在 AC6 内部由 ωm\omega_mωm 直接计算,两条路径的舍入不同。0.33 % 的残差对应 4.3 rpm,对转速环(偏差峰值 12.77 rpm)来说不是小量,但它只在峰值附近出现——RMS 只有 1.15 rpm。
5.3 校核三:关节转矩平衡 Jα+Bω=TqJ\alpha + B\omega = T_qJα+Bω=Tq
做法:在原始 1 µs 栅格上,直接用模型输出的 α\alphaα(关节角加速度,不是差分得到的)、ω\omegaω、JJJ(Robot 内部按 θ2\theta_2θ2 实时算的 J1J_1J1、J2J_2J2)与 TqT_qTq 比较:
r=Tq−Jα−Cω r = T_q - J\alpha - C\omega r=Tq−Jα−Cω
其中 C1=84.5C_1 = 84.5C1=84.5、C2=50C_2 = 50C2=50 是 Robot 内部的阻尼块系数。
| 量 | 轴 1 | 轴 2 |
|---|---|---|
| 时均 TqT_qTq / N·m | 912.48 | 211.92 |
| 最大绝对残差 / N·m | 6.32×10−66.32\times10^{-6}6.32×10−6 | 1.42×10−131.42\times10^{-13}1.42×10−13 |
| RMS 残差 / N·m | 1.06×10−61.06\times10^{-6}1.06×10−6 | 2.30×10−142.30\times10^{-14}2.30×10−14 |
| 相对残差 | 6.93×10−96.93\times10^{-9}6.93×10−9 | 6.71×10−166.71\times10^{-16}6.71×10−16 |
| JJJ 自洽性残差 | 1.43×10−81.43\times10^{-8}1.43×10−8 | — |
结论:两条都闭合到机器精度。轴 2 的残差 10−1310^{-13}10−13 是双精度加法的极限;轴 1 的残差 10−610^{-6}10−6 稍大,因为 J1(θ2)J_1(\theta_2)J1(θ2) 是时变参数,f(u) 块在每个采样点重新计算,与 α\alphaα 的更新有一个采样点的先后(离散实现的固有错位),不是物理错误。
JJJ 自洽性一栏是把 f(u) 的 J1J_1J1 表达式与 θ2\theta_2θ2 实测值代回重算,与模型内部值比较,残差 1.4×10−81.4\times10^{-8}1.4×10−8,确认惯量耦合公式实现无误。
5.4 校核四:折算阻尼 Bmi2=CB_m i^2 = CBmi2=C
做法:这是本模型里最容易出错、也最容易被忽略的一条。电机侧的粘滞阻尼 Friction Bm=0.005B_m = 0.005Bm=0.005 N·m·s/rad 折算到关节侧,理论值应为 Bmi2B_m i^2Bmi2。Robot 子系统的 C1、C2 块直接写成 u*0.005*130*130 与 u*0.005*100*100,本节约的是这个折算是否正确,用两个独立口径验证:
口径 A(代数):直接比较块表达式与 Bmi2B_m i^2Bmi2。
口径 B(能量):分别对电机侧与关节侧做阻尼耗散的能量积分,两者应相等(因为 ωm=iω\omega_m = i\omegaωm=iω,Bmωm2=Bmi2ω2=Cω2B_m\omega_m^2 = B_m i^2\omega^2 = C\omega^2Bmωm2=Bmi2ω2=Cω2)。
| 量 | 轴 1 | 轴 2 |
|---|---|---|
| 块内系数 CCC / (N·m·s/rad) | 84.50 | 50.00 |
| 理论 Bmi2B_m i^2Bmi2 | 84.50 | 50.00 |
| 代数残差 | 0 | 0 |
| 电机侧耗散 WdW_dWd / J | 172.419 | (含在左列) |
| 关节侧耗散 WjW_jWj / J | 172.510 | (含在左列) |
| 能量残差 | 0.091 J | — |
| 能量相对残差 | 0.053 % | — |
结论:代数口径完全相等(残差 0),能量口径差 0.053 %。0.053 % 的来源是 WdW_dWd 与 WjW_jWj 的积分窗口端点不同(WdW_dWd 用 ωm\omega_mωm 的 20 µs 包络、WjW_jWj 用 ω\omegaω 的 20 µs 包络,两者在端点处的块均值不完全对齐),不是折算错误。
这条校核的工程意义:只要减速比改了,关节阻尼必须按 i2i^2i2 重算。若照抄 u*0.005*100*100 而不改,第 6.6 节扫描减速比 i1i_1i1 时就会出现"关节阻尼与减速比不匹配"的假象,把所有结论带偏。
5.5 校核五:定位终值稳态误差
做法:点位定位的核心指标是"到位后误差是否为零"。取两个窗口:终点(t=2.0t = 2.0t=2.0 s 的最后一个采样)与末段(1.9~2.0 s 的时均值),与行程比较。
| 量 | 轴 1 | 轴 2 |
|---|---|---|
| 行程 / ° | 60 | 90 |
| 终点误差 / ° | 2.94×10−52.94\times10^{-5}2.94×10−5 | −8.76×10−5-8.76\times10^{-5}−8.76×10−5 |
| 终点相对误差 / % | 4.90×10−54.90\times10^{-5}4.90×10−5 | 9.73×10−59.73\times10^{-5}9.73×10−5 |
| 末段时均误差 / ° | −2.42×10−4-2.42\times10^{-4}−2.42×10−4 | −2.37×10−5-2.37\times10^{-5}−2.37×10−5 |
| 末段相对误差 / % | 4.04×10−44.04\times10^{-4}4.04×10−4 | 2.64×10−52.64\times10^{-5}2.64×10−5 |
结论:定位终值误差在 10−510^{-5}10−5 度量级,即数值上为零。这符合 I 型系统(位置环含积分环节?——严格说位置环是 PD,不含积分;但转速环的 PI 提供了积分作用,串级后整个系统对阶跃给定是 I 型,稳态误差为零)的理论预期。
需要注意:末段时均误差(−2.42×10−4-2.42\times10^{-4}−2.42×10−4)比终点误差(2.94×10−52.94\times10^{-5}2.94×10−5)大一个量级,因为末段窗口包含了 1.9~2.0 s 之间的衰减过程,不是纯稳态。引用稳态误差请用终点误差。
5.6 校核六:机电能量平衡
做法:把 2 s 内的机械能收支列清楚。净注入机械能 We=∫(Te1ωm1+Te2ωm2)dtW_e = \int(T_{e1}\omega_{m1}+T_{e2}\omega_{m2})dtWe=∫(Te1ωm1+Te2ωm2)dt 应等于"耗散 + 储能":
We=Wd+Wj+Wsh+Wk W_e = W_d + W_j + W_{sh} + W_k We=Wd+Wj+Wsh+Wk
其中 WdW_dWd 是电机粘滞耗散、WjW_jWj 是关节阻尼耗散、WshW_{sh}Wsh 是减速器柔性轴耗散(无观测量)、WkW_kWk 是终态动能。
| 项 | 数值 / J | 占 WeW_eWe |
|---|---|---|
| 净注入 WeW_eWe | 296.72 | 100 % |
| 电机粘滞 WdW_dWd | 172.42 | 58.1 % |
| 关节阻尼 WjW_jWj | 172.51 | 58.1 % |
| 终态动能 WkW_kWk | 1.49×10−61.49\times10^{-6}1.49×10−6 | ≈0\approx 0≈0 |
| 余项 WshW_{sh}Wsh | 124.30 | 41.9 % |
结论:能量账只闭合到 58.1 %,余项 124.30 J 无法从数据出口分离。
这个结果必须如实说明,不能强行分摊。已知的事实是:
- 模型的
Speed Reducer掩膜有 Bsh=600B_{sh} = 600Bsh=600 N·m·s/rad,它作用在减速器内部轴上,转速不在任何 Scope 的观测列里,因此无法积分; - 减速器还有 Bsl=600×300B_{sl} = 600\times300Bsl=600×300 的高速轴阻尼,同样不可观测;
- WdW_dWd 与 WjW_jWj 的数值几乎相等(差 0.053 %),说明可观测的两个耗散项是一致的,余项确实来自不可观测的第三条路径。
所以这条校核的结论是"可观测部分闭合,整体账目有 41.9 % 的已知盲区",而不是"能量不守恒"。这是模型数据出口设计的局限,不是物理错误。
5.7 校核七:滞环带宽与纹波
做法:滞环带宽 h=0.1h = 0.1h=0.1 A 是掩膜设定值,理论上纹波峰峰应在 hhh 附近(一个完整周期穿过 ±h/2\pm h/2±h/2)。用两个窗口的实测纹波与 hhh 比较。
| 量 | 窗口 1(0.745~0.765 s) | 窗口 2(1.895~1.915 s) |
|---|---|---|
| 掩膜带宽 hhh / A | 0.100 | 0.100 |
| 去趋势纹波峰峰 / A | 1.891 | 1.570 |
| 含基波峰峰 / A | 4.386 | 1.518 |
| 纹波 / hhh 倍数 | 18.9 | 15.7 |
| 等效开关频率 / kHz | 5.85 | 6.65 |
结论:实测纹波是设定带宽的 16~19 倍,不是 hhh 的 1 倍。这个"反常"与 4.7 节是同一个原因:数字滞环的实际纹波由采样周期内的电流变化量决定,不由比较器的带宽决定。一个控制周期 Tvect=20T_{vect} = 20Tvect=20 µs 内,di/dtdi/dtdi/dt 若为 10510^5105 A/s,电流已经变化 2 A,远超 h=0.1h = 0.1h=0.1 A 的比较窗口,滞环比较器"看到"的永远是超阈值状态,纹波于是由 di/dt⋅Tvectdi/dt \cdot T_{vect}di/dt⋅Tvect 主导。
这条校核的价值在于:它解释了为什么调 hhh 无效(6.4 节的电机惯量扫描从另一个角度印证——电流纹波随惯量变化 53 %,而 hhh 全程不变)。
5.8 校核汇总
表5-1 七条校核的残差汇总
| # | 校核内容 | 关系式 | 轴 1 残差 | 轴 2 残差 | 数据来源 |
|---|---|---|---|---|---|
| 1 | 位置—转速量纲 | ω=dθ/dt\omega = \mathrm{d}\theta/\mathrm{d}tω=dθ/dt | 1.31×10−61.31\times10^{-6}1.31×10−6 | 1.40×10−61.40\times10^{-6}1.40×10−6 | M.chk.c1 |
| 2 | 转速折算 | N=iω⋅30/πN = i\omega\cdot30/\piN=iω⋅30/π | 3.30×10−33.30\times10^{-3}3.30×10−3 | 6.23×10−46.23\times10^{-4}6.23×10−4 | M.chk.c2 |
| 3 | 关节转矩平衡 | Jα+Cω=TqJ\alpha + C\omega = T_qJα+Cω=Tq | 6.93×10−96.93\times10^{-9}6.93×10−9 | 6.71×10−166.71\times10^{-16}6.71×10−16 | M.chk.c3 |
| 4 | 折算阻尼 | Bmi2=CB_m i^2 = CBmi2=C | 000(代数)/ 0.0530.0530.053 %(能量) | 000 | M.chk.c4 |
| 5 | 定位终值 | eend→0e_{end} \to 0eend→0 | 4.90×10−54.90\times10^{-5}4.90×10−5 % | 9.73×10−59.73\times10^{-5}9.73×10−5 % | M.chk.c5 |
| 6 | 机电能量 | We=Wd+Wj+Wsh+WkW_e = W_d+W_j+W_{sh}+W_kWe=Wd+Wj+Wsh+Wk | 余项 41.9 % | — | M.chk.c6 |
| 7 | 滞环纹波 | Δi≈2h\Delta i \approx 2hΔi≈2h | 18.9 h18.9\ h18.9 h | 15.7 h15.7\ h15.7 h | M.chk.c7 |
七条校核里,第 1、3、5 条闭合到机器精度,是真正的自洽性验证;第 4 条代数口径零残差,是折算关系的直接确认;第 2 条 0.33 %、第 6 条 41.9 %、第 7 条 16~19 倍 这三条不是"模型错了",而是口径本身的物理含义(量化损失、不可观测路径、数字滞环特性),本说明书如实列出并逐条解释。
6 关键参数对比仿真
6.1 扫描设计
5 组单因素扫描、每组 3 个取值(含基准点),共 15 个算例,每个算例 StopTime = 2.0 s、步长 1 µs、powergui 不变。基准点取模型原值,一次只改一个参数,其余全部复位。
表6-1 扫描设计
| 组 | 扫描量 | 符号 | 取值 | 单位 | 观察对象 |
|---|---|---|---|---|---|
| KP | 位置环比例增益 | KpK_pKp | 16 000 / 32 000 / 64 000 | rpm/rad | 跟踪误差、调节时间、转速偏差 |
| KS | 转速环比例增益 | kp,sck_{p,sc}kp,sc | 0.25 / 0.5 / 1.0 | - | 转速偏差、转矩峰值 |
| JM | 电机转动惯量 | JmJ_mJm | 0.005 / 0.01 / 0.02 | kg·m2^22 | 电流峰值、转矩峰值、偏差 |
| TF | 轨迹持续时间 | tfint_{fin}tfin | 1.0 / 1.5 / 2.0 | s | 跟踪误差、超调、能量 |
| IR | 轴 1 减速比 | i1i_1i1 | 65 / 130 / 260 | - | 轴 1 误差、超调、饱和 |
为什么扫描这五个量:
- KpK_pKp 与 kp,sck_{p,sc}kp,sc 是两个环的主导增益,决定跟踪精度与抗扰能力的折中;
- JmJ_mJm 是惯量匹配的唯一可调参数(改变它就等于改变"电机惯量 : 负载折算惯量"的比值),直接决定电流与转矩峰值;
- tfint_{fin}tfin 是轨迹激进程度的代表,它同时改变速度、加速度与所需转矩;
- i1i_1i1 是传动链设计的核心变量,它把"电机转速能力"与"关节转速需求"挂钩,并在 i1i_1i1 过大时触发 2200 rpm 限幅。
6.2 组 KP:位置环增益

图6-1 组 KP:位置环增益对跟踪误差与转速偏差的影响
表6-2 组 KP 结果
| KpK_pKp / (rpm/rad) | 轴 1 峰值误差 / ° | 轴 2 峰值误差 / ° | RMS 误差 / ° | 调节时间(1.2°)/ s | 转速偏差峰值 / rpm | 电流峰值 / A |
|---|---|---|---|---|---|---|
| 16 000 | 3.135 | 3.111 | 1.981 | 1.389 | 8.72 | 10.59 |
| 32 000 | 1.573 | 1.558 | 0.994 | 1.140 | 12.77 | 11.07 |
| 64 000 | 0.787 | 0.779 | 0.498 | 0.000 | 17.42 | 10.97 |
三条规律:
-
跟踪误差与 KpK_pKp 成反比:KpK_pKp 翻倍(16k→32k),误差从 3.135° 降到 1.573°,正好一半;再翻倍(32k→64k),从 1.573° 降到 0.787°,也是一半。这说明在 16k~64k 范围内,误差由位置环的线性区增益决定,尚未进入饱和主导区。
-
转速偏差与 KpK_pKp 成正比:KpK_pKp 翻倍,偏差从 8.72 增到 12.77(+46 %),再翻倍到 17.42(+36 %)。这是必然的代价:KpK_pKp 越大,N∗N^{*}N∗ 对同一个位置误差的响应越激烈,转速环要跟的指令变化越陡,偏差越大。
-
调节时间在 Kp=64 000K_p = 64\,000Kp=64000 时归零,因为误差峰值 0.787° < 1.2° 阈值,从未超阈值。这不是"调节更快",而是判据不再适用——此时应改用 ±0.5° 或 ±0.05° 阈值。
工程含义:KpK_pKp 的选择是"精度 vs 转速平稳性"的折中。本模型的 32 000 是原作者的折中点(误差 1.57°、偏差 12.8 rpm);若追求精度可以上 64 000,代价是转速偏差增加 36 %。
6.3 组 KS:转速环比例增益

图6-2 组 KS:转速环比例增益对偏差与转矩峰值的影响
表6-3 组 KS 结果
| kp,sck_{p,sc}kp,sc | 转速偏差峰值 / rpm | RMS 偏差 / rpm | 电磁转矩峰值 / N·m | 电流峰值 / A | 跟踪误差 / ° |
|---|---|---|---|---|---|
| 0.25 | 21.99 | 3.87 | 10.10 | 11.08 | 1.573 |
| 0.5 | 12.77 | 2.60 | 8.95 | 11.07 | 1.573 |
| 1.0 | 6.45 | 1.75 | 8.72 | 11.00 | 1.573 |
这是本组最"干净"的扫描结果:
- 跟踪误差完全不变(1.573°,三个取值一模一样),因为位置环在上游,转速环的增益不影响位置跟踪的稳态 —— 位置误差由 KpK_pKp 与轨迹决定。
- 转速偏差随 kp,sck_{p,sc}kp,sc 近似成反比:0.25→0.5 时从 21.99 降到 12.77($-4242 %),0.5→1.0 时从 12.77 降到 6.45(42-$50 %)。
- 转矩峰值随 kp,sck_{p,sc}kp,sc 增大而略微下降(10.10 → 8.95 → 8.72),因为高增益让转速跟踪更紧,不需要那么大的转矩去"追赶"。
工程含义:转速环增益主要买的是抗扰与跟踪的快速性,代价是转矩指令更"尖锐"(虽然本组转矩峰值反而降了,但在其他工况下高增益会放大噪声)。kp,sc=1.0k_{p,sc} = 1.0kp,sc=1.0 时偏差只有 6.45 rpm,是三个里最好的;模型原值 0.5 偏保守。
6.4 组 JM:电机转动惯量

图6-3 组 JM:电机惯量对电流与转矩峰值的影响
表6-4 组 JM 结果
| JmJ_mJm / (kg·m2^22) | 电流峰值 / A | 转矩峰值 / N·m | 转速偏差峰值 / rpm | 跟踪误差 / ° |
|---|---|---|---|---|
| 0.005 | 9.40 | 7.20 | 10.47 | 1.574 |
| 0.010 | 11.07 | 8.95 | 12.77 | 1.573 |
| 0.020 | 14.38 | 13.00 | 17.63 | 1.572 |
规律非常清晰:
- 电流/转矩峰值与 JmJ_mJm 单调增:JmJ_mJm 翻倍(5→10),电流从 9.40 增到 11.07(+17.8 %);再翻倍(10→20),从 11.07 增到 14.38(+29.9 %)。增速在加快,说明惯量越大,加速所需转矩的占比越高。
- 跟踪误差几乎不变(1.574 / 1.573 / 1.572),因为位置跟踪由位置环决定,电机惯量改变的是"电机自己要多大力",不是"关节跟不跟得上"。
- 转速偏差随惯量增大(10.47 → 12.77 → 17.63),因为惯量大 → 同样的转矩指令下加速度小 → 转速环响应慢。
惯量匹配的定量判断:折算惯量比
ρ=Jmi12J1=0.01×16 900215∼340=0.50∼0.79 \rho = \frac{J_m i_1^2}{J_1} = \frac{0.01\times16\,900}{215\sim340} = 0.50\sim0.79 ρ=J1Jmi12=215∼3400.01×16900=0.50∼0.79
即电机折算惯量是关节惯量的 0.5~0.79 倍,电机侧偏轻(工程上常推荐 ρ=1∼3\rho = 1\sim3ρ=1∼3)。Jm=0.02J_m = 0.02Jm=0.02 时 ρ=1.0∼1.6\rho = 1.0\sim1.6ρ=1.0∼1.6,落在推荐区间内,但电流峰值升到 14.38 A(+30 %)。这就是惯量匹配的经典折中:ρ\rhoρ 太小则电机"带不动",太大则电机"自己耗能量"。
6.5 组 TF:轨迹持续时间

图6-4 组 TF:轨迹持续时间对误差、超调与能量的影响
表6-5 组 TF 结果
| tfint_{fin}tfin / s | 轴 1 误差 / ° | 轴 2 误差 / ° | RMS 误差 / ° | 超调 / % | 转速偏差峰值 / rpm | 电流峰值 / A | 转矩峰值 / N·m | 净机械能 / J |
|---|---|---|---|---|---|---|---|---|
| 1.0 | 3.789 | 21.30 | 1.622 | 1.4014 | 58.22 | 24.25 | 25.50 | 587.4 |
| 1.5 | 1.573 | 1.558 | 0.994 | 9.8×10−59.8\times10^{-5}9.8×10−5 | 12.77 | 11.07 | 8.95 | 296.7 |
| 2.0 | 1.181 | 1.169 | 0.862 | −9.8×10−5-9.8\times10^{-5}−9.8×10−5 | 5.09 | 6.52 | 5.49 | 232.5 |
这一组数据的信息量最大,因为它揭示了饱和边界:
- tfin=1.0t_{fin} = 1.0tfin=1.0 s 时轴 2 严重失效:误差 21.30°(占行程 23.7 %),超调 1.40 %,电流峰值 24.25 A,转矩峰值 25.50 N·m 逼近 ±26.7 N·m 限幅。原因是轴 2 的转速需求 90×100×60/(360×1.0)=150090\times100\times60/(360\times1.0) = 150090×100×60/(360×1.0)=1500 rpm ×\times× 1.5(三次多项式峰值系数)= 2250 rpm,超过 2200 rpm 限幅,转速环饱和,位置跟不上。
- tfin=1.5t_{fin} = 1.5tfin=1.5 s(基准)刚好不饱和:轴 2 需求 1498 rpm,限幅利用率 68 %。
- tfin=2.0t_{fin} = 2.0tfin=2.0 s 时全部指标改善但边际收益递减:误差降到 1.181°(比基准好 25 %),电流降到 6.52 A($-4141 %),但净机械能只降到 232.5 J(41-$22 %)。继续放慢,能量趋近于"克服阻尼所需的最小值",不会再降。
tfin=2.0t_{fin} = 2.0tfin=2.0 的稳态误差(−0.170-0.170−0.170°)是假象:此时 tfint_{fin}tfin =
StopTime,轨迹在 2.0 s 才结束,1.9~2.0 s 窗口仍在跟踪中,所谓"稳态"根本没到。该算例的ess指标无效,表中不列。
工程含义:轨迹时间的选择有一条硬边界——任何一轴的最大转速需求不得超过转速限幅。轴 2 的峰值需求是
N2,pk=1.5⋅Δ2tfin⋅i2⋅60360=2250tfin rpm N_{2,pk} = 1.5\cdot\frac{\Delta_2}{t_{fin}}\cdot i_2\cdot\frac{60}{360} = \frac{2250}{t_{fin}}\ \mathrm{rpm} N2,pk=1.5⋅tfinΔ2⋅i2⋅36060=tfin2250 rpm
令 N2,pk=2200N_{2,pk} = 2200N2,pk=2200 得 tfin=1.023t_{fin} = 1.023tfin=1.023 s,这就是饱和边界;基准取 1.5 s 对应 1500 rpm(利用率 68 %),留了 32 % 裕量。若要求 20 % 的余量(N2,pk≤1833N_{2,pk} \le 1833N2,pk≤1833 rpm),则 tfin≥1.23t_{fin} \ge 1.23tfin≥1.23 s。
6.6 组 IR:轴 1 减速比

图6-5 组 IR:轴 1 减速比对误差与超调的影响
表6-6 组 IR 结果
| i1i_1i1 | 轴 1 误差 / ° | 轴 2 误差 / ° | 超调 / % | 调节时间 / s | 转速偏差峰值 / rpm | 电流峰值 / A | 净机械能 / J |
|---|---|---|---|---|---|---|---|
| 65 | 0.411 | 1.558 | 0.101 | 0.000 | 37.12 | 17.49 | 247.2 |
| 130 | 1.573 | 1.558 | 9.8×10−59.8\times10^{-5}9.8×10−5 | 1.140 | 12.77 | 11.07 | 296.7 |
| 260 | 6.770 | 1.558 | 9.711 | 2.000 | 12.38 | 9.51 | 640.1 |
轴 2 的三个值完全不变(1.558),这是单因素扫描的对照证据:只改了 Speed Reducer 的 iii,轴 2 的减速比保持 100,所以轴 2 的误差一字不变。这条对照确认了扫描的有效性。
轴 1 的行为分三段:
- i1=65i_1 = 65i1=65(减速比减半):误差降到 0.411°($-$74 %),因为折算惯量 J1/i12J_1/i_1^2J1/i12 增大 4 倍,电机"更轻松";但转速偏差升到 37.12 rpm(+191 %),因为电机转速需求减半(650 rpm),同样的绝对转速误差占比更大;电流峰值升到 17.49 A(+58 %),因为电机要输出更大的转矩去驱动同样的关节负载。
- i1=130i_1 = 130i1=130(基准):平衡点。
- i1=260i_1 = 260i1=260(减速比翻倍):转速需求 2600 rpm 超过 2200 rpm 限幅,轴 1 进入饱和,误差暴涨到 6.770°、超调 9.71 %、调节时间 2.0 s(到仿真结束都没调好)、净机械能 640.1 J(是基准的 2.16 倍,大量能量耗在减速器高速轴的阻尼上)。
工程含义:减速比的选择是三重约束的交点:
- 太小 → 电机转矩不够(电流峰值升)、转速偏差大;
- 太大 → 电机转速超限(饱和)、能量效率差;
- 本模型的可行区间由两条边界夹住:上限是转速限幅(10i1≤220010i_1 \le 220010i1≤2200,即 i1≤220i_1 \le 220i1≤220),下限是转矩限幅(i1=65i_1 = 65i1=65 时电流峰值 17.49 A,已达 TeT_eTe 限幅对应电流 26.7/1.4=19.0726.7/1.4 = 19.0726.7/1.4=19.07 A 的 92 %)。130 落在中间偏保守的位置。
6.7 灵敏度汇总

图6-6 五组扫描对三个指标的相对变化幅度
纵轴是组内极差占均值的百分比,用来横向比较"哪个参数最能改变指标":
S=max(x)−min(x)mean(x)×100% S = \frac{\max(x) - \min(x)}{\mathrm{mean}(x)}\times100\% S=mean(x)max(x)−min(x)×100%
表6-7 灵敏度(组内极差 / 均值,%)
| 组 | 峰值跟踪误差 | 相电流峰值 | 转速偏差峰值 | 说明 |
|---|---|---|---|---|
| KP | 128 | 4 | 67 | 位置环增益直接决定误差 |
| KS | 0 | 1 | 113 | 只改偏差,不改误差 |
| JM | 0 | 43 | 53 | 惯量决定电流峰值 |
| TF | 120 | 127 | 210 | 轨迹强度影响最全面 |
| IR | 218 | 63 | 119 | 减速比是"双刃剑" |
三条读图结论:
- i1i_1i1 与 tfint_{fin}tfin 是第一梯队(120 %~218 %),KpK_pKp 次之(128 %),JmJ_mJm 与 kp,sck_{p,sc}kp,sc 只影响 1~2 个指标;
- 每组都只"专攻" 1~2 个指标:KS 只改偏差(误差 0)、JM 只改电流(误差 0)、KP 只改误差与偏差(电流 4 %)。这种"解耦"说明三个指标可以被三个参数独立调节,不需要复杂的多目标优化;
- TF 组三个指标同时变化(120/127/210),是唯一"牵一发动全身"的参数。因此轨迹规划(tfint_{fin}tfin 与起止点)应在控制器整定之前确定。
7 结论与局限
7.1 可以下的结论(均有数据支撑)
-
三环串级结构在本工况下实现了无超调的点位定位。超调量 9.8×10−59.8\times10^{-5}9.8×10−5 %(轴 1)与 2.5×10−42.5\times10^{-4}2.5×10−4 %(轴 2),定位终值误差 10−510^{-5}10−5 度,末段时均误差 10−410^{-4}10−4 度。跟踪峰值误差 1.57°(2.6 % 行程)是加速段滞后,不是稳态误差。
-
位置环增益决定精度,转速环增益决定平稳性,二者解耦。KpK_pKp 翻倍使误差减半(3.135→1.573→0.787),但转速偏差增加 46 % / 36 %;kp,sck_{p,sc}kp,sc 从 0.25 增到 1.0 使偏差从 21.99 降到 6.45 rpm,而跟踪误差一寸不变(1.573 恒定)。这个解耦让整定可以分两步走。
-
电机转矩与电流留有约 56 % 的裕量。TeT_eTe 峰值 [−11.69,+8.95][-11.69, +8.95][−11.69,+8.95] N·m(原始栅格),限幅 ±26.7\pm26.7±26.7 N·m,利用率 44 %;电流峰值 11.074 A。裕量是在轨迹结束的制动瞬间(1.501 s)消耗的,稳态窗口只需 4.39 A——这个“末端最重”的结论与直觉相反,但对点位定位是普遍规律:加速段靠转速按轨迹"自然爬升",制动段则要靠电机把全部惯量拉住。
-
轨迹时间是硬约束,饱和边界在 tfin=1.023t_{fin} = 1.023tfin=1.023 s。轴 2 的峰值转速需求是 2250/tfin2250/t_{fin}2250/tfin rpm,tfin=1.0t_{fin} = 1.0tfin=1.0 s 时 2250 rpm 超过 2200 rpm 限幅,误差暴涨到 21.30°、转矩逼近限幅;tfin=1.5t_{fin} = 1.5tfin=1.5 s 时 1500 rpm,利用率 68 %,刚好安全。留 20 % 裕量应取 tfin≥1.23t_{fin} \ge 1.23tfin≥1.23 s。
-
减速比是双刃剑,上限由转速限幅确定(i1≤220i_1 \le 220i1≤220)。轴 1 的峰值转速需求是 10 i110\,i_110i1 rpm,i1=260i_1 = 260i1=260 时 2600 rpm 超限,误差暴涨 4.3 倍、能量翻倍;i1=65i_1 = 65i1=65 时虽不超限,但误差降 74 % 的代价是电流升 58 %、转速偏差升 191 %。130 落在安全区中部。
-
折算阻尼必须按 i2i^2i2 重算。
Robot的 C1=0.005×1302=84.5C_1 = 0.005\times130^2 = 84.5C1=0.005×1302=84.5、C2=0.005×1002=50C_2 = 0.005\times100^2 = 50C2=0.005×1002=50 与 JmJ_mJm 的Friction严格对应,代数残差为 0、能量残差 0.053 %。这条关系一旦改错(例如改了减速比忘了改阻尼),第 6 章的扫描结论会全部失真。 -
电流纹波由采样周期主导,不由滞环带宽主导。实测纹波峰峰 1.89 A 是设定带宽 0.1 A 的 18.9 倍,等效开关频率 5.85 kHz(远低于 20 kHz 上限)。要降纹波必须减小 TvectT_{vect}Tvect,调 hhh 无效。
7.2 模型的局限与不适用场景
这个模型不能用来做什么——这一条比"能做什么"更重要,逐条列出:
-
不能评估定位精度到微米级。模型的关节角分辨率受 1 µs 步长与位置环增益限制,实测末段误差 10−410^{-4}10−4 度,按 10 mm 导程换算约 3×10−63\times10^{-6}3×10−6 mm =3= 3=3 nm——这个数字没有物理意义,因为模型没有建模编码器量化、丝杠导程误差、反向间隙。做精密进给分析必须另建带误差源的模型。
-
不能分析切削力扰动。模型的机械负载是纯惯性 + 粘滞阻尼(Jα+CωJ\alpha + C\omegaJα+Cω),没有外部力输入。实际机床的切削力是阶跃或宽频扰动,会通过位置环引起更大的跟踪误差。做抗扰分析必须给
Robot加外部转矩输入。 -
不能评估重力影响。
Robot的G1、G2块表达式都是u*0,重力项被显式置零。真实的立式进给轴(Z 轴)有恒定重力负载,会让电机长期工作在单侧转矩,影响温升与寿命。本模型只适用于水平轴。 -
不能评估减速器的非线性。
Speed Reducer是理想齿轮 + 线性柔性轴(KshK_{sh}Ksh、BshB_{sh}Bsh 为常数),没有齿隙、没有传动误差、没有效率随负载变化(eff = 1)。实际减速器的齿隙会造成反向时的死区,本模型完全看不到。 -
不能评估损耗与温升。电机只有 RsR_sRs 铜耗与
Friction粘滞耗散,没有铁耗、没有开关损耗、没有温升模型。RsR_sRs、ψf\psi_fψf 都是常数,实际随温度变化 10 %~30 %。做效率与热分析必须补损耗模型。 -
能量账有 41.9 % 的盲区。Wsh=124.30W_{sh} = 124.30Wsh=124.30 J 无法从数据出口分离(减速器柔性轴阻尼不可观测)。这不是物理错误,但意味着不能用本模型做能量效率的定量结论——只能说"可观测的两个耗散项(172.42 / 172.51 J)一致"。
-
数据出口的设计限制导致"包络 + 原始窗口"两层结构。全程 16 列 ×\times× 2 000 001 点无法一次落盘(约 260 MB,逼近堆上限),因此 20 µs 包络用于趋势、两段 20 ms 原始窗口用于纹波。代价是:纹波分析只覆盖 0.745~0.765 s 与 1.895~1.915 s 两个窗口,不能给出全程的纹波统计。若需要全程纹波,必须改成流式落盘或降低列数。
-
调节时间判据在误差小于阈值时失效。Kp=64 000K_p = 64\,000Kp=64000 时误差峰值 0.787° < 1.2° 阈值,
tset返回 0,看起来"瞬间调好",实际是判据不适用;基准算例的 ±2° 行同样如此(峰值 1.573° < 2°)。analyze脚本里THR = [2.0 1.2 0.5 0.05]是绝对角度阈值,不是行程百分比。引用调节时间时必须同时说明阈值。 -
丝杠换算是外加假设,不是模型的一部分。4.9 节的 h=10h = 10h=10 mm 导程、2.5 节的 s=θh/360s = \theta h/360s=θh/360 都是本说明书为"机床进给轴"场景补的换算层。模型本身只有旋转关节,没有直线运动。任何关于"直线定位精度"的结论都只在这个换算假设下成立。
-
2 s 的时间尺度太短。热过程(秒~分钟)、磨损、老化、长期漂移都不在模型范围内。点位定位的重复精度(多次往返的一致性)也无法从单次 2 s 仿真中得到。
8 附录
8.1 脚本清单
表8-1 五个脚本
| 脚本 | 行数 | 输入 | 输出 | 说明 |
|---|---|---|---|---|
_export.m | 250 | .slx | bdcaxis_base.mat、bdcaxis_cfg.mat | 基准仿真 + 三层落盘 + 掩膜参数快照 |
_analyze.m | 268 | bdcaxis_base.mat | bdcaxis_metrics.mat | 7 条校核 + 位置/转速/转矩/电流/传动/能量指标 |
_sweep.m | 202 | .slx | bdcaxis_sweep.mat | 5 组 15 算例,StopTime = 2.0 s,支持分批执行与按 tag 合并 |
_figs.m | 381 | 三个 .mat | 17 张数据图 | 一图一文件,禁 subplot,ml_audit_tx 出图闸门 |
_shot.m | 172 | .slx | 5 张界面/框图 | ★ 必须最后跑 |
执行顺序:export -> analyze -> sweep -> figs -> shot。每个脚本自带路径解析,可在任意目录启动。
8.2 仿真数据文件
表8-2 四个 .mat 文件(字节数为磁盘实际占用)
| 文件 | 字节数 | 内容 |
|---|---|---|
bdcaxis_base.mat | 19 447 089 | 20 µs 包络 100 000 点 ×\times× 13 列、两段 20 ms 原始窗口各 20 000 点 ×\times× 8/5 列、原始 1 µs 栅格极值 |
bdcaxis_metrics.mat | 10 534 085 | 7 条校核、位置/转速/转矩/电流指标、传动链换算、能量积分 |
bdcaxis_cfg.mat | 2 714 | 掩膜参数快照(196 项)、求解器配置、.slx 的 mtime 与字节数 |
bdcaxis_sweep.mat | 2 002 | 15 个算例的 18 个指标 |
| 合计 | 29 985 890(28.6 MiB) |
图片目录 图片\ 共 22 个 PNG:图1-1、图2-12-4、图4-14-11、图6-1~6-6。
8.3 复现方法
- 确认 base 工作区有
Ts = 1e-6(脚本会自动assignin,若已存在则覆盖为同值); - 在交付目录下依次运行五个脚本,
export约 139 s、sweep约 2 063 s、figs约 42 s、shot约 26 s; - 若只关心结论、不需要重新仿真,可直接用现成的
.mat只跑figs(约 42 s); - 数据图脚本在出图前会跑
ml_audit_tx,有任何[错]会直接报错退出——这是字体分段的自检闸门,不要绕过。
校验点:重跑后
M.pos.err_max(1)应在 1.573° 附近(±0.005\pm0.005±0.005);M.chk.c3.r(1)应在 6.3×10−66.3\times10^{-6}6.3×10−6 N·m 附近(同量级即可,绝对值为机器精度);M.eng.We应在 296.7 J 附近(±1\pm1±1 J);M.cur.fsw(1)/1000应在 5.85 kHz 附近(±0.3\pm0.3±0.3)。
若偏离,先检查 Ts 是否被改成别的值、三个 Scope 的 DataLoggingDecimateData 是否被打开(打开会改变采样栅格,所有暂态指标失效)。
转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2602_95231098/article/details/168632676



