Open Channel Foundation
Not Logged In |  | 
Open Channel Foundation


Quick Application Search:


SOCIT
Get this title!
¤ 
Get SOCIT
¤ 
Monitor new releases


Basic information
¤ 
SOCIT Forum
¤ 
Contributors


Additional resources
¤ 
Brief Guide
¤ 
Reference


Foundation :: System Identification :: SOCIT

Brief Guide

This is a brief user's guide for a beginner to use the System/Observer/Controller Identification Toolbox (SOCIT). System identification is the process of calculating a mathematical representation of a physical system using experimental data. There are two types of experimental data commonly available for system identification. One is the time history from input actuators and output sensors. The other is the Frequency Response Function (FRF) computed from input and output data using the Fast Fourier Transformation (FFT) technique. The methods that use the time history to identify a mathematical model are commonly called the time-domain methods. On the other hand, the methods that use the FRF (complex number) are referred to as the frequency-domain methods.

There are many methods such as the Eigensystem Realization Algorithm (ERA) using the system Markov parameters formed from the pulse response function for system identification. The pulse response may be obtained by applying a pulse with an actuator at the point of interest to the system. In general, the pulse response is obtained by inverting the FRF via FTF, that is the method used most often in the modal testing community. This computational process involves both the frequency-domain as well as the time-domain data. Nevertheless, the pulse response can also be computed directly from the input and output time histories without first computing the FRF and then inverting it. The Observer/Kalman filter Identification (OKID) method is the one using the time-domain approach alone.

There are several approaches available for system identification either in the time domain or the frequency domain. Each approach may involve several parameters and options that must be carefully tuned to fit the problems of interest. For a beginner, it is very difficult to understand the significance of each parameter or option. The objective of this writing is to show how to use some simple function files with minimum number of input parameters. These function files are served as the basis for the user to get acquainted with the toolbox.

Modal Parameter Identification
The first function file is modid.m in the time domain. This function is written for the user who is interested in identifying modal parameters including frequencies, damping ratio, and mode shapes at the sensor points.

[fd,zt,psi,xt]=modid(r,y,u,dt,nm);
The input parameters for this function are:
r :   number of inputs.
y :   N x m output matrix where N = number of data points and m = number of outputs.  
      If the output is the pulse response, the output matrix y becomes an N x mr matrix; 
      the first m columns corresponding to the first input, the second m columns corresponding to 
      the second input, etc.
u :   N x r input matrix where N = number of data points and r = number of inputs. 
      If the output matrix y contains the pulse (real) response, set u to be a scalar value 0. 
      If the output matrix y contains frequency (complex) response data, the matrix u becomes 
      an N x1 column frequency vector.	                                        
Dt:  sampling interval (sec.)
nm:  assumed number of modes to be identified.
The output parameters are:
                                       
Fd:	damped natural frequencies (Hz)
zt :	damping ratio (%)
psi:	rotated mode shapes for best alignment with +/- 90 deg.
xt : 	accuracy indicator matrix (nm x 9) 
	xt(:,1)=cmi :consistent-mode indicator (%) (emac*mpcw)
	xt(:,2)=emac:extended modal amplitude coherence (%) 
	xt(:,3)=mpcw:weighted modal phase collinearity (%) 
	xt(:,4)=mhp :modal history prediction indicator (imp*omp) 
	xt(:,5)=imp :input modal prediction indicator  
	xt(:,6)=omp :output modal predication indicator  (%) 
	xt(:,7)=msv :nomalized mode singular values (%) relative to the maximum one 
	xt(:,8)=mci:modal controllability index (%) relative to the maximum one
	xt(:,9)=moi:modal observability index (%) relative to the maximum one 

The assumed number of modes nm may not be obvious for any user who is not the one performing the task of taking the data for system identification. The rule of thumb is to use a sufficiently large number as an initial guess, say 20 to include some of the computational modes to accommodate the presence of input and output noises. The number may be increased if necessary when more modes are desired. To identify modes in the frequency range of interest, the sampling interval must be properly chosen. The Nyquist frequency (half of the sampling rate, i.e., 1/dt) should be approximately less than 10 times of the lowest frequency to be identified. For example, assume that the lowest frequency is 5 Hz, the recommended sampling rate should be less than 100 Hz. To avoid the aliasing problem, a filter with cut-off frequency at less than the Nyquist frequency should be used to remove the frequencies above the Nyquist frequency. By doing this recommended process, the assumed number modes can be chosen to be the number of modes in the frequency range of interest. In general, the frequency range of interest should be higher than 10% and lower than 75% of Nyquist frequency. Suppose that the sampling rate (Hz) is much larger than the lowest frequency of interest. The assumed number of modes, nm, must chosen sufficiently larger, for example 30, so that the lowest mode can be identified properly.

The output parameters are the system modes including damped natural frequencies, damping ratio and, mode shapes. Nine indicators are provided for the user to judge the accuracy of the identified system modes. Among them, three indicators need to be examined carefully including cmi, mhp, and msv . The modes with higher percentages of cmi and mhp indicate that the predicted modal time history is in good agreement with the real modal time history. Those modes with higher percentage of cmi and mhp than 80% are considered to be good system modes. The indicator msv implies the degree of participation of the corresponding mode in the pulse response. The msv has been normalized relative to the maximum one. It gives the degree of controllability and observability together for each mode. Other indicators are complementary to the three indicators cmi, mhp, and, msv for the users who would like to perform further analysis for the identified modal parameters.

The example file xmodid.m is provided for the user to try out. Similar to modid.m, the second function file is modidfd.m in the frequency domain. This function identifies modal parameters directly from frequency response data without converting to the time domain. This function is particularly good for curve-fitting frequency response data. [fd,zt,psi,xt]=modidfd(r,Gz,f,dt,nm,w) The input parameters for this function are: R : number of inputs Gz : N x mr frequency response data matrix (complex-valued) where N = number of data points and m = number of outputs; the first m columns corresponding to the first input, the second m columns corresponding to the second input, etc. f : N x 1 frequency vector dt : sampling interval (sec.) nm : desired number of modes to be identified w : a scalar (1 >= w > 0) to generate exponential forgetting or a vector chosen weight Gz at each frequency point

The output parameters are

                                    
Fd    :	damped natural frequencies (Hz)
zt     :	damping ratio (%)
psi   :	rotated mode shapes for best alignment with +/- 90 deg.
xt     : 	accuracy indicator matrix (nm x 9) 
	xt(:,1)=cmi :consistent-mode indicator (%) (emac*mpcw)
	xt(:,2)=emac:extended modal amplitude coherence (%) 
	xt(:,3)=mpcw:weighted modal phase collinearity (%) 
	xt(:,4)=mhp :modal history prediction indicator (imp*omp) 
	xt(:,5)=imp :input modal prediction indicator  
	xt(:,6)=omp :output modal predication indicator  (%) 
	xt(:,7)=msv :nomalized mode singular values (%) relative to the maximum one 
	xt(:,8)=mci:modal controllability index (%) relative to the maximum one
	xt(:,9)=moi:modal observability index (%) relative to the maximum one 

All the statements described above for the function modid.m in the time domain also apply to modidfd.m in the frequency domain. The weighting w is important for the case where the resolution of frequency data is not uniformly distributed. For example, the high-frequency response data has better resolution than the low-frequency one for the acceleration measurements. In this case, the weighting may be chosen less than 1, say w=0.998, to help identify the system modes at the low frequency side. The weighting may be tuned to focus on the frequency range of interest.

The example file xmodidfd.m is provided for the user to try out.

Control-Model Identification
The third function file is conid.m. This function is written for the user who is seeking an experimental state-space model including a state matrix, an input matrix, an output matrix, the direct transmission term, and an observer for the purpose of controller designs.
[a,b,c,d,g,x0,xt]=conid(r,y,u,dt,nst)
The input parameters are:
                                                                   
r :	number of inputs. 
y :	N x m output matrix where N = number of data points and m = number of outputs.  If the 
output is the pulse response, the output matrix y becomes an N x mr matrix; the first m 
columns corresponding to the first input, the second m columns corresponding to the second 
input, etc.
u :	N x r input matrix where N = number of data points and r = number of inputs. If the output 
matrix y contains the pulse (real) response, set u to be a scalar value 0. If the output matrix y 
contains frequency (complex) response data, the matrix u becomes an N x1 column 
frequency vector. 
nst: assumed number of states
The output parameters are:
                                      
a :	state matrix (nst x nst)
b :	input matrix (nst x r)
c :	output matrix (m x nst)
d :	direct transmission matrix
g :	observer gain (nst x m); g=[] if stable observer cannot be found for the assumed nst
x0:	initial state
xt: modal parameters and accuracy indicator matrix
xt(:,1) =fd  :damped natural frequencies
	xt(:,2) =zt  :damping ratio (%)
	xt(:,3) =cmi :consistent-mode indicator (%) (emac*mpcw)
xt(:,4) =emac:extended modal amplitude coherence (%) 
	xt(:,5) =mpcw:weighted modal phase collinearity (%) 
	xt(:,6) =mhp :modal history prediction indicator (imp*omp) (%) 
	xt(:,7) =imp :input modal prediction indicator  
	xt(:,8) =omp :output modal predication indicator(%) 
	xt(:,9) =msv :nomalized mode singular values(%) relative to the maximum one 
	xt(:,10)=mci :modal controllability index(%) relative to the maximum one 
	xt(:,11)=moi :modal observability index (%) relative to the maximum one 

The assumed number of states nst may not be easy to choose. In general, the number of states is the number of system eigenvalues (modes) including their complex conjugate. Because of the presence of noise, system states would not be as clean as desired. As a result, the integer nst is initially chosen approximately twice larger than the desired number of states that may exist in the noisy data to accommodate the noise modes. The number of states may be increased if necessary when more system states are desired.

The output of the function includes the state matrix a, the input matrix b, the output matrix c, and the direct transmission matrix d in the discrete-time domain. In addition, a deadbeat observer gain matrix g is computed for the user who may use these system matrices for designing a full- state feedback controller. Similar to the function modid.m, nine indicators are provided for the user to judge the accuracy of each individual identified system mode (i.e., eigenvalues). Nevertheless, the indicator msv for this case may carry more weight than other two indicators cmi and mhp. In addition, the indicators mci and moi may be used to measure the degree of controllability and observability, respectively. There are some cases where unknown periodic disturbances are present in addition to the control inputs. The modes excited by the periodic disturbance may have very high percentage of cmi, mhp, and moi, but with very low percentage of mci. That clearly shows that the mode is excited by the periodic disturbance rather than the control input.

The example file xcondid.m is provided for the user to try out.

After the exercise of these two function files, the user may be able to get deeper system identification analysis by using other function files including okid, okid_w, okid_fq, okid_fqw, srim, and srim_fq. Two user's guides are available for the time-domain SOCIT (84pages) and the frequency-domain SOCIT (30 pages). These user's guides need to be updated. They are somewhat different from the m files included in the newer version of SOCIT. Nevertheless, it help you to start running the m files.


Reference Book: Juang, J.-N., Applied System Identification, Prentice Hall, Inc., Englewood Cliffs, New Jersey 07632, 1994



Open Channel Software runs entirely on Open Source Software. We return value to the Software community in the form of services and original software. Most of our content is currently available as source code, with the copyright owned by the original author, All Rights Reserved. Everything else is Copyright ©2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Open Channel Software.

View our privacy statement.
Contact webmaster at openchannelsoftware dot org with questions.