LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Build Waveform, SI Module Residual Analysis, System Identification MIMO

Solved!
Go to solution

Hi, I have a question stemming from this page, with the residual analysis model: http://zone.ni.com/reference/en-XX/help/372458D-01/lvsysidconcepts/case_study_validating/#Simulation...

 

So this is for ARX, a SISO function. I want to do the same with a State Space MIMO function. I'm having some trouble with the Build Waveform, the types for the waveform doesn't match up. It appears there's another dimension to the autocorrelation/crosscorrelation, which is causing some issue. Is there a way I can do this with a MIMO so I can build the waveform?

 

Thanks,

Andrea

0 Kudos
Message 1 of 5
(2,874 Views)

Hello Andrea,

 

The SI Model Residual Analysis VI outputs an array of Waveforms for the MIMO, WDT case- much like the VI requires an input waveform array of the stimulus signals. To use the Build Waveform function with this type of output, you will have to index the array using the Index Array function or a for loop. From the LabVIEW help documentation (http://zone.ni.com/reference/en-XX/help/372458C-01/lvsysid/model_resid_analysis/),we see that:

 

Cross correlations returns the cross correlations of prediction error and stimulus signals. Each element of the waveform array is the cross correlation between one input and the prediction error of the output.”

 

Additionally, using the NI Example Finder built in to LabVIEW, you can access the Residual Analysis.vi by navigating to Control and Simulation»System Identification»Model Analysis and Validation»Residual Analysis.vi. This example uses the SI Model Residual Analysis VI as well, but it uses the array output instead of the waveform output. You may have more success using an array output with a MIMO system.

Cameron
0 Kudos
Message 2 of 5
(2,827 Views)

What's the best way of indexing the array using the Index Array function, or a for loop? There's a data mismatch when I use a get waveform component

0 Kudos
Message 3 of 5
(2,802 Views)

More specifically, the cross correlation is a 2D waveform - how would I index it? The Index Array function doesn't seem to work with 2D waveforms.

 

Thanks,

Andrea

0 Kudos
Message 4 of 5
(2,785 Views)
Solution
Accepted by topic author AndreaD

Hello Andrea,

 

You should be able to work with the Index Array function and the MIMO Waveform configuration of the SI Model Residual Analysis VI. As seen in the snippet below, you can wire the 2D Waveform array into the Index Array function and the default output will be a 1D Waveform array.

 

ArraySnippet.png

 

Then, using the Index Array function again, we are left with the waveform that existed in the zeroth row and the zeroth column of that initial 2D Waveform array. Once we have extracted out the desired waveform, we can use the Get Waveform Components function or wire the data directly to an indicator.

 

When working through this exercise, you may find using the Context Help window to be very useful. With the Context Help Window (press CTRL+H), you can mouse over wires and determine their data type.

 

For more information concerning array manipulation, I highly recommend looking through the examples in the NI Example Finder’s Fundamentals»Arrays and Clusters directory. You can open the NI Example Finder by navigating to Help»Find Examples....

Cameron
Message 5 of 5
(2,770 Views)