MATLAB Steady-State to Transfer Function Using MATLAB

AI Thread Summary
The discussion centers around using MATLAB to obtain a transfer function for a Controls class, specifically addressing issues faced by a user with no prior MATLAB experience. The user encounters an error when attempting to run their code, which involves defining matrices A, B, C, and D and calling the ss2tf function. The error message indicates a conflict due to naming the .m file "ss2tf," which is also the name of a MATLAB function. The solution provided is to rename the .m file to avoid this conflict, as MATLAB cannot distinguish between the user-defined script and the built-in function. Additionally, it is noted that the issue may not occur in older versions of MATLAB, such as MATLAB 2010, suggesting that compatibility may vary with different software versions.
pags920
Messages
20
Reaction score
0
I am trying to use MATLAB to obtain a transfer function, for my Controls class. I will be honest, I have no experience using MATLAB, but our professor insists on us using it to find the transfer function. MATLAB is not a prerequisite for this class. Before I start attempt to find my transfer function, I wanted to make sure I can run the function first. I am having trouble using it. Below is my code that I have on my .m file.

Code:
A=[0 500; -3.3333 -33.3333]
B=[0; 3.3333]
C=[1 0]
D=[0]

[NUM,DEM]=ss2tf(A,B,C,D,1)

When I run this .m file, I get the following error:

Code:
? Attempt to execute SCRIPT ss2tf as a function.

Error in ==> ss2tf at 6
[NUM,DEM]=ss2tf(A,B,C,D,1)

Can anyone help an inexperienced MATLAB user?
 
Physics news on Phys.org
You can't name your .m file with a name that is reserved for a Matlab function (in this case ss2tf). So rename your .m file something other than ss2tf.m and it should work fine.

Unfortunately Matlab doesn't do any checking or enforcement of this other than giving you a vague error like that. But what is happening is that when it gets to the ss2tf function call in your .m file it is confused as to whether you want to call the .m file again or the Matlab function since they both have the same name.
 
Apparently, this command doesn't work with my version of MATLAB. I have an older version, and I tried this on MATLAB 2010 and it works just fine.
 

Similar threads

Replies
4
Views
1K
Replies
1
Views
2K
Replies
5
Views
2K
Replies
5
Views
2K
Replies
3
Views
2K
Replies
2
Views
2K
Back
Top