Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: Help with a function for plotting zeros and poles
Replies: 0

 Search Thread: Advanced Search

 emammendes@gmail.com Posts: 143 Registered: 8/22/05
Help with a function for plotting zeros and poles
Posted: Mar 15, 2014 3:52 AM
 Plain Text Reply

Hello

Sometime ago I found a couple of functions that are used for plotting the poles and zeros of a transfer function. Here they are:

xyPoints[values_]:=Module[{xy},xy=Flatten[Replace[values,{Complex[x_,y_]:>{x,y},x_?NumericQ:>{x,0}},{3}],1];Cases[xy,{_?NumericQ,_?NumericQ},{2}]
];

zeroPole[tf_]:=Module[{zp,zp0},zp0=Through@{TransferFunctionZeros,TransferFunctionPoles}@tf;
zp=FixedPoint[ReplaceAll[#,{}->{-100}]&,zp0];
xyPoints/@zp];

zeroPole is a modification of the actual plot function (I have only removed the plot command).

Here are two examples of using the functions

tf1=TransferFunctionModel[(3 (13/8+s))/(2 (3/2 (13/8+s)+s (1+s) (2+s) (5+s))),s]
tf2=TransferFunctionModel[(199+344 s)/(16 (s (1+s) (2+s) (5+s)+1/16 (199+344 s))),s]

N@zeroPole[tf1]
{{{-1.625,0.}},{{-0.5,0.},{-0.5,0.},{-5.08114,0.},{-1.91886,0.}}}

N@zeroPole[tf2]
{{{-0.578488,0.}},{{-0.5,0.},{-5.97986,0.},{-0.760068-1.89264 I,0.},{-0.760068+1.89264 I,0.}}}

The functions does what I expected for the first example, but not for the second example (the real and imaginary parts of the complex poles are not dealt with).

Can someone tell me what is wrong? And how to modify xyPoints (Although I understand what the functions does I am not sure what to do)?

Many many thanks

Ed

© The Math Forum at NCTM 1994-2018. All Rights Reserved.