LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Estimate transfer function model from captured data

Dear All,

I am trying to estimate a system transfer function model from captured data (the data response was obtained from a unit step input signal t(0)=1).  There are two supplied files for the data (.dat files), namely time data and response data, I created an additional unit step input data (stimulus signal) i.e. all 1 for all t>or=0.  These files are included in the attached .zip file 'Data Files.zip'.

I have attempted various ways of finding the transfer function (spent hours ploughing through "unhelpful" Help text, consulted the supplied System Identification Toolkit Manual all to no avail).  I seem to be lacking in the basic understanding of how to use these vi's and in particular have many errors relating to signal type mismatches and other errors that I can't understand.

I have attached a vi with the data .dat files (its a bit of a mess since I've been using this to try various things).  If anyone can point me in the right direction it would be greatly appreciated.

Regards, 

Download All
0 Kudos
Message 1 of 6
(4,308 Views)

Hi bunnykins,

 

I think we should first backtrack and determine what you are attempting to do exactly.  I have taken a look at your data and played around with it myself and the first thing to note is that the time data is not equally spaced.  This limits our ability to use the waveform type because waveforms, by definition, must be equally spaced in time.  The is one thing to consider moving forward.

 

BlockDiagram.png

In order to get around the misspaced time, I instead created my own waveform with the dt value set to 0.02 as shown above.  It appeared as if the beginning of your time data had 0.02 as the dt.  Next, I wired these into both the stimulus signal and response signal inputs.  I have attached my code which does not generate any errors.

 

Let me know if this is the information you are trying to acquire or if there is something specific you are looking to achieve.

 

Lynn

National Instruments
Senior Systems Engineer
0 Kudos
Message 2 of 6
(4,276 Views)

Dear Sarci1 (Lynn),

 

Many thanks for your response and attached VI.  I tried the VI and it appeared to work ok without any errors (as you pointed out) however the transfer function and coefficients do not appear to be working or are giving the incorrect values.  This is where I am having all the trouble, trying to get the transfer function extracted from the response data.  Unfortunately the NI help on these VI's is lacking and not very good.

 

Regards,

0 Kudos
Message 3 of 6
(4,264 Views)

Hi bunnykins,

 

The VI I attached provides you with the numerator and denominator values for your transfer function.

 

 

T(s) = (-0.92s+1.99)/(1.80s^2+3.53s+1)

 If you don't agree with this function, you can try changing the 'orders of transfer function model' input to change the numerator and denominator orders.

 

Lynn

 

National Instruments
Senior Systems Engineer
0 Kudos
Message 4 of 6
(4,256 Views)

Hi,

I captured a signal and I want to find the transfer function of the system. output signal has a little delay and echo. could you please help me in order to solve it?

thank you so much indeed,

Shiva

0 Kudos
Message 5 of 6
(3,547 Views)

Hi shiva.mirshahi

 

First, I might recommend you to create a new tread as the last post on this tread was on 2011 and National Instruments tries to handle one issue per thread.

 

Second, I am not sure if I understood the problem, could you provide more details, an attachment or screenshot to understand better the delay or echo.

 

Here are some links with information and a tutorial that I found, which might help you a little.

 

Identifying Continuous-Time Transfer Function Models (System Identification Toolkit) - LabVIEW 2010 ...

 

System Identification and Estimation in LabVIEW

 

Control and Simulation  in LabVIEW

 

 

Regards

Esteban R.

0 Kudos
Message 6 of 6
(3,515 Views)