I have a term project which is controlling a two-link manipulator with harmonic drive installed at each joint. To control, i used Computed control method to determine the torque needed for each joints based on the formula: $$\tau_i =M(\theta)(\ddot{\theta_i}+K_d\dot{e}+K_pe)+V+G $$
To calculate the torque that each motor needs to produce through harmonic drive, i use: $$\tau_{motor} =(J_m+J_g)\rho\ddot{\theta_i}+\frac{\tau_i}{\rho\eta_g}$$ where: $\rho$ and $\eta_g$ are gear ratio and efficiency of the harmonic drive. $J_m$ and $J_g$ are the motor and gear inertia, respectively.

after these calculation, i can see the effect of harmonic drive in the system by comparing input torque from motor in the model with harmonic drive ($\tau_{motor}$) to that torque in the model without harmonic drive ($\tau_i$)

But my professor doesn't agree the formula $\tau_{motor}$ i used. He want me to include the stiffness $k$ of the harmonic drive.

This is what i have done

P/S: This model which consists of two-link manipulator+harmonic drive at each joint is built in MATLAB.

Can anyone suggest me the formula about it?

Thank you so much.


Page 50 of Hamid D Taghirad's 1997 PhD dissertation from McGill University gives a series of equations for harmonic drive torques, and the top of page 51 gives the following fantastic model for the harmonic drive:

harmonic drive model

WG is the wave generator (input); fs is the flexispline (output); N is the gear ratio, then the springs and dampers are deflection and friction losses at various stages in the harmonic drive. If you neglect the input/output frictional losses ($T_{f1}$, $T_{f2}$, and $T_{f3}$), then you're left with what I believe your professor was looking for,

$$ I_{drive} \tau_{drive} = -k_{fs}*(\frac{1}{N} \theta_{input} - \theta_{output}) - b_{fs}(\frac{1}{N} \dot{\theta}_{input} - \dot{\theta}_{output}) $$

where again, fs is the flexispline. Essentially the major components of the drive forces are due to structural damping and springiness of the flexispline deforming while the input rotates. Note that here I'm using the gear ratio as input : output, as harmonic drives are reducers. If $N = \frac{50}{1}$, then the input divided by the gear ratio gives the reduced input angular position or speed. If you define gear ratio as the inverse of how I've used it then you would multiply by N instead of divide by it.

Here are some great design tips for selecting harmonic drives, too, if anyone's interested.


Thank for your nice answer. But i still have questions. Applying this equation to my system, I see that:

  1. $\theta_{output}$ and $\dot{\theta}_{output}$ are $\theta_i$ and $\dot{\theta}_i$ I calculated from manipulator. However, $\theta_{input}$ and $\dot{\theta}_{input}$ are from motor, but where can i get them($\theta_{input}$ and $\dot{\theta}_{input}$) to determine $\tau_{drive}$?
  2. I look at a catalog of a harmonic drive to look for $k_{fs}$ and $b_{fs}$ [for example this HD: link], i only find $k_fs$ but there are 3 values of stiffness in catalog ($k_1$,$k_2$,$k_3$), which one should i choose? and where can i get $b_{fs}$

Sorry about this kind of question. I'm a newbie in Harmonic Drive.

  • $\begingroup$ You can get $\theta_{input}$ and $\dot{\theta}_{input}$ from an encoder on the motor. Page 56 of the PDF you linked shows why there are three different stiffness values - there is a nonlinear relationship between torque and torsion (twist). The nonlinear relationship can be approximated by three different stiffness values. If you can't find a damping value ($b$) then you can probably assume that the damping effect is negligible. You can compare your model to empirical testing. $\endgroup$ – Chuck Jun 22 '15 at 14:19
  • $\begingroup$ This model is built in Matlab so I can't get $\theta_{input}$ and $\dot{\theta}_{input}$ from encoder. Is there another solution for this one? $\endgroup$ – Phan Jun 22 '15 at 14:40
  • $\begingroup$ If it's a model I'm not sure what the problem is. What do you do with the torque values you calculate? Wouldn't you send them to the motor? In your equation you have $\ddot{\theta_i}$. If you're only working in accelerations just integrate the acceleration twice. $\endgroup$ – Chuck Jun 22 '15 at 15:40
  • $\begingroup$ What I want to know is how much torque I should give to the model through harmonic drive, then compare this input torque in the model with Harmonic drive to the input torque in the model without harmonic drive. $\endgroup$ – Phan Jun 22 '15 at 16:37
  • $\begingroup$ Please add the contents of what you've written above to your question and I'll answer more in my answer. $\endgroup$ – Chuck Jun 22 '15 at 17:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.