From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

signal optimization for MEMS applications

Solved!
Go to solution

Hello guys,

 

I hope I will find more help here than on the french forum!

 

OK... here is my problem:

 

I work on MEMS (Micro ElectroMechanical System) it converts electrical signal into a movement.

 

My input is a voltage vs time signl V(t)=SUM(ai*sine(w*t+phii) i=0-->3

 

My output is the displacement of the MEMS Z(t). This displacement is measured.

 

From my input and output, I can draw Z(V)....and it has a quite complicated shape... so what I do is I change manually "ai" and "phii" until I get Z(V)=alpha*V+beta on quarter period (V is sine like wave)... Or, in other words, make Z(V) triangular like signal

 

I want to build a vi that reads "ai" and "phii", then modify them until I reach my target.

 

I used Labview 7years ago (and I was like beginner mode), now I feel I lost my abilities... plus I am working on hard mode level.

 

I hope find some clues to solve my problem here

 

Thanks

0 Kudos
Message 1 of 12
(3,332 Views)

Hi,

do you need of a VI that starting from a(i) and phi(i) change these values of a dt until you reach a specific condition? If yes, you should use a  while loop that terminates when your condition is reached.

 

0 Kudos
Message 2 of 12
(3,314 Views)

Are you politely insulting people on the french forum who tried to help you?

0 Kudos
Message 3 of 12
(3,280 Views)

Hi,

 

Yes this is my basic idea. the only difference is that I have a table de time t (in fact this time table is injected into my circuit board to generate V(t) signal)

 

I tried to do so (using a while loop) but this is where I am stuck:

 

I initiate the program with some a(i) and phi(i) values. So how can I ask the vi to change these "control" variables, because they are supposed to be out of the loop... I tried to use local variables, but it lead me into an infinit loop.... Or did I do something wrong?

 

Thak you for the support

0 Kudos
Message 4 of 12
(3,238 Views)

As it was asked: here is a diagram of what I am trying to achieve.

 

Thank you all for your help

0 Kudos
Message 5 of 12
(3,221 Views)

if you want I can give you avi to act like what you want  but it is not good way to solve your problem because it is based on data input by to by to find answer

 so it is possible that take so long time to find answer even may you can not find the answer

for solving this problem I have to solution method try them

1 solve problem symbolical but unfortunately labview have not symbolic calculation so you have to use matlab or mathematica
2 use some simulation software for finding best result I work with comsol software before it could be appropriate choose to solve this problem 

beyond your answer for piece of advice i work with MEMS and esp. MEMS cantilevers always care about the Hysteresis in your experiment it always change a data for mems device 

 

0 Kudos
Message 6 of 12
(3,196 Views)

Hi Ingenieur,

 

how is V(t) related to "t" at all? As far as I can see it's more like V(i)…

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 7 of 12
(3,183 Views)

hello everyone

 

@Hatef,

 

Totally agree with you that hysterisis and dumping effects (and so many other effects) are phenomena that might make my problem complicated. But I would put some confidence boundaries (like 80% liinear displacement is acceptable)

 

the user "1abvi3ew" has kindly suggested me the same solution, but it will make my work a bit complicated. Indeed, Labview facilitates the communication with all my tools (circuit board to command the MEMS and doppler laser to measuer the displacement)

 

@ GerdW

 

I put as attached file my tentative vi

 

In the program you can see how the time table is attached to voltage waveforme. Then, I implemented a "VERY" simplified Z(V) function (in real life, I have to read Z values, then correlate them to V values so I can build a Z(V) table)

 

Anyway, I used linear fit, and I check the residue while changing a(i) and phi(i). At this point in my vi, if you change any a(i) the residue will increase (i.e. loosing linearity)

 

My problem here is how to ask labview to change automatically a(i) and phi(i) to find a minima in linear fit's residue.

 

Thank you all for your help

0 Kudos
Message 8 of 12
(3,167 Views)

Sorry I forgot to mention, the vi I've attached is valid only on a 1/4 wavelength!

 

So I am getting a linear behavior only on 1/4 cycle... I guess I will have a giant lead to reach triangular waveform!

0 Kudos
Message 9 of 12
(3,155 Views)
Solution
Accepted by topic author IngenieurMEMS

I dont Know if you means some thing like what i send you in attachment or not 
test it 
it use one step for a and pi that you could select and also accuracy 

 

Message 10 of 12
(3,146 Views)