Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Strange result of linear close loop control based on DAQmx

Hi all,

I have problem writing a linear close loop control and hope for your help.

I wrote a program to control the parallelism of two rollers, the system setup is like the picture bellow. The impression roller are fixed and a pair of load cells are used to detect the force change of the two ends of impression roller. The print roller is flexible and a pair of voice coil actuators are used to change the position of its two ends. My goal is to use the voice coils to push the print roller to make the reading of two load cell the same, which represents that the two rollers are parallel.

system setup

 

0 Kudos
Message 1 of 4
(3,356 Views)

My feedback signals are forces sensed by the load cells, F1, and F2. My output are the voltages giving to the voice coil. I want to adjust the force F1 and F2 the same and fixed at desired value F0.

My control strategy is,

step 1: give opposite voltage to the voice coil to make angular adjustment, this step is to make F1-F2 approach 0.

step 2: give the same voltage to the voice coil to make linear adjustment, this step is to make (F1+F2)/2 - F0 approach 0;

and repeat step 1 and step 2

......

Finally, F1=F2=(F0)/2

 

I attached my VI for you reference.

 

 

0 Kudos
Message 2 of 4
(3,355 Views)

I think my control strategy is simple and clear. However, the output result is very strange. The F1 and F2 read by the load cell is not fixed at the desired value but shaking all the time, like the picture bellow (the red line and white line in the up left stand for F1 and F2).

PID P control_strange unsteability.png

 

 

 

0 Kudos
Message 3 of 4
(3,353 Views)

another example of the unsteady result is like,

 

Untitled.png

 

 

I checked the output (the voltage giving to the voice coil), I found it is much bigger than the designed value (I used the sensing force and linear gain to calculate the desired output voltage). I am confused why the VI gives wrong output? Why it do not follow the simple mathematic relationship I wrote in my code?

 

Could anyone give me some instruction about my problem?

Thanks very much!

Best regards

0 Kudos
Message 4 of 4
(3,352 Views)