Transfer Function Implementation with s and sqrt
Show older comments
I am trying to implement the following transfer function:
H = ((2*(acos(sqrt((Vout*(1+(s*TIA_Cf*TIA_Rf)))/(TIA_Rf*Pin*0.9)))))-(3*pi/2))/((2e-7)*(7.8e-3));
However I am getting the error:
Incorrect number or types of inputs or outputs for function 'sqrt'.
Is it because the sqrt() cannot be always a positive number?
How may I handle a situation like this?
Thank you.
6 Comments
You get the error because transfer function inputs are not accepted by sqrt(). I have recreated the error below.
s = tf('s');
sqrt(s)
As for handling the issue, please provide more information as to what you are trying to do / what is the objective here.
Anastasios
on 4 Dec 2023
Moved: Dyuman Joshi
on 4 Dec 2023
Sam Chak
on 4 Dec 2023
@Anastasios, Can you show the math equation of this code? I want see how it looks like in the true mathematical "Display" mode.
H = ((2*(acos(sqrt((Vout*(1+(s*TIA_Cf*TIA_Rf)))/(TIA_Rf*Pin*0.9)))))-(3*pi/2))/((2e-7)*(7.8e-3));
Anastasios
on 4 Dec 2023
Moved: Sam Chak
on 4 Dec 2023
Anastasios
on 4 Dec 2023
Hi @Anastasios, I'll explain what happened to your code. If you look into the documentation of sqrt(), you will find that the function only accepts inputs of data types such as single, double, table, and timetable. However, 's' is a tf-class data, and thus it threw the "Incorrect number of types of inputs..." error message.
Vout = 300e-9;
TIA_Cf = 1e-12;
TIA_Rf = 1e3;
Pin = 1e-3;
whos Vout TIA_Cf TIA_Rf Pin
s = tf('s');
whos s
%% OP's "transfer function"
H = ((2*(acos(sqrt((Vout*(1+(s*TIA_Cf*TIA_Rf)))/(TIA_Rf*Pin*0.9)))))-(3*pi/2))/((2e-7)*(7.8e-3));

Answers (1)
Hi @Anastasios
The transfer function that describes the mapping from the input (input Current) to the output (output Voltage) appears to be the one shown in the image. However, this may not be truly what you are looking for. What exactly is "a [ng]"?

TIA_Cf = 1e-12;
TIA_Rf = 1e3;
%% Transfer function
Gp = tf(TIA_Rf, [TIA_Cf*TIA_Rf 1])
%% Bode plot
bode(Gp), grid on
3 Comments
Anastasios
on 5 Dec 2023
Edited: Anastasios
on 5 Dec 2023
Dyuman Joshi
on 5 Dec 2023
Edited: Dyuman Joshi
on 5 Dec 2023
If nm can be interpreted as nanometer, then ng could be interpreted as nanogram.
Another interpretation could be n times gravity.
Edit - @Anastasios, aren't the things mentioned inside the square brackets units for physical quantities?
Sam Chak
on 5 Dec 2023
Hi @Anastasios
The expression boxed in green should also be represented in transfer function form. For example, the Laplace transform of the time-domain
is given by
.
is given by
. Could you briefly explain the reason for wanting to find the acceleration?

Categories
Find more on Response Computation and Visualization in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
