Help with a function for plotting zeros and poles

• To: mathgroup at smc.vnet.net
• Subject: [mg132437] Help with a function for plotting zeros and poles
• From: "Eduardo M. A. M. Mendes" <emammendes at gmail.com>
• Date: Sat, 15 Mar 2014 03:46:45 -0400 (EDT)
• Delivered-to: l-mathgroup@mail-archive0.wolfram.com
• Delivered-to: l-mathgroup@wolfram.com
• Delivered-to: mathgroup-outx@smc.vnet.net
• Delivered-to: mathgroup-newsendx@smc.vnet.net

```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

```

• Prev by Date: NIntegrate and double integral -- very slow
• Next by Date: Exact Solution to the double well potential problem in mathematica
• Previous by thread: Re: NIntegrate and double integral -- very slow
• Next by thread: Re: Help with a function for plotting zeros and poles