1. Do not share user accounts! Any account that is shared by another person will be blocked and closed. This means: we will close not only the account that is shared, but also the main account of the user who uses another person's account. We have the ability to detect account sharing, so please do not try to cheat the system. This action will take place on 04/18/2023. Read all forum rules.
    Dismiss Notice
  2. For downloading SimTools plugins you need a Download Package. Get it with virtual coins that you receive for forum activity or Buy Download Package - We have a zero Spam tolerance so read our forum rules first.

    Buy Now a Download Plan!
  3. Do not try to cheat our system and do not post an unnecessary amount of useless posts only to earn credits here. We have a zero spam tolerance policy and this will cause a ban of your user account. Otherwise we wish you a pleasant stay here! Read the forum rules
  4. We have a few rules which you need to read and accept before posting anything here! Following these rules will keep the forum clean and your stay pleasant. Do not follow these rules can lead to permanent exclusion from this website: Read the forum rules.
    Are you a company? Read our company rules

Question Actuator oscillation/vibration problem

Discussion in 'DIY Motion Simulator Projects' started by motiondynamics, Sep 9, 2023.

  1. motiondynamics

    motiondynamics Member

    Joined:
    Apr 12, 2019
    Messages:
    184
    Balance:
    1,097Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, AC motor, SimAxe, Arduino, Motion platform, 6DOF
    Hello everyone, I have a serious and inconvenient problem.
    I built a platform with 4 actuators (D-Box type), but all 4 actuators produce a vibration when I put a payload on it.
    I'm using SCM3 V1.7 (with softstart) with Arduino.
    As soon as I insert the USB cables, the actuators move perfectly to the center, but after a few seconds they start to oscillate/vibrate up and down repeatedly of about -/+ 2 millimeters, even without using Simtools, without using any game, without using SMC3Utils.
    NOTE: If the actuators have no payload, there will be no vibration/oscillation.
    I've already tried to change the PID values and the dead time, but I don't get any improvement.
    My idea would be to lock the motors or disable power to the motors from software when not using Simtools or not starting the game.
    So if Arduino does not receive any telemetry, the BREAK pin of the driver receives a 0V signal which activates the MOSFETs to brake the motor.

    Is this already possible to do or do you have to modify the Arduino sketch?
  2. Gadget999

    Gadget999 Well-Known Member

    Joined:
    Dec 27, 2015
    Messages:
    1,936
    Location:
    London
    Balance:
    11,844Coins
    Ratings:
    +474 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, 6DOF
    Show is your smc3 untils settings
  3. motiondynamics

    motiondynamics Member

    Joined:
    Apr 12, 2019
    Messages:
    184
    Balance:
    1,097Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, AC motor, SimAxe, Arduino, Motion platform, 6DOF
    Fpid = 10
    Kp = 80
    Ki = 0
    Kd = 0
    Ks = 1

    Fpwm = 5
    PWMmin = 0
    PWMmax = 50
    PWMrev = 0

    Max Limits = 0
    Clip = 125
    Dead Zone = 0
  4. Gadget999

    Gadget999 Well-Known Member

    Joined:
    Dec 27, 2015
    Messages:
    1,936
    Location:
    London
    Balance:
    11,844Coins
    Ratings:
    +474 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, 6DOF
    try this

    Fpid = 1
    Kp = 1
    Ki = 0
    Kd = 0
    Ks = 1

    Fpwm = 15 khz
    PWMmin = 0
    PWMmax = 225
    PWMrev = 225

    now slowly increase KP till the motors move
  5. motiondynamics

    motiondynamics Member

    Joined:
    Apr 12, 2019
    Messages:
    184
    Balance:
    1,097Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, AC motor, SimAxe, Arduino, Motion platform, 6DOF
    Ok will try this solution and then I will write the result.
    Thanks in the meantime.
  6. Dirty

    Dirty Well-Known Member Gold Contributor

    Joined:
    Oct 15, 2017
    Messages:
    744
    Occupation:
    All the way up front.
    Location:
    Germany
    Balance:
    7,909Coins
    Ratings:
    +878 / 3 / -0
    I too think that the oscilations point towards PID tuning issues. I can't help you with SMC settings though, sorry.

    Another possible source of those oscilations I could imagine is if the position sensing (encoder?) is inaccurate or has a mechanical hysteresis or excessive latency. Maybe investigate in that direction...

    Wish you success :)
  7. motiondynamics

    motiondynamics Member

    Joined:
    Apr 12, 2019
    Messages:
    184
    Balance:
    1,097Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, AC motor, SimAxe, Arduino, Motion platform, 6DOF
    Hi everybody.
    I did the test that "gadget999" recommended to me, it seems to have improved a little (but very little)...
    So I continue to have this oscillation problem, the actuators go up and down continuously by +/- 2 mm.
    If I don't put the payload on top the oscillations disappear, but if I press my hands on the actuator with my body, it starts to oscillate.

    As you say "Dirty", it could be a PID problem, I don't know...
    There are no mechanical tolerance gaps in the actuator, I am using excellent quality potentiometers (not encoders).

    Questions: Can it depend on how often the driver drive works? It works at maximum with a frequency of 1Khz for the brushless motor. Maybe if I use another driver with a frequency of 15Khz I could solve the problem?

    Another thing: is there a way to bring the piston all the way down when you're not using the game? Currently the oscillations occur even without starting the game.
    I read somewhere that you could use a string to bring the pistons to the lower part (rest), the string was this:

    STARTUP OUTPUT
    [A<128>][B<128>][C<128>]

    SHUTDOWN OUTPUT
    [A<128>][B<128>][C<128>]


    I already tried this solution but nothing happens, as if the string was wrong, I don't know.
    Could someone explain to me better how to use these strings correctly?

    Thank you all
  8. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,145
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,565Coins
    Ratings:
    +10,902 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Have you tried adding some Dead Zone in SMC3?
  9. motiondynamics

    motiondynamics Member

    Joined:
    Apr 12, 2019
    Messages:
    184
    Balance:
    1,097Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, AC motor, SimAxe, Arduino, Motion platform, 6DOF
    Hi noorbeast, yes I noticed that by increasing the Dead Zone in SMC3Utils, the oscillations increase...
  10. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,145
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,565Coins
    Ratings:
    +10,902 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    What is the resolution of the pot and how smooth is its tracking in SMC3?
  11. motiondynamics

    motiondynamics Member

    Joined:
    Apr 12, 2019
    Messages:
    184
    Balance:
    1,097Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, AC motor, SimAxe, Arduino, Motion platform, 6DOF
    What do you mean by "resolution"?
    I use a Bourns potentiometer with 10cm of total movement (from 0 to 10cm of movement), and 10K of resistance.
    In SMC3 the green line (potentiometer) follows the blue line perfectly. I can attach a picture if you want.
  12. Gadget999

    Gadget999 Well-Known Member

    Joined:
    Dec 27, 2015
    Messages:
    1,936
    Location:
    London
    Balance:
    11,844Coins
    Ratings:
    +474 / 9 / -0
    My Motion Simulator:
    2DOF, DC motor, Arduino, 6DOF
    what are your current settings ?
  13. motiondynamics

    motiondynamics Member

    Joined:
    Apr 12, 2019
    Messages:
    184
    Balance:
    1,097Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, AC motor, SimAxe, Arduino, Motion platform, 6DOF
    Good morning, this is the setup I've been using for a few days.

    Attached Files:

  14. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,145
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,565Coins
    Ratings:
    +10,902 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    Your Kp is far lower than I would have expected.

    With Kp set to about 400, Clip and Limit to 255, all other values at zero, then slowly raising PWMmax from zero at what PWMmax value do the motors start to move?
  15. motiondynamics

    motiondynamics Member

    Joined:
    Apr 12, 2019
    Messages:
    184
    Balance:
    1,097Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, AC motor, SimAxe, Arduino, Motion platform, 6DOF
    Hi Noorbeast, I set the values as you told me. But the motors did not move with Kp=400 and Clip and Limit at 255.
    I then set Clip to 125, Limit to 0.
    So the engines started moving.
    The values are:

    Kp = 400
    Clips = 125
    Limit = 0
    PWMmax = 5

    So the engines started moving.
    Obviously very slowly, the potentiometer line does not in fact follow the blue line.
    Obviously if I increase PWMmax the green line improves, following the blue line.

    With the values in the graph, the motor emits a loud noise when it is stopped at a position, in fact in "manual" mode, every time I click on the right on one of the 3 buttons (up, center, down), the motor stops in position and emits a loud noise, as if it were frying.... So the motor does not oscillate but vibrates and emits a loud noise...

    Attached Files:

  16. motiondynamics

    motiondynamics Member

    Joined:
    Apr 12, 2019
    Messages:
    184
    Balance:
    1,097Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, AC motor, SimAxe, Arduino, Motion platform, 6DOF
    So, I think I have solved the problem 70%.
    I set the following values:

    Kp = 50
    PWMmax = 255

    Now the three engines oscillate less.
    A question I ask you, what are the following strings for and how are they used?

    STARTUP - OUTPUT
    [A<128>][B<128>][C<128>]

    SHUTDOWN - OUTPUT
    [A<128>][B<128>][C<128>]


    Thanks in advance
  17. noorbeast

    noorbeast VR Tassie Devil Staff Member Moderator Race Director

    Joined:
    Jul 13, 2014
    Messages:
    21,145
    Occupation:
    Innovative tech specialist for NGOs
    Location:
    St Helens, Tasmania, Australia
    Balance:
    148,565Coins
    Ratings:
    +10,902 / 54 / -2
    My Motion Simulator:
    3DOF, DC motor, JRK
    The motors should not move with Kp=400 and Clip and Limit at 255, they should move at some increased value of PWMmax with those settings, and I am curious what that PWMmax is.

    As the name suggests, but perhaps is not obvious, they are positional controls of startup and shutdown, please see the FAQs here: https://xsimulator.net/community/faq/startup-and-shutdown-positional-controls.234/
  18. Airbas72

    Airbas72 Member

    Joined:
    Oct 20, 2019
    Messages:
    37
    Balance:
    - 7Coins
    Ratings:
    +4 / 0 / -0
    My Motion Simulator:
    3DOF, Arduino
    Hi, I also used 10KOM potentiometers and I also had surges and vibrations. I tried to fix this using the settings but it didn't work. then I rigidly connected the potentiometer to the gearbox and removed all the backlash, after which the jumps and vibrations went away
  19. Airbas72

    Airbas72 Member

    Joined:
    Oct 20, 2019
    Messages:
    37
    Balance:
    - 7Coins
    Ratings:
    +4 / 0 / -0
    My Motion Simulator:
    3DOF, Arduino
    I have seen in people's projects when the potentiometer is connected to the motor via a drive belt, and it was not tensioned enough, I think this will also cause vibration
  20. motiondynamics

    motiondynamics Member

    Joined:
    Apr 12, 2019
    Messages:
    184
    Balance:
    1,097Coins
    Ratings:
    +8 / 0 / -0
    My Motion Simulator:
    2DOF, 3DOF, DC motor, AC motor, SimAxe, Arduino, Motion platform, 6DOF
    Hi Airbas72.
    My potentiometer is firmly fixed on the actuator with 2 screws, it is not loose, it is not movable.
    So I don't think the oscillations depend on the potentiometer.

    I have a question: I noticed that in SMC3Utils, if I increase the value of Deadzone, the oscillations increase, whereas by lowering the value the oscillations decrease. So at 0 they almost disappear, but they are still present.
    Is there a way to change the dead zone from Sketch? Maybe by reducing the value from the sketch I can solve it much better.
    Tell me, thanks