I'm hoping to control the static holding force of a full size autogyro simulator. The motor gearbox is from an automatic door closer (heavy duty stallable motor, built in encoders, back drivable, 1deg backlash). As a joystick spends much of its time around a neutral point being able to control the static force is important. I'm anticipating either using current draw and/or strain gauges to measure force feedback.
The original controller worked at 20KHz and a Kemo #M171 PWM (spec sheet 10-20KHz) controller also seems to work well.
I've been told the best way to control holding force is to use both forward and reverse pulses.
Before I attempt to reinvent the wheel what advice do the forum have on selection of Arduino; Motor driver chip (Max 10A); Setting and controlling PWM frequency/pulse length; feedback loop; Etc.
This is a force-feedback joystick interface I think?
So you are both sensing the position and force and driving the motor with
a control loop?
The force is directly related to current in a DC motor (although there is
slop due to static friction). The position you get from the encoder (is
it before or after the backlashy gears?)
A common way to control motors is to use an outer control loop that
controls position (or it can be speed), and this is then used to provide
input to a current-control inner loop which sets the torque. For a traditional
situation closed loop control is used to command the motor to follow
a set speed (or position if a servomotor).
You want an open loop, not closed, which takes the position and uses it
to set the torque, I think. The exact mapping from position to torque is
something you change over time to provide a change in feel, and you
can feed either position or torque or both into your simulation as control
inputs.
The simplest situation would be where the neutral force point is the only
variable you control, slightly more complex you also control the gain
of the open loop which changes the apparent stiffness of the joystick.
The devil will be in the details, controlling oscillations and compensating
for backlash.
In answer to some of the questions. This is a force feedback joystick, imagine a real airplane, depending on what you command the reaction and the forces experienced will change. So this is a servo that can both drive and be driven at the same time.
It sounds like you want to just set an arbitrary force, which I presume is a number produced by the simulation software, eg from the combination of airspeed, control deflection and AOA/stall-state, etc.
All you need (assuming it's a dc motor) is a current controller since force is proportional to current. Position will be defined by the hand on the stick and if they let go, it might well oscillate, just like the real system.
If this conversatioin is pertaining to a single door opener/closer,then it is a moot point. It is after all only a door opener/closer. When all is said and done ,you are either opening the door or closing the door. Can you open AND close a door at the same time? Not really. You can alternate between the two very rapidly but I suspect that below a certain frequency, attempting to do that will generate vibration from the oscillations. If the door is closed isn't that good enough? It's an acuator. Either it is actuating or it is not actuating. Another way to define "static holding force " of a door opener is the force required to move it when it is not actuating. That is a specification given for the product not something you can program. Can you program how much force is applied to NOT open or close a door?. If it is static then it is inherrant characteristic of the design .If , however this conversation is not about a single door opener, but rather two , both connected to the same door , one trying to open and the other trying to close, then I guess it comes down to how much current is it safe to generate in the motor by controlling the voltage ? The current is a function of the voltage. If you operate at the recommended voltage , then the "dynamic force" of two door openers, one opening and the other closing, is the amount of force required to move the door they are both attached to when both of them are actuating, which is the 2 x the force required to move one if they are identical. The post title said "static" so I would assume this means not actuating. If neither is actuating then the "static holding force" of two of them is 2 x that of one. If you want to change it, no problem. Get a BIGGER door opener.