2. 静态转矩补偿计算

任务定义

在卷绕类张力控制系统中,当牵引辊与收卷辊之间存在垂直高度差时,材料自重会在张力闭环之外叠加一个恒定偏置力,导致实际张力偏离设定值。本案例要求:给定材料参数与设备几何尺寸,计算静态转矩补偿值,并在张力控制前馈通道中实现该补偿,使材料在静止或匀速运行状态下实际张力等于设定张力。

物理模型与计算式

设收卷辊中心与牵引辊中心的高度差为 Δh(收卷辊较高时为正),两辊水平间距为 L,材料线密度为 ρ(kg/m),重力加速度 g=9.81 m/s²。材料在牵引辊与收卷辊之间形成悬垂段,其自重沿材料方向的分量即为静态张力偏置。当悬垂角较小时(工程常见情况),该偏置力近似为:

T_offset = ρ · g · Δh · (L / sqrt(L² + Δh²))

若材料从牵引辊水平进入后向下或向上倾斜至收卷辊,则实际张力 T_actual = T_set + T_offset(收卷辊高于牵引辊时,材料自重帮助拉紧,需减小输出转矩;反之需增大)。静态转矩补偿量为:

M_comp = T_offset · R

其中 R 为收卷辊当前卷径半径(m)。补偿方向:当收卷辊高于牵引辊时,M_comp 为负(减小电机输出转矩);反之取正。

代码实现


#include <stdio.h>
#include <math.h>

#define G 9.81f

typedef struct {
    float rho;      /* 材料线密度 kg/m */
    float L;        /* 水平间距 m */
    float dh;       /* 高度差 m,收卷辊高于牵引辊为正 */
    float R;        /* 当前卷径半径 m */
    float T_set;    /* 设定张力 N */
} StaticCompParam;

/* 计算静态张力偏置和补偿转矩 */
void static_comp_calc(const StaticCompParam *p, float *T_offset, float *M_comp) {
    float span = sqrtf(p->L * p->L + p->dh * p->dh);
    /* 材料自重沿料方向的分量 */
    *T_offset = p->rho * G * p->dh * (p->L / span);
    /* 补偿转矩 = 偏置力 × 卷径,方向与dh相反 */
    *M_comp = -(*T_offset) * p->R;
}

int main() {
    StaticCompParam param = {
        .rho = 0.05f,   /* 0.05 kg/m */
        .L   = 1.2f,    /* 1.2 m */
        .dh  = 0.4f,    /* 收卷辊高于牵引辊 0.4 m */
        .R   = 0.15f,   /* 当前卷径半径 0.15 m */
        .T_set = 50.0f  /* 设定张力 50 N */
    };

    float T_off, M_c;
    static_comp_calc(&param, &T_off, &M_c);

    printf("静态张力偏置: %.3f N\n", T_off);
    printf("静态转矩补偿: %.4f N·m\n", M_c);
    printf("补偿后实际张力: %.3f N\n", param.T_set + T_off);

    return 0;
}

落地与验证

编译运行:

gcc -o static_comp static_comp.c -lm
./static_comp

预期输出(由给定输入直接推出):

静态张力偏置: 1.539 N
静态转矩补偿: -0.2309 N·m
补偿后实际张力: 51.539 N

验证方法:将 M_comp 作为前馈量叠加到张力环输出转矩上(符号与速度环方向一致时取反)。在设备静止或匀速运行状态下,用张力传感器读取实际张力,若实际张力与设定张力偏差小于传感器精度允许范围,则补偿有效。判定标准:|T_actual - T_set| ≤ 0.1 N(或传感器精度值)。

牵引辊 收卷辊 材料(自重产生偏置) L = 1.2 m Δh = 0.4 m T_set M_comp 前馈补偿通道 T_offset = ρ·g·Δh·(L/√(L²+Δh²)) → M_comp = -T_offset·R → 叠加至转矩给定

判定标准

在张力闭环投入前,先单独将 M_comp 作为前馈量输出;随后投入张力闭环,观察稳态张力误差。若补偿量计算正确且方向无误,实际张力应接近设定值,无需积分环节大幅修正。若实际张力仍存在固定偏差,检查 Δh 符号与 M_comp 方向是否匹配设备实际布局。