LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Cd Linear Simulation - Exponential Matrix Overflow

Hi everybody

 

i try to use the "CD linear simulation.vi" to implement two transfer function to "modify" a signal; the transfer funciton model are in polynomial form with a numerator and a denominator as usual. Sometimes when i make my .vi run appear a message error like "Exponential Matrix Overflow" and i need to stop my .vi. It usually appears when the transfer function denominator is of the second, first or third order, but if i build my trasfer function with two vector (one for the numerator and one for the denominator) i have no problem even if the den. and the num. are of the 8 order and have a lot of significant number. So.. do you have an idea about what the error message is refer to?? Have anyone the same problem? I try to understand but i still have the problem..

Advice are welcome..

 

Thank You

Nigeltorque
0 Kudos
Message 1 of 7
(3,580 Views)

Nigeltorque

 

I have being working with this function for a while and your problem is unsual. The Exponential Matrix Overflow would happen because in Linear Simulation, we discretize the model that you use according to the sampling time of your system (if you are using the array version, it is the 'Delta t" input; if you are using the Waveform datatype, we use the dT on the waveform).

 

If you try a sampling time that it is too small for that, then you could be running into this problem. To avoid this, you can just resample the waveform and use a larger sampling time.

 

If you can post your code, it would be easier to help.

Barp - Control, Simulation, RTT and HIL - National Instruments
0 Kudos
Message 2 of 7
(3,571 Views)

Thank you for answering Barp, on monday i will be in laboratory so i hope to solve my problem this days..

 

As you can see in the first .vi i attached, i take two signal (the input and the output of my DUT) and i extract Beta parameters that i use to model the non linearity of my DUT (the matrix rango have to be at the max value that is 30 in this case). The first example is very easy: the signals last two second and are generated at 50Khz. For my project i have to "modify", to "filter" the output signal with two Transfer Function that i previously extract with  labview: so i decide to use the "CD linear simulation.vi" to implement the transfer function (i hope this is correct) because i obtein them like a ratio between a numerator and a denominator. In the second .vi i attached i just add the implementation of the two transfer function introducing the CD Linear Simulation.vi.

In this exemple i just write the transfer function, but if i try to obtein them from another .vi i obtein the Exponential matrix Error when the first TF have a denominator of an order grater then 1! And this is strange because if i wrote the transfer function directly i have no error even if the denominator of my TF is of the N-order. 

Moreover if i run the .vi filtering the signal i have to chang the value of tau, and start position if not i have an error, and the waveform graph becomes something really strange.. 

 

I try to understand why, but i have no idea right now. If you could check my .vi  and see what's wrong it will be really apprecciate.

 

Thank you very much

 

Nigeltorque

Nigeltorque
Download All
0 Kudos
Message 3 of 7
(3,561 Views)

Nigeltorque

 

I looked at your code. One think that I noticed was that you tried to go from DDT (the blue wire from Simulate Signal) to our CD Linear Simulation function using 2D arrays (which is one of the options). Actually, in doing this way, you have also extract the dT from waveform and be able to correctly obtain the results. To avoid this complication, I would suggest to convert you DDT into waveform directly, like it is shown in here:

From DDT to CD Linear SIm.png

In doing this datatype, we internally obtain the dT and we try to simulation with the continuous filter parameters above. However, the response is not able to setup by the time your try to simulate (2 s) with the filter you have (which the first one have a time constant that is about the same value). So, I am not sure if that is what you want to acomplish with this setup. If you want want to move the noise from a digital signal, then you have to work with a digital filter.

 

Does it make sense? 

 

 

 

Barp - Control, Simulation, RTT and HIL - National Instruments
0 Kudos
Message 4 of 7
(3,549 Views)

Bart

 

thank you for your replay. I make the change you suggest, tomorrow i will be in laboratory and i will see if it bring good result.

I decide to post my whole project in this post: as you can see it's quit simple, it rapresent a way to study the different effect that you can find when analise a DUT the linear effects and the non linear one according to this pic (in the attachement file you can see three different sequences: the first and the second are used to obtein two transfer functions, the third one is used to implement the two transfer functions)

non linear.jpg

So.. i use the "cd linear simulation" to filter the Si(t) signal with the Transfer Functions that describe the linear block of the system and the non linear memoryless part of the system obteining the y(d)(t) signal that is what i need! The two transfer functions in the exemple you see in the post above it's just with random number, but in according with what you say about the time response of the  filter, do you think it's better to use a filter instead of the "CD linear simulation.vi"?? Maybe in the "Filter Design Toolkit" there is an option to creat a filter from a transfer function.. i will look for it!

Hope i was clear on what i have to do..

 

Thank You

 

Nigeltorque

Nigeltorque
0 Kudos
Message 5 of 7
(3,532 Views)

Ehy Bart.. 

 

i use the cd linear simulation with the TF (waveform) istance and it works; but al least i need just 200 sample and i make an interplation, so at least, in order to avoid the problem about the time constant,  i used the digital filter module particualry the "get filter from transfer function.vi". Here a picture:

 

filter.jpg

 

what do you think about this solution??

 

Nigeltroque

Nigeltorque
0 Kudos
Message 6 of 7
(3,517 Views)

Ehy Bart.. 

 

i use the cd linear simulation with the TF (waveform) istance and it works; but al least i need just 200 sample and i make an interplation, so at least, in order to avoid the problem about the time constant,  i used the digital filter module particualry the "get filter from transfer function.vi". Here a picture:

 

filter.jpg

 

what do you think about this solution??

 

Nigeltroque

Nigeltorque
0 Kudos
Message 7 of 7
(3,517 Views)