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
- Follow-Ups:
- Re: Help with a function for plotting zeros and poles
- From: Bob Hanlon <hanlonr357@gmail.com>
- Re: Help with a function for plotting zeros and poles
- From: Bob Hanlon <hanlonr357@gmail.com>
- Re: Help with a function for plotting zeros and poles