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.
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.
02-05-2016 04:13 AM
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
Solved! Go to Solution.
02-05-2016 05:37 AM
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.
02-05-2016 01:38 PM
Are you politely insulting people on the french forum who tried to help you?
02-07-2016 10:15 PM
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
02-07-2016 10:57 PM
As it was asked: here is a diagram of what I am trying to achieve.
Thank you all for your help
02-08-2016 01:41 AM
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
02-08-2016 02:04 AM
02-08-2016 02:43 AM
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
02-08-2016 02:56 AM
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!
02-08-2016 03:12 AM
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