Republic of the Philippines
BATANGAS STATE UNIVERSITY
The National Engineering University
Alangilan Campus
Golden Country Homes, Alangilan Batangas City, Batangas, Philippines 4200
Tel Nos.: (+63 43) 425-0139 local 2121 / 2221
E-mail Address:[Link]@[Link] | Website Address: [Link]
CHAPTER 4 - POLES, ZEROS, AND SYSTEM RESPONSE
PRE-LABORATORY SIMULATION (MATLAB OFFLINE)
Procedures:
1. Open the script in MATLAB and locate the student_tf_generator function within Part 1.
2. Convert the input array of system poles into denominator polynomial coefficients by
assigning den = poly(p_array);.
3. Convert the input array of system zeros into numerator polynomial coefficients by
assigning num = poly(z_array);.
4. Run the script to validate your function and launch the interactive "Pole-Zero
Architecture & Transfer Function Synthesis" dashboard.
5. Use the buttons in the "Root Placement Controls" panel to dynamically add real or
complex poles and zeros to the system.
6. Observe how adding these roots automatically updates the 2D S-Plane Map, the 3D
S-Domain Surface Magnitude, and the Time-Domain Step Response.
Guide Questions:
1. Based on the "3D S-Domain Surface Magnitude" visualization, how would you describe
the physical shape of the 3D surface at the specific location of a pole compared to the
location of a zero?
2. When you add a "Complex Pole Pair" using the interactive controls, what happens to the
oscillations in the "Time-Domain Step Response" if those poles are placed closer to the
imaginary axis (closer to 0 on the Real Axis)?
Republic of the Philippines
BATANGAS STATE UNIVERSITY
The National Engineering University
Alangilan Campus
Golden Country Homes, Alangilan Batangas City, Batangas, Philippines 4200
Tel Nos.: (+63 43) 425-0139 local 2121 / 2221
E-mail Address:[Link]@[Link] | Website Address: [Link]
LABORATORY SIMULATION (MATLAB ONLINE)
Procedures:
1. Open the script within your MATLAB Online workspace.
2. Review STEP 1 to observe how the zpk() command is used to construct a system model
directly from an array of zeros, an array of poles, and a constant gain, bypassing the need
for expanded polynomial coefficients.
3. Navigate to STEP 2 to examine how complex conjugate pole pairs are mathematically
defined in MATLAB using the j operator (e.g., poles_A = [-3 + 2j, -3 - 2j]). Notice how
the real parts are shifted further left (-3) or closer to the imaginary axis (-0.2).
4. Check STEP 3 to understand the subplot(rows, columns, position) syntax, which allows
the pzmap (s-plane) and step (time domain) graphs to be rendered side-by-side within a
single Figure window.
5. Run the script and compare the generated step responses against their corresponding pole
locations on the s-plane. Modify the imaginary part of the poles in STEP 2 (e.g., change
2j to 5j for poles_A), then re-run the script to observe how vertical movement on the
s-plane alters the system's oscillation frequency.
Guide Questions:
1. In STEP 1, the zeros_base variable is currently defined as an empty array []. If you
needed to add a single zero at 𝑠 =− 4 to the baseline system's mathematical model,
what exact MATLAB array would you assign to the zeros_base variable?
2. Looking at the visualization layout logic in STEP 3, if you wanted to stack the two plots
vertically (one on top of the other) rather than placing them side-by-side, how exactly
would you change the three numerical arguments inside the two subplot() commands?