Skip to content

duxeph/pole-zero-response-plotter-js

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Pole Zero Response Plotter using HTML, CSS, JavaScript and ChartJS

You can run the HTML (index.html) directly to reach the app by using one of following browsers:

  • Chrome
  • Edge
  • Firefox
  • Safari

Special thanks to https://github.com/chrispahm/chartjs-plugin-dragdata

Last updates

Some additions:

  • Now negative symmetric of the response can be avoided by draw_negative variable and default is updated as do not draw (convertion between draw and do not draw is only available in the source/code part as a boolean).

Note: Since main purpose is to create a filter for real world applications, each point has a conjugate at the opposite part of the chart according to x axis; resultantly, positive and negative parts of the x axis are symmetric to each other in the response chart. By updating default to do not draw, I aimed to remove the negative part of the symmetric response chart since it is nonsense to keep it.

  • Points created/moved that are too close to x axis (with a threshold of 0.25 by default) counts to be as one point WITH y=0 VALUE (only in calculation part, user still sees them as two points).

Bug fix:

  • Case of points to be separated from their conjugates when mouse slides from +y to -y or -y to +y without releasing the point is fixed.
  • Indexings of response chart are corrected (still limited with 15 for laplace(s) plane, 3.14(pi) for discrete laplace(z) plane).

Illustration

To obtain 's response graph, split s^2(s) into s(s) as , and find the poles and the zeros as following:

At the end, you must put the poles and the zeros as following:

General View & Options

s-plane Magnitude Response

s-plane Phase Response

z-plane Magnitude Response

z-plane Phase Response