The second order complex pole function CMPX14 has nine different transfer functions available to the user. Each function has a second order complex pole consisting of the denominator:
![]()
Where,
|
|
Laplace transform variable |
|
|
Damping constant |
|
|
Characteristic frequency [rad/s] |
In order for the above expression to have complex poles, the damping constant z must lie within the range –1.0 < z <1.0. It is normal for the damping constant to be positive.
If the damping constant is negative, this represents negative damping which will result in growing oscillations at the characteristic frequency and is thus unstable. If the damping is positive, then oscillations will die away following a perturbation. On the s-plane, and for a given characteristic frequency w0 , the complex poles lie on a circle and are positioned by the value of the damping constant as shown below:

Pole Locations for a Positively Damped, Second Order System
The nine functions obtainable in CMPX14 are shown in the diagram and table below. They each have different zeros, but the same pole expression. This function is useful in modelling control blocks and in particular as a second order filter. The various filters are as indicated in the table. There are no imposed limits in this function and initialization is not directly accommodated.

|
Function # |
Derived from Output # |
Filter Type |
Transfer Function |
|
|
|
|
|
|
1 |
A |
Low Pass |
|
|
2 |
B |
Band Pass |
|
|
3 |
C |
High Pass |
|
|
4 |
A + B |
High Reject |
|
|
5 |
A + C |
Notch Filter |
|
|
6 |
B + C |
Low Reject |
|
|
7 |
A - B |
High Reject |
|
|
8 |
A - C |
Middle Reject |
|
|
9 |
B - C |
Low Reject |
|
Various transfer functions derived from the CMPX14 function
|
Author(s): |
|
|
REAL FUNCTION CMPX14(ITYPE,G,DR,W,U)
|
Argument |
Type |
Dimension |
Description |
|
|
|
|
|
|
ITYPE |
INTEGER |
1 |
Filter selection switch (see table above):
|
|
G |
REAL |
1 |
Gain factor G |
|
DR |
REAL |
1 |
Damping constant z |
|
W |
REAL |
1 |
Characteristic frequency w0 |
|
U |
REAL |
1 |
Input signal |
This function requires the following storage allocations per call (see #STORAGE Script Directive and STORx Arrays for more details):
#STORAGE STOR:14
|
Address |
Description |
|
|
|
|
NEXC + 1 |
|
|
NEXC + 2 |
|
|
NEXC + 3...14 |
See O2D12 |