01-07-2014 07:02 AM
Hello LabVIEW community,
I have a question for the purpose of a System Identification.
It is a strongly non- linear system based on the magnetostrictive effect. The non-linearity of the magnetostrictive actuator is strongly frequency dependent.
I suspect that the biggest non-linearity is caused by the magnetic hysteresis.
Now my question: Are there any identification models in LabVIEW, which provide me a mathematical model for my problem? This model is designed on the
one hand for the simulation, on the other hand for the compensation of non-linearity.
I heard from a Hammerstein - Wiener model, is it possible for my case to approximate with this model the non-linearities? I think the problem here can be the hysteresis, but i dont know exactly because i have no experience with this model.
I also heard of Volterra filters in combination with a LMS / RLS algorithm. Are these implemented in LabVIEW?
Or are there other possiblities to identify the system by measurment? An analytical solution is not possible for me because I can not physically describe the system.
I would be grateful for any help.
Kevin
01-07-2014
11:44 AM
- last edited on
04-17-2025
03:15 PM
by
Content Cleaner
Hey Kevin,
We do have a System Identification (SysID) Toolkit for LabVIEW. Product page reference,
http://sine.ni.com/nips/cds/view/p/lang/en/nid/209045
When it comes to more detailed information on the available estimation types and how to use the toolkit, the user manual will be your best reference.
https://www.ni.com/docs/en-US/bundle/371001c/resource/371001c.pdf
Now with specifically with identifying non-linear systems, it can get more complicated, as I'm sure you know. A couple approaches I know of are the Estimate User-Defined Model.vi, the Optimization and Calibration with Simulation - Calculate Parameter.vi (C:\Program Files\National Instruments\LabVIEW 2013\examples\Control and Simulation\Simulation\Fitting Parameters to Signal), and Neural Networks.
Regarding Hammerstein - Wiener models, that is approached using the Estimate User-Defined Model.vi. Check out this help document at the bottom.
I am not familiar with any Volterra filter solutions in LabVIEW.
When it comes to estimation when using acquired data, you could use the same Optimization and Calibration VI listed above. On the block diagram there is a section where we have a simulated system "Optimization and Simulation - Simulate Spring with noise". Instead of simulating the system here with the Control Loop, you could use measure data to represent the response of the system and feed that data into the Constrained Nonlinear Optimization.
Hope this helps get you going in the right direction!
01-20-2014 05:05 PM
Kevin,
When doing nonlinear system identification you really need a full understanding of the real system's nonlinearities - either by carrying out lots of tests on the system to explore the nonlinearities (if you can do that), or by considering the underlying equations / relationships that define the system (though I see you state you can't physically describe the system ? I suppose it might be a black box to you). Once you have that understanding you'll then have to simplify or rearrange the nonlinear relationships to match the class of nonlinear systems that can be identified.
Getting an appropriate nonlinear model structure isn't trivial (unless a simple system) and if not done properly can lead to seemingly random results!! Once you have this nonlinear structure, the system identification can then identify the parameters of that nonlinear model. Validating nonlinear models is also much more complicated, as you need to make sure you cover the many operating points you need.
Of course the very first thing you need to consider is what you want to use the identified model for - which will dictate how accurate you need the model to be (and frequency range of interest), the range of operating points it needs to work over, and hence what simplifications you can make.
Hope this helps,
01-20-2014 11:42 PM
@Kevin1984 wrote:
Hello LabVIEW community,
I have a question for the purpose of a System Identification.
It is a strongly non- linear system based on the magnetostrictive effect. The non-linearity of the magnetostrictive actuator is strongly frequency dependent.I suspect that the biggest non-linearity is caused by the magnetic hysteresis.
Now my question: Are there any identification models in LabVIEW, which provide me a mathematical model for my problem? This model is designed on theone hand for the simulation, on the other hand for the compensation of non-linearity.
I heard from a Hammerstein - Wiener model, is it possible for my case to approximate with this model the non-linearities? I think the problem here can be the hysteresis, but i dont know exactly because i have no experience with this model.
I also heard of Volterra filters in combination with a LMS / RLS algorithm. Are these implemented in LabVIEW?
Or are there other possiblities to identify the system by measurment? An analytical solution is not possible for me because I can not physically describe the system.
I would be grateful for any help.
Kevin
I don't really have anything to input on this, but I do want to let you know recently one of our customers who is using the system identification toolkit has found a decent amount of bugs, including code that runs fine in Matlab but throws errors in LabVIEW. He had to customize many of the algorithms to get them to work correctly. I'm not saying you will have the same experience, but it is something to note.
01-21-2014 03:15 AM
Greg,
Have these bugs been documented and passed to NI ? It might be good to share the specifics on this fourm with users / potential users so that they don't waste time trying to get something working that they can't. I seem to remember some of the earlier versions of the sysid toolkit did have a few problems (don't know anything specific), but I also think there are some subtle differences between Matlab and the LV way of doing things which could be taken as bugs to the unwitting. There are a lot of ways even fully correct system identification algorithms can give bad results - e.g. if you don't set up the data and models correctly. Sounds like your customer was experienced though.
01-21-2014 02:04 PM
Yes, my customer has a doctorate in dynamics which is why he is doing that part of the code. That said, I'm not excluding the possibility that these types of things you mention could be causing the problem as well. Unfortunately I don't know many specifics on the issues as that part of the code is somewhat of a black box to me. However, I know NI has been in the loop, so they should be aware of these things. If I find out more details I will be sure to post back. But, in the mean time I don't really have any information that will provide much value.