Using Solo for a li...
 
Notifications
Clear all

[Solved] Using Solo for a linear actuator

32 Posts
2 Users
0 Likes
551 Views
Forum 1
(@unolittlebird)
Trusted Member
Topic starter
 

Hi,

I just wanted to quickly check whether or not it is possible to use the Solo motor controller for controlling linear actuator (DC)? If yes, would it also be able to read the current and therefore the load on the linear actuator?

I just thought that since a linear actuator is steered by a dc motor anyway this should be feasible, right? Just wanted to make sure.

Kind regards,

unolittlebird

 
Posted : 16/12/2021 1:07 pm
SOLO Team
(@milad)
Illustrious Member Admin
 

Hi @unolittlebird,

As you know similarly to Brushless motors, SOLO supports Brushed DC motors with nested Torque, Speed, and Position loops, so in principle, you should be able to control each of these phenomena independently with DC brushed motors too, the linear DC motors are usually having a similar operational principle to DC motors, so I believe you can control the current fed into the motor and read it back similar to normal DC motor because the current is fixed on the stator to control the torque so I believe you can get the same behavior in Linear DC motors too ( even on a single inductor, SOLO should be able to fix the current at a certain value since it purely controls the current once in DC brushed motor mode, however in BLDC motors the story is different...).

BTW, let me know if you have any specific questions in this regard or if you like to share the datasheet of the motor itself.

Regards
Milad

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.

 
Posted : 16/12/2021 3:24 pm
Forum 1
(@unolittlebird)
Trusted Member
Topic starter
 

Hi @milad,

attached is the datasheet pdf of the linear actuator I am testing it right now. My Goal is to get some Force-feedback by reading the current flowing into the motor.

However, for the moment I cannot even manage the Solo Uno to identify the motor. There are still the values of the motor I used before in the motion terminal. I connected the linear DC to B and C connecters and the Solo with USB to my Raspberry Pi.

Kind regards,

Cajetan

 
Posted : 20/12/2021 8:04 am
SOLO Team
(@milad)
Illustrious Member Admin
 

Hi @unolittlebird,

thanks for the info

Posted by: @unolittlebird

However, for the moment I cannot even manage the Solo Uno to identify the motor.

once you do the Motor identification, do you see any sort of vibrations in the motor? make sure the connection of SOLO to the PC/Raspberry Pi is Ok and after pressing the Motor ID. there is some sort of a reaction in the motor.

Let me know the results please.

Regards
Milad

 

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.

 
Posted : 20/12/2021 8:15 am
Forum 1
(@unolittlebird)
Trusted Member
Topic starter
 

Hi @milad,

when I power on Solo Uno (Piano Switch 1 and 2 Down) and then press 5 down, the actuator vibrates because it is then moving (in the current wiring it extends until the endpoint when powered on). When I press motor ID in the terminal nothing happens. I can however set it manually to DC motor type and even set the speed in digital mode to extend and retract the actuator, but there are still some problems with the parameters. Retracting is always accompanied by rumbling and vibrations but I can stop the motor. Extending is smooth but I cannot stop the motor (only with emergency stop)

The wiring with the Pi is:
Motor Output B and C connected to the Motor. B to + and C to -

Analogue Inputs:
GND to Pi GND (Physical Pin 39)
DIR to Pi physical Pin 36
P/F to Pi physical Pin 33 (PWM1)
S/T to Pi physical Pin 32 (PWM0)

but I am not doing anything yet Code-wise from the Pi, only using the motion terminal via Micro-USB connection to Solo

Piano Switch are 1,2 and 5 Down.

This post was modified 8 months ago by unolittlebird
 
Posted : 20/12/2021 10:20 am
SOLO Team
(@milad)
Illustrious Member Admin
 

Hi @unolittlebird,

Ok, It will be great if you can lock the actuator during the Identification phase so the motor wouldn't move just to have more precise measurements.

Posted by: @unolittlebird

but there are still some problems with the parameters

Can you share the identified values of the current controller gains? 

Posted by: @unolittlebird

Retracting is always accompanied by rumbling and vibrations but I can stop the motor. Extending is smooth but I cannot stop the motor (only with emergency stop)

- What control Mode are you using SOLO with ( Speed or Torque?)

- Is SOLO on Sensorless or Sensored mode?

- How much is the switching frequency? ( for DC motors contrary to Brushless motors, you usually need lower switching frequencies, maybe some value from 10 to 16kHz will be good for your motor, pls check it)

Regards
Milad

 

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.

 
Posted : 20/12/2021 10:29 am
SOLO Team
(@milad)
Illustrious Member Admin
 

BTW, make sure both in Digital and Analogue Mode your Motor type is in DC brushed, as you can see in the user manual section "Digital vs Analogue control", once you go into the digital mode, the motor type is selected through what has been set digitally and not through the Piano switch anymore.

So basically to know what is the exact motor type, you need to put SOLO firstly in Digital Mode, and then read the Motor type if you want to use SOLO in Digital mode, however, if you want to use SOLO in Analogue mode, the Piano switch will define the motor type for you.

Milad

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.

 
Posted : 20/12/2021 10:36 am
Forum 1
(@unolittlebird)
Trusted Member
Topic starter
 

@milad

-attached a screenshot of the gains. The piano switch is now set to Speed control mode but I also tried before Torque control mode to see if there is a difference and I did not recognize one. In the terminal I only get results if I set the command mode digital and the control mode speed.

-SOLO is in sensorless mode.

-The switching frequency was 22kHz I now tried 14 kHz and 10 kHz and the problems in general prevail

-I noticed something I did not see before:

When I mentioned in my post that the motor does not react to "motor stop" when extracting, I now found out that it actually does. The thing is that when I use low speed (100 rpm) I see that when extracting the actuator is vibrating in the same way as retracting and when I then press "motor stop" the motor extracts very smooth. I also see a difference in amperes drained. I think that is because per default it is extracting in the current wiring to the SOLO. I also see that if I power up SOLO and do not yet connect to the motion terminal, the actuator is extracting as it draws power from the solo.

regards

 
Posted : 20/12/2021 10:56 am
SOLO Team
(@milad)
Illustrious Member Admin
 
Posted by: @unolittlebird

In the terminal I only get results if I set the command mode digital and the control mode speed.

This is correct and normal as in the Motion terminal you can command SOLO only in Digital Mode.

- As you are in Sensorless mode, there is only one other parameter that you can tune and see how the behavior changes, and that's "DC Motor Observer gain", which is the gain of the non-linear speed estimator, by default it's set at 50, but you can see how the behavior changes with two wildly different gains of 10 and 100 just to see if something changes, you can change this gain dynamically while SOLO is operating on different values and see if the behavior changes.

- I see your identified current controller Kp is relatively high, I'd recommend keeping it lower than 1.0 for now ( may be at 0.5 or sth near this)

In General Sensorless methods are not very good for low-speed operations, however, it's early to say this for your application, as I'm not yet sure all the settings are at their best, so please try the mentioned points and let me know if anything gets better.

Regards
Milad

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.

 
Posted : 20/12/2021 11:14 am
Forum 1
(@unolittlebird)
Trusted Member
Topic starter
 

Hi @milad,

I tried as you suggested and noticed that the behaviour is better with a "DC Motor Observer gain" of 100. I don't perceived any difference in the change of the current controller but it is now set to 0.5

The vibrations became less now with Observer gain 100 but I still have the problem of the motor not stopping in one direction. For reasons I do not understand this changed direction now. I can stop it when it is extending but not when it is retracting

Kind regards,

unolittlebird

 
Posted : 20/12/2021 12:08 pm
Forum 1
(@unolittlebird)
Trusted Member
Topic starter
 

Hi @milad,

I just wondered whether analogue mode or digital mode is best suited for my application? I assumed it would be analogue mode, because that is what I saw from the examples with brushed DCs but for my application, wouldn't it be better to connect again the Raspberry via UART Pinout instead of the Analgoue Input to then read and control the motor?

regards,

unolittlebird

 
Posted : 20/12/2021 12:51 pm
SOLO Team
(@milad)
Illustrious Member Admin
 

@unolittlebird 

Ok, so the only thing that is remaining now which I feel might have a profound effect on the operation is the "Current controller Ki", as that gain is for the integrator of the PI and there is a chance that at zero speed, the controller can't stabilize the current well to keep the motor steady due to the fact that the high Ki gain is causing some sort of oscillation, to test that I'd recommend to keep the Current Controller Ki at a very low value like 0.0001 and see what happens. ( power recycle after changing the current controller gains is required)

I'm expecting to see a very different behavior after pressing the Stop with this gain.

so in general we are proceeding to the test with "current controller Kp" of 0.5 and the "current controller Ki" of 0.0001.

Let me know about the results please.

Regards
Milad

 

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.

 
Posted : 20/12/2021 12:54 pm
SOLO Team
(@milad)
Illustrious Member Admin
 

@unolittlebird 

Once we are done with a good setup in Digital mode, you can easily switch back to Analogue mode and work as you desire, our tests now are mostly focused on some tunings that are unaffected by being in Analogue or Digital Modes ( like the current controller gains or the observer gains...).

So once we get satisfactory results in Digital mode, you should be able to replicate everything in Analogue mode.

 

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.

 
Posted : 20/12/2021 12:56 pm
Forum 1
(@unolittlebird)
Trusted Member
Topic starter
 

@milad 

just tried with "current controller Kp" of 0.5 and the "current controller Ki" of 0.0001 after power recycle and the motor runs smoother (not completely smooth) but does not listen to "motor stop" in any direction now.

It extracts and retracts fully but I cannot tell it to stop.

 
Posted : 20/12/2021 1:22 pm
SOLO Team
(@milad)
Illustrious Member Admin
 

@unolittlebird,

Ok, can you share here an image from the Motion Terminal Monitoring of : IM and  Speed once you move and then try to stop the motor in any of the directions? 

Regards
Milad

 

If you found the answers helpful and you could solve your problems, please kindly verify here to help others in the future.

 
Posted : 20/12/2021 2:08 pm
Page 1 / 3
Share: