[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Feedback for octave
From: |
Doug Stewart |
Subject: |
Re: Feedback for octave |
Date: |
Mon, 05 Mar 2007 17:14:29 -0500 |
User-agent: |
Thunderbird 1.5.0.10 (Windows/20070221) |
Andrei Gutierrez wrote:
I have a problem to define the arguments for the feedback for control.
for example:
num=1;
den=[1 10 1];
feedback(tf(num,den),tf(1,1))
It is OK, but if My H(s) is not 1, for example H(s) = s + 1 ...
numh=[1 1];
denh=1;
feedback(tf(num,den),tf(numh,denh))
Gives me the error that the zeros are more than the poles, but in the
feedback its common to have a numerator like this.
Any idea?-.
Thank you.
_______________________________________________
Help-octave mailing list
address@hidden
https://www.cae.wisc.edu/mailman/listinfo/help-octave
You can get around this problem by adding a pole out at a "high"
frequency so that its influence on the system will be minimal.
So try this
num = 1
den=[1 10 1]
numh=[1 1]
denh=1
%%now make a pole at 100
%%with a gain of 1
np=100
dp=[1 100]
%% now make H as:
nh=conv(numh,np)
dh=conv(1,dp)
sys1=feedback(tf2sys(num,den),tf2sys(nh,dh));
this makes a pole and a zero at about -100 and they cancel each other out.
and your step response and and bode will be OK in the region that you
are concerned about.
the zero is at -100
the pole of the closed loop using this method are:
-98.8865
-10.9285
-0.1851
the theoretical poles are
-10.8151
-0.1849
If you put the added pole out farther then it even has less effect.
Doug Stewart