### Thread: RUNNING LINEAR ACTUATOR without feed back

1. No Profile Picture
Registered User
Devshed Newbie (0 - 499 posts)

Join Date
Dec 2013
Posts
7
Rep Power
0

#### RUNNING LINEAR ACTUATOR without feed back

Dear all,

Problem Statement:
I have linear actuator running with 3.2mm/sec , 600mm stroke,
should run from morning 7AM and 18 PM . i.e 11 hour for solar tracking application. I assumed Desired angle on -45 deg to 45 deg from 7am to 18 PM .how i can calculate actuator on time?calculate Actuator actual poS?? Is equation are right??

11hr*60minute/hour = 660minutes
so turn on the actuator once a minute for (25 / 88) seconds per minute.

Here's the math:
600mm/660minute = 10/11 mm each minute

actuator move 3.2mm/second
time * 3.2mm/sec = 10mm / 11

time = (10 / (11 * 3.2)) (get rid of decimal by multiplying top and bottom by ten) = (100 / 352) (divide top and bottom by four to reduce fraction) = (25 / 88) seconds per minute
This is less than a third of a second per minute. IT must be better off selecting a time to run the actuator and calculate the how often to run the actuator.

Then:
2 * (88 / 25) = (176 / 25) minutes
actuator for two seconds every 7.04 minutes (7 minutes, 2.4 seconds).

Just change the "2" above to figure out how frequently you should run the actuator if you want it on for a different number of seconds.

Here's the other equations relating the various variables to each other.

angle= ((3 * position) / 20) - 45
or
position =((angle + 45) * 20) / 3
position = ((20 * angle) / 3)+ 300

since position = 3.2 * time (in seconds)

angle =((3 * 3.2 * time) / 20) - 45
using only integers:
angle =((96 * time) / 200) - 45

Code:
`double Desire_Degree; unsigned int TS; static float slope= 0.00227272727273; static float intercept=- 102.272727273; static int length; double Actual_Degree; static int h; static int m; double Actual_postion; static float ACT_SPEED=3.2;   void setup() {    h=7;   m=30;       Serial.begin(9600);   } static int time_interval;  void loop() {   calc_min();   //Desire degree calculation   if(h<23)   {   TS=(3600*h)+(60*m);   Desire_Degree=(TS*slope)+intercept;      //Actual anngle calculation   time_interval=(10)/(11*ACT_SPEED)*(25/88);  // length=(TS*3.2);   length =(0.0151466666667*TS - 381.504);   Actual_Degree=((3 *length) / 20) - 45;      Actual_postion=((Actual_Degree + 45) * 20) / 3;           // actual_deg=((3*length)/200)-45;   Serial.print("HH-MM: ");   Serial.print(h);Serial.print(":");Serial.println(m);   Serial.print("Desired Degree:");  Serial.println(Desire_Degree);  Serial.print("Actual Degree:");  Serial.println(Actual_Degree);  Serial.print("length:");  Serial.println(length);  Serial.print("Actual pos:");  Serial.println(Actual_postion); Serial.println(".................................");      }     delay(1000); }  void calc_min() {  if(m<60) {    m=m+5; }else if(m==60) {   m=0;h=h+1; } }`
2. Your linear model might be good enough for your application. Still, better tracking is possible.
Code:
```   A   NB. A is a vector of hourly solar azimuth from north, starting at 6AM.  New York city, last day of 2013.
108.01 117.1 126.98 138.1 150.78 164.99 180.19 195.38 209.56 222.2 233.29 243.15 252.23

2-~/\A  NB. Successive differences showing non-linearity.
9.09 9.88 11.12 12.68 14.21 15.2 15.19 14.18 12.64 11.09 9.86 9.08```
3. No Profile Picture
Registered User
Devshed Newbie (0 - 499 posts)

Join Date
Dec 2013
Posts
7
Rep Power
0
Originally Posted by b49P23TIvg
Your linear model might be good enough for your application. Still, better tracking is possible.
Code:
```   A   NB. A is a vector of hourly solar azimuth from north, starting at 6AM.  New York city, last day of 2013.
108.01 117.1 126.98 138.1 150.78 164.99 180.19 195.38 209.56 222.2 233.29 243.15 252.23

2-~/\A  NB. Successive differences showing non-linearity.
9.09 9.88 11.12 12.68 14.21 15.2 15.19 14.18 12.64 11.09 9.86 9.08```
Here angle based on assumption. For accuracy we are using NREL code with feedback sensor. Since i am assuming -45 deg(0mm) @ 7 AM , 0 degree(300mm) @ 12 pm and 45 degree (600mm) around 18pm. I need only formula to get actual angle :

stroke 600mm and speed 3.2mm/sec
time to retract= 600mm/3.2=187.5sec
now i need to divide this time in 660 minutes. i.e 7am to 18 Pm
how i can put in code.

initial length =0mm after 5 min it has moved 10 mm
how can i calculate actuator on time .so it moves 10 mm per every 5 minute
4. What you seem to have missed from your massive cross posting (and more) is the resolution as well.

> linear actuator details: 24v 3A,600mm stroke, actuator speed 3.2mm/sec, resolution1.89 pulse/mm.

The speed is irrelevant, it can cover the whole 600mm in just over 3 minutes (at 3.2mm/sec). This is minuscule compared to the 11 hours that you want to run for.

Like I said elsewhere,
300mm * 1.89 pulse/mm => 567 pulses to travel 300mm
567 pulses in 5 hours (=300 minutes, =18000 seconds) gives you one pulse every 31.75 seconds.

#### Comments on this post

• clifford agrees : That makes much more sense - it did seem an unlikely and rather crude actuator until you found that.