LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

System identification of a "complex" system

I would like to use labview to extract the transfer function of a closed loop control system.  This system uses a PID loop to control the amplitude and phase of a radio frequency cavity.

 

I can easily excite the real world system with a step response (or any arbitary excitation).

 

The step response from the system has both amplitude and phase, and in labview is an array of type "extended complex".

 

Is the NI system identification toolkit capable of extracting the transfer function in both amplitude and phase?  I have an evaluation version and have been unable to get this working.

 

Pete.

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

The NI System Identification is capable of obtaining the equivalent transfer function in continuous domain (H(s)) or discrete (H(z)). I would advice you to try to obtain a step response of your system and try to use the VI "SI Estimate Transfer Function model" with the input and output signals. After that, try to validate your model by using the "Simulation" VI in Validation palette.

 

However, one of the main problems of using System Identification is how you excite the system and how you preprocessing the data before acquiring the signals. I would advice you to look into the examples shipping with the toolkit and look into the documentation with the product.

 

If you can't make it work, feel free to post again which results you had and we should be able to help you further.

Barp - Control, Simulation, RTT and HIL - National Instruments
0 Kudos
Message 2 of 5
(2,842 Views)

Hi Barp,

 

The problem I have is that I cant seem to get my response data into the identification VI.  The VI seems only to accept data type Double and my response data is an array of type Complex double.

 

Likewise my stimulus data is also complex double.

 

Pete.

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

System Identification uses frequency response based on "bode" graphs. This means that it has two graphs: one representing the magnitude over the frequency range and the second is the phase against frequency (http://en.wikipedia.org/wiki/Bode_plot)

 

If you see the literature, on complex numbers (http://en.wikipedia.org/wiki/Complex_number), the polar form describes how you can convert Real +/- imaginary to magnitude and phase. Notice that, in general, the magnitude is expressed in log scale and special care is necessary to allow you to use the functions. Fortunately for you, System Identification allow you to use "linear" scale in the conversion. You define this on the "FRF format".

 

Also, notice that the SI Estimate FRF function is only used when you have the time-domain data (input and output over time) and the other functions in the frequency domain Model Estimation palette are used to convert bode responses into a polynomial in the S-domain or Z-domain.

 

Please let me know if you still can't configure the functions.

Barp - Control, Simulation, RTT and HIL - National Instruments
0 Kudos
Message 4 of 5
(2,659 Views)

Sorry for being a little dense on this subject,  but...i'm not getting it at the moment.

 

The stimulus and response data that I have are both in the time domain, and both contain amplitude and phase information. 

 

I have attached an image showing an example of the response data, this one obtained by applying a stimulus equal to a pulse of 95 time steps long with amplitude 0.626 and phase 63 degrees. The system is closed loop PID controlled, with identical loops controlling phase and amplitude of the RF signal.

 

I cant seem to get this data into any of the system identification VI's without it being coerced into a scalar data type.

 

Pete.

 

 

0 Kudos
Message 5 of 5
(2,640 Views)