How can I fix this error?
Ältere Kommentare anzeigen
Hi all!
How can I fix this error?
sys=tf([1 1 1 1],[1 1]);
t=0:0.1:10;
step(sys,t)
??? Error using ==> DynamicSystem.step at 84 Cannot simulate the time response of models with more zeros than poles.
I know that my system is unstable but how can I receive an "unstable" graph for this system on my axes?
7 Kommentare
Arnaud Miege
am 20 Jun. 2011
Why would you want to see something that goes to infinity?
sadel
am 20 Jun. 2011
sadel
am 20 Jun. 2011
Fangjun Jiang
am 20 Jun. 2011
Let me ask you this, this is a simple transfer function, what is the step response if you solve it on paper? In other word, what is the theoretical answer?
sadel
am 20 Jun. 2011
Arnaud Miege
am 20 Jun. 2011
You can't have systems that are not proper (order of numerator -> order of denumerator) in the control system toolbox. Paulo's suggestion with the symbolic math toolbox is about as good as it gets.
Fangjun Jiang
am 20 Jun. 2011
@Arnaud, Can the Symbolic Math Toolbox be used to define a proper transfer function and plot out its step response? I used Maple long time ago and remember it can be done.
Akzeptierte Antwort
Weitere Antworten (4)
Fangjun Jiang
am 20 Jun. 2011
1 Stimme
Your transfer function can be simplified as s^2+1. If your transfer function is 1, then its step response is the step input itself. If your transfer function is s, it means the derivative of the input. The step response would be infinite (impulse) at the time of the step and zero at the rest. If your transfer function is s^2, it means the derivative of the derivative of the input. The step responsive would be impulse and negative impulse at the time of the step and zero at the rest.
sadel
am 20 Jun. 2011
1 Kommentar
Paulo Silva
am 20 Jun. 2011
I never said it was the same graph, I tried to help the best I could, please read what I said in the first answer:
The scales aren't the same like you get with the step function.
In your code just rethrow the error to an errordlg or to the command line when the step function returns errors.
Your example:
sys=tf([1 1 1 1 1 1],[1 1 1 1 1 2]);
t=0:0.01:30;
step(sys,t)
has the same number of zeros and poles, MATLAB just detects if the number of zeros is bigger than poles not if the system is unstable, the stability is related to the position of the poles.
Alberto
am 21 Okt. 2013
0 Stimmen
one way to achieve this is to add two poles very far from 0. For example, you can add (s+400) two times, like this:
sys=((400*400)*((s^3)+(s^2)+s+1))/((s+1)*(s+400)*(s*400));
from control theory, these poles are not dominant and don't affect the step response.
bye
Gauri Shankar Prasad
am 5 Mai 2018
0 Stimmen
k_dc = 5; Tc = 10; u = 2;
s = tf('s'); sys = k_dc/(Tc*s+1)
step(u*sys)
MATLAB shows
Error using DynamicSystem/step (line 95) Too many input arguments.
Error in Untitled3 (line 8) step(u*sys)
What is the problem??
Kategorien
Mehr zu Time-Domain Analysis finden Sie in Hilfe-Center und File Exchange
Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!