This is a very quick tutorial to show you:
How to generate a custom drive function such as a chirp for example
How to input that in OnScale
Generating a Chirp drive function
To generate quickly a drive function such as chirp, nothing is better than using the scipy signal python module
Here’s a description of the chirp function implemented in Scipy
I like to use Jupyter notebook to work with python and process data easily.
The code is here:
https://github.com/CyprienRusu/Feaforall/blob/master/draw_chirp.ipynb
Here’s the script I defined:
from scipy.signal import chirp
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from scipy.fftpack import ifft
%matplotlib inline
t = np.arange(0, 7e-5, step=2e-7)
f1 = 1e6
t1 = 7e-5
f0 = 2e6
ch = chirp(t,f0,t1,f1)
#This is only for vizualization
chart1 = plt.plot(t,ch)
plt.xlabel('Time t')
plt.ylabel('Chirp(Hz)')
plt.axis([0,7e-5,-1,1])
plt.show()
tch = ifft(ch)
#Also for vizualization
chart1 = plt.plot(t.real,tch.real)
plt.xlabel('Time t')
plt.ylabel('Chirp(Time)')
plt.axis([0,3.5e-5,-0.1,0.1])
plt.show()
Tchirp = pd.DataFrame(tch.real,t.real)
Tchirp = Tchirp[:3.5e-5]
Tchirp.to_csv('chirp.dat',sep=" ",header=False)
Note: You will need to install scipy, matplotlib, numpy and pandas to run that code
Here’s what you will get:
![](https://feaforall.com/wp-content/uploads/2019/11/chirp-function.png)
![](https://feaforall.com/wp-content/uploads/2019/11/chirp-data.png)
You can download that text file here
How to input this user-defined drive function for the electrode in OnScale?
The general way to define an input drive function is to define a text file formatted with 2 columns and a space in between, like the previous chirp function.
If you have your data in 2 Excel Columns, then you can export them in a Formatted Text (Space delimited) text file
![](https://feaforall.com/wp-content/uploads/2019/11/export-excel-data-in-dat.png)
Then change the extension of the text file to “.dat”
The way to import those data in OnScale is then straightforward:
- Create a new drive function
- Choose a “User-Defined” Drive function
- Choose your Space Delimited “.dat” text file containing the data
- Click on Insert
![](https://i0.wp.com/feaforall.com/wp-content/uploads/2019/11/insert-user-defined-drive-function-onscale.png?fit=1024%2C756&ssl=1)
After that, select the drive function (1) and make sure that the Max Frequency (Hz) is defined (2) in the property window
![](https://feaforall.com/wp-content/uploads/2019/11/define-max-frquency.png)
You can then Assign this new user-defined drive function to the electrode of your transducer model in the property window
![](https://i1.wp.com/feaforall.com/wp-content/uploads/2019/11/assign-time-function-electrode.png?fit=1024%2C621&ssl=1)
The tutorial for this model is available here
That’s all! Let me know in the comments if you have some questions.
–Cyprien
![](https://feaforall.com/wp-content/uploads/2017/06/Cyprien_feaforall_head.png)
Leave a Reply