Kim, S. (2019). Moment of Inertia and Friction Torque Coefficient Identification in a Servo Drive System.IEEE Transactions on Industrial Electronics, 66(1), 60–70.
System identification and mechanical resonance frequency suppression for servo control used in single gimbal control moment gyroscope (2022).PLOS ONE, 17(8), e0267450.
Liang, M., & Zhou, D. (2022). A Nonlinear Friction Identification Method Combining Separable Least Squares Approach and Kinematic Orthogonal Property.International Journal of Precision Engineering and Manufacturing, 23, 139–152.
v > 0.05 rad/s:完整模型與庫倫+黏滯完全重合。 圖上那條虛線壓在實線上,看不出差別。
v < 0.05 rad/s:兩條分開。 在 v = 0.005 rad/s,完整模型是 0.0275、線性模型是 0.0200——低估 27%。
這對雲台的意義很具體:追慢速目標時,你就工作在左邊那一段。 一個在 3 km 外以 10 m/s 橫向移動的目標,對應的 LOS 角速率是 3.3 mrad/s——遠在 Stribeck 區裡面。那裡不只是力矩被低估,還會出現 stick-slip:靜摩擦大於動摩擦,馬達推不動、推動了就衝過頭,畫面上看起來就是一頓一頓的。
Kim, S. (2019). Moment of Inertia and Friction Torque Coefficient Identification in a Servo Drive System. IEEE Transactions on Industrial Electronics, 66(1), 60–70. DOI: 10.1109/TIE.2018.2826456
System identification and mechanical resonance frequency suppression for servo control used in single gimbal control moment gyroscope (2022). PLOS ONE, 17(8), e0267450. DOI: 10.1371/journal.pone.0267450
Liang, M., & Zhou, D. (2022). A Nonlinear Friction Identification Method Combining Separable Least Squares Approach and Kinematic Orthogonal Property. International Journal of Precision Engineering and Manufacturing, 23, 139–152. DOI: 10.1007/s12541-021-00611-0
Dahl, P. R. (1968). A Solid Friction Model. The Aerospace Corporation, TOR-0158(3107-18)-1.
de Wit, C. C., Olsson, H., Åström, K. J., & Lischinsky, P. (1995). A New Model for Control of Systems with Friction. IEEE Transactions on Automatic Control, 40(3), 419–425.
Ekstrand, B. (2001). Equations of Motion for a Two-Axes Gimbal System. IEEE Transactions on Aerospace and Electronic Systems, 37(3), 1083–1091. Link
Hilkert, J. M. (2008). Inertially Stabilized Platform Technology: Concepts and Principles. IEEE Control Systems Magazine, 28(1), 26–46.
This is the twenty-seventh post in the LocalPapa Notes dev-log series, the tenth on gimbals, and the one that closes it out.
Looking back at the whole series turns up something uncomfortable: the formulas are right and every number is a guess.
The J = 0.0020, T_friction = 0.02 N·m and Kt = 0.10 fed into post 23, the JX/JY/JZ and the 0.5 mm residual CG offset in post 24 — all of them are order-of-magnitude estimates, and I said so in every "limits of this analysis" section. The question never answered was: how do you measure them?
This post fills that in. And it happens to have a rather elegant answer.
The literature
Kim, S. (2019). Moment of Inertia and Friction Torque Coefficient Identification in a Servo Drive System.IEEE Transactions on Industrial Electronics, 66(1), 60–70.
The core of this post. To identify moment of inertia and friction coefficients simultaneously, it uses the fact that sinusoidal speed is in phase with the friction torque and out of phase with the inertia torque. With that, both can be obtained exactly from a half-period integration of the torque reference under low-frequency sinusoidal speed control. The paper also states why this matters: inertia is a prerequisite for designing a high-performance speed and position controller, and once the viscous and Coulomb coefficients are known they can be used directly to reduce speed and position error without resorting to a high speed-loop gain.
System identification and mechanical resonance frequency suppression for servo control used in single gimbal control moment gyroscope (2022).PLOS ONE, 17(8), e0267450.
The gimbal-specific one. It simplifies the SGCMG gimbal servo system to a two-mass model, derives the theoretical transfer function and mechanical resonance frequency, and derives the mathematical model for orthogonal correlation analysis as an identification method. A practically useful conclusion: the frequency characteristic curve identified by orthogonal correlation analysis carries less noise than one obtained by Fourier transform. It also gives three directions for preventing mechanical resonance — raise the ratio of motor inertia to load inertia, raise system stiffness, design a filter.
Liang, M., & Zhou, D. (2022). A Nonlinear Friction Identification Method Combining Separable Least Squares Approach and Kinematic Orthogonal Property.International Journal of Precision Engineering and Manufacturing, 23, 139–152.
This handles the low-speed band. It says plainly that the nonlinear Stribeck effect at low velocity degrades accuracy — exactly the thing post 23 mentioned and then papered over with a constant. Three methodological features: separable least squares (SLS) cuts computational cost sharply; the kinematic orthogonal property (KOP) identifies the friction parameters without any inertial information, avoiding the noise that acceleration estimation introduces; and it runs open-loop, so no controller tuning is needed first.
The first two answer "how to measure it"; the third answers "how to measure the low-speed part." None of the three answers "how many parameters does a gimbal have in total" — that is section one, where I list every coefficient used across the previous nine posts and pair each with an experiment.
Scope of citation in this post
The method and contribution descriptions above come from abstracts and public paper pages. Access limits meant I could not read every full text, so no unverified experimental values are quoted. The numbers in section three are my own numerical verification: set a ground truth, synthesize the torque signal from it, then solve it back with the phase-separation method the paper describes and see how close it lands. That is not a measurement — it is a correctness check on the method.
1. How many parameters does a gimbal have
Figure 1: Eight parameters, the experiment each needs, and the signature that identifies it. The top three rows are boxed together because they share one dataset — a single sinusoidal sweep yields J, B and T_c at once.
Laying out every coefficient the previous nine posts used gives eight:
J (moment of inertia) — appears in T = J·α, in the torque demand of posts 23 and 24.
B (viscous friction) — appears in T = B·ω. The previous nine posts do not have this term at all, because I used a constant friction throughout. That is the first hole this post fills.
T_c (Coulomb friction) — appears in T = T_c·sgn(ω). This is the T_friction = 0.02 N·m used all along.
T_s, v_s (Stribeck parameters) — the band at low speed where friction rises instead of falling.
Kt (torque constant) — T = Kt·I, used in post 23 to convert torque into current.
m·g·e (residual CG offset) — the gravity term in post 24, varying as cos(el).
k_cable (cable harness stiffness) — post 22 noted the harness should be modeled as a Kirchhoff rod acting as a spring, not as friction.
f_res (structural resonance) — the f_res/f_bw ≥ 5 of post 21, layer 6, and the rate loop's ceiling in post 25.
The first three share one dataset. That is the best bargain in this post, and the next two sections are about it. The other five each need their own experiment; there is no shortcut.
2. Why one sweep separates three parameters
Figure 2: Three panels of waveforms. (a) is the excitation — velocity is a sine, angular acceleration a cosine, inherently 90° apart. (b) splits the torque in two: the inertia term follows α, the friction term follows ω. (c) is what you actually measure. Multiplying by cos and averaging leaves only inertia; multiplying by sin leaves only friction.
The single-axis torque balance (leaving Stribeck aside for now):
`` T(t) = J·α(t) + B·ω(t) + T_c·sgn(ω(t)) ``
Command a sinusoidal velocity ω(t) = A·sin(2πf·t), so α(t) = A·2πf·cos(2πf·t).
Here is the key: ω is a sine and α is a cosine — they are orthogonal by construction. Therefore:
Any component of Tin phase with cos can only come from J·α
Any component in phase with sin can only come from friction (both B·ω and T_c·sgn(ω) share ω's sign and phase)
Multiplying the measured T(t) by cos(2πf·t) and by sin(2πf·t) and averaging over one period — that is the orthogonal correlation — gives:
`` cos component = J · A · 2πf sin component = B · A + T_c · (4/π) ``
That 4/π = 1.2732 is the fundamental Fourier coefficient of a square wave — sgn(ω)is a square wave, and its projection onto the fundamental is 4/π times its amplitude.
J falls straight out, from a single amplitude: J = cos component / (A·2πf).
But B and T_c do not separate. One amplitude only gives you the combination B·A + T_c·4/π. The fix is to run two different amplitudes: the B term grows linearly with A, the T_c term does not. Subtract, and T_c cancels.
The physical intuition: friction steps discontinuously at every zero crossing of ω (the Coulomb sgn), and the inertia term is at its peak at exactly that instant. The two events happen at completely different phases, which is why they are separable.
3. Numerical verification: does the method actually recover them
I have no hardware to measure, so the next best thing is a correctness check: set a ground truth → synthesize the torque signal → solve it back with the formulas above → compare.
The truth values use the series' own magnitudes (J is post 24's inner-frame inertia JY; T_c is the 0.02 used throughout):
J = 0.0036 kg·m²
B = 0.005 N·m·s/rad
T_c = 0.020 N·m
Excitation frequency f = 2 Hz, two amplitudes A = 0.5 and 1.0 rad/s
The correlation components that come out:
A = 0.5: cos component 0.02262 → J = 0.00360; sin component 0.02796
A = 1.0: cos component 0.04524 → J = 0.00360; sin component 0.03046
All three recover to five decimal places. What that proves is that the derivation is correct, not that hardware will be this clean — real measurements carry noise, Stribeck, cogging torque and current-loop phase lag, all of which land in the residual.
The relative magnitudes are worth noting: at A = 1.0 the inertia torque peaks at 0.0452, Coulomb is 0.0200, viscous 0.0050. Inertia is the largest term, which is why f must not be too low — a low f makes α small, friction drowns the inertia term, and J comes out poorly. But f must not be too high either, or you run into structural resonance. 2 Hz is safe for a mechanism with f_res ≥ 60 Hz.
4. The low-speed band: why a constant friction is wrong there
Figure 3: Three friction models. The horizontal axis uses a square-root scale to open up the low-speed band, which a linear axis would squeeze into a needle. The dashed line is the Coulomb + viscous fit — it coincides exactly with the full model above 0.05 rad/s and goes completely wrong below it.
What sections two and three fit is "Coulomb + viscous", a linearized model. Real friction has a Stribeck dip at very low speed:
T_s is static friction (larger than kinetic) and v_s is the characteristic velocity. Plotting with T_s = 0.028 and v_s = 0.02 rad/s:
Above v = 0.05 rad/s the full model and Coulomb + viscous coincide exactly. The dashed line sits right on the solid one; you cannot tell them apart.
Below v = 0.05 rad/s they separate. At v = 0.005 rad/s the full model gives 0.0275 against the linear model's 0.0200 — a 27% underestimate.
For a gimbal this is very concrete: tracking a slow target puts you in that left-hand band. A target 3 km away moving laterally at 10 m/s corresponds to a LOS rate of 3.3 mrad/s — deep inside the Stribeck region. There the torque is not just underestimated; you also get stick-slip, where static friction exceeds kinetic, the motor cannot break free, then overshoots when it does. On screen that reads as a juddering image.
So the constant friction in the previous nine posts is not wrong, it just has a domain: computing peak torque demand puts the operating point at moderate to high speed, where a constant is fine. But explaining "why does slow tracking judder" requires this curve.
Measuring it needs a different experiment: not a sinusoid but a very slow constant-speed sweep — hold one slow speed, let it settle, measure the steady-state torque, then move to the next speed. That is what Liang & Zhou 2022 addresses, and the advantage of their KOP approach is precisely that you do not need J first, because at constant speed there is no acceleration term to subtract.
5. Measuring the other five
Kt (torque constant) — locked rotor plus a dynamometer, sweep current against torque, take the slope. Without a dynamometer you can fall back on Kt ≈ 9.5493/KV from the datasheet, but that is a nominal value and hardware usually comes in a few percent low.
m·g·e (residual CG offset) — this one has a very cheap measurement: static holding current at each elevation angle. No motion means no inertia term and no viscous term; what remains is gravity plus Coulomb friction. And the gravity term varies as cos(el) and flips sign over the top while Coulomb does not — that signature separates them. Incidentally this is where post 24's 0.5 mm eccentricity came from, and this method will tell you whether it is really 0.5 mm or 2 mm.
k_cable (cable stiffness) — a slow full-travel sweep, once in each direction. Cable stiffness shows up in phase with angle (not with velocity), and the two sweep directions do not overlap — the width of that hysteresis loop is the harness's dissipation.
f_res (structural resonance) — frequency sweep or tap test, read the peak in the frequency response. Post 18 covers the measurement. The reminder from the PLOS ONE paper above: run the sweep through orthogonal correlation analysis and the curve comes out cleaner than with an FFT.
T_s, v_s — the very slow sweep from the previous section.
6. What to change once you have the numbers
This closes the series, so it is worth saying what to do with the measurements:
Redo the torque budget. Feed measured J and T_c back into the arithmetic of posts 23 and 24. Post 23's sensitivity analysis showed that doubling J moves T_required by 1.4% while friction moves it 12–24% — so measuring friction accurately matters far more than measuring inertia accurately. That maps neatly onto section two: friction needs two amplitudes to separate, and it is worth the extra run.
Change the controller. The most direct use of measured B and T_c is feedforward compensation: add B·ω* + T_c·sgn(ω*) straight onto the rate loop's output. The rate loop then does not have to fight, through feedback, something it already knows. Kim 2019 states this reduces speed and position error without raising the speed-loop gain — and gain costs noise, while post 25's bandwidth ladder caps how far you could raise it anyway.
Revisit gain scheduling. With J_az(el) measured across elevation you can check whether post 25's "varies only 1.81× over full travel, a fixed gain copes" holds on your mechanism. That 1.81 came from an estimated inertia tensor; on hardware it might be 1.3, or it might be 4.
The limits of this analysis
Section three is numerical verification, not measurement. I have no hardware. The synthetic signal has no noise, no quantization, no current-loop lag, so recovering five decimal places is a foregone conclusion and hardware will not do that. All it proves is that the derivation is correct.
The sinusoidal method assumes torque command equals actual torque — i.e. an ideal current loop and a constant Kt. In reality cogging torque and the angular dependence of Kt enter the residual as harmonics. Doing this rigorously means measuring Kt(θ) first.
No two-mass treatment. The PLOS ONE paper simplifies the gimbal servo to two masses, and that is where resonance comes from. The T = J·α + friction here is a single-mass model, valid only well below resonance — 2 Hz against a 60 Hz resonance is safe, but if your mechanism resonates at 15 Hz the assumption needs rechecking.
The Stribeck section gives the model's shape, not the identification procedure in detail. Very-low-speed steady-state measurement is genuinely hard (you have to beat stick-slip to get a stable slow speed) and is a post of its own.
How to work through this with me
To run this on your gimbal, have these ready:
Whether the drive accepts a velocity command and can report back torque (or q-axis current) command, and at what sample rate
Whether there is an encoder to differentiate for velocity, and its resolution (velocity noise sets the accuracy of J directly)
Where the mechanism's first resonance sits (this caps the excitation frequency)
Whether open-loop drive is possible (Liang & Zhou's KOP method needs it)
Whether you have a dynamometer or torque transducer (needed for Kt)
If something's missing, say it's missing — I won't guess a value and fill it in for you.
References
Kim, S. (2019). Moment of Inertia and Friction Torque Coefficient Identification in a Servo Drive System. IEEE Transactions on Industrial Electronics, 66(1), 60–70. DOI: 10.1109/TIE.2018.2826456
System identification and mechanical resonance frequency suppression for servo control used in single gimbal control moment gyroscope (2022). PLOS ONE, 17(8), e0267450. DOI: 10.1371/journal.pone.0267450
Liang, M., & Zhou, D. (2022). A Nonlinear Friction Identification Method Combining Separable Least Squares Approach and Kinematic Orthogonal Property. International Journal of Precision Engineering and Manufacturing, 23, 139–152. DOI: 10.1007/s12541-021-00611-0
Dahl, P. R. (1968). A Solid Friction Model. The Aerospace Corporation, TOR-0158(3107-18)-1.
de Wit, C. C., Olsson, H., Åström, K. J., & Lischinsky, P. (1995). A New Model for Control of Systems with Friction. IEEE Transactions on Automatic Control, 40(3), 419–425.
Ekstrand, B. (2001). Equations of Motion for a Two-Axes Gimbal System. IEEE Transactions on Aerospace and Electronic Systems, 37(3), 1083–1091. Link
Hilkert, J. M. (2008). Inertially Stabilized Platform Technology: Concepts and Principles. IEEE Control Systems Magazine, 28(1), 26–46.