Design the state-feedback gain K of u=-Kx by pole placement for a 2nd-order single-input system ẋ=Ax+Bu. Change the system matrix A and the desired closed-loop poles to see the required gains k1 and k2, the open-loop poles and the closed-loop response update in real time, and tune the response exactly the way you want it.
Parameters
Entries of the system matrix A. A=[[a11,a12],[a21,a22]] sets the free motion of the uncontrolled plant. The input vector is fixed at B=[0,1].
a11 (A row 1, col 1)
a12 (A row 1, col 2)
a21 (A row 2, col 1)
a22 (A row 2, col 2)
Desired closed-loop poles. The more negative they are, the faster the response. State feedback relocates the poles here.
Desired closed-loop pole 1 p1
Desired closed-loop pole 2 p2
Results
—
Feedback gain k1
—
Feedback gain k2
—
Open-loop pole 1 (real part)
—
Open-loop pole 2 (real part)
—
Closed-loop poles (design)
—
Stability verdict
—
s-plane — pole relocation
On the complex s-plane, open-loop poles are shown as × marks and the desired closed-loop poles as ○ marks. The green-shaded left half-plane is the stable region. Arrows show the relocation produced by state feedback.
Step response — open loop vs closed loop
Feedback gains k1 and k2
Theory & Key Formulas
$$u=-Kx,\qquad \dot x=(A-BK)x$$
Applying state feedback u=-Kx turns the dynamics into a closed-loop system governed by A-BK. K=[k1,k2] are the two gains to be designed.
Explicit solution for the single-input 2nd-order system with B=[0,1]. Pole placement requires the pair (A,B) to be controllable (a12≠0).
What is Pole Placement?
🙋
Student: Pole placement came up in my control class — in plain terms, what kind of design method is it?
🎓
Professor: In one sentence, it is a method that "relocates the poles of the system to wherever the designer wants them". The speed and oscillation of a system's response are set almost entirely by the roots of the characteristic equation — the poles. So you first translate a requirement like "respond faster, with better damping" into a target of "I want the poles here", then solve backward for the feedback gain K that produces those poles. This tool computes that K for a 2nd-order system and shows it to you.
🙋
Student: "Relocating the poles" — what do I actually adjust? On the left there are sliders for A and for the desired poles.
🎓
Professor: You use state feedback u=-Kx. You measure the state x, multiply it by K, and feed that back as the input. The dynamics then change from the original A to A-BK — you are remodelling the "internals" of the system with the input. With the defaults, the desired poles p1, p2 are -3 and -4, so K=[10, 6.5] is computed to make the poles of A-BK exactly -3 and -4. Look at k1 and k2 in the results card.
🙋
Student: How are k1 and k2 determined? The values just appear like magic.
🎓
Professor: Not magic — coefficient comparison. The characteristic polynomial of A-BK works out to s² − (a11+a22−k2)s + (…). The polynomial built from the desired poles is s² − (p1+p2)s + p1p2. Set those two equal term by term in s and you get k2 and k1 as a system of equations. For a 2nd-order system it is simple enough to solve by hand: k2 = a11+a22−(p1+p2), and k1 ends up dividing by a12. Think of it as the smallest version of the Ackermann formula.
🙋
Student: Dividing by a12 — so if a12 is zero that's a problem, right? When I set a12 to 0 it says "not placeable".
🎓
Professor: That is the heart of it. When a12=0 the system becomes uncontrollable. The input B=[0,1] directly pushes only state x2, but with a12=0 the motion of x2 never propagates into x1. So the input never reaches the x1 mode at all. The pole of that mode cannot be moved by any choice of K, so pole placement breaks down. That is why you must always check controllability before pole placement. If the system is controllable, the poles can be placed anywhere in the complex plane.
🙋
Student: I see. So if it's controllable, can I just place the poles way out left to make it super fast — the ultimate control system?
🎓
Professor: I understand the temptation, but that is a trap. The further left you place the poles, the faster the response — but the feedback gain K grows in proportion. A large K makes the control input u spike, saturating motors or valves, and amplifies sensor noise until the system shakes. In practice you aim for a damping ratio of about 0.7 and back-calculate a "just right" speed from settling-time and overshoot specs. Move p1 and p2 in the step-response chart below and you will see how it thrashes when pushed too fast. Pole placement is not "fastest wins" — it is "place them exactly on target".
Frequently Asked Questions
Pole placement is a method that chooses the state-feedback gain K in u=-Kx so that the poles (eigenvalues) of the closed-loop system A-BK land exactly at locations the designer specifies. Because pole locations set the speed, damping and stability of the response, the design flow is to translate a response specification into a target pole location and then solve backward for K. As long as the plant is controllable, the poles can be placed anywhere in the complex plane.
Match the characteristic polynomial det(sI-(A-BK)) of the closed-loop matrix A-BK term by term against the polynomial (s-p1)(s-p2)=s²-(p1+p2)s+p1p2 built from the desired poles p1 and p2. For the 2nd-order system in this tool, that coefficient matching gives k2=a11+a22-(p1+p2) and k1=(p1p2-a11a22+a11k2+a12a21)/a12. This is the smallest example of what is known as the Ackermann formula or coefficient-comparison method.
Arbitrary pole placement is guaranteed only when the pair (A,B) is controllable. If an uncontrollable mode exists, its pole cannot be moved by any choice of K. In this tool's formula, when a12 is near zero the denominator of k1 becomes zero and placement fails. That happens because the input u then reaches only part of the state and the mode in the other direction becomes uncontrollable.
If the real part of every closed-loop pole is negative the system is stable, and the more negative it is the faster the response. However, the further left you place the poles, the larger the feedback gain K becomes, which can saturate the actuator and amplify measurement noise. In practice keep the response only as fast as needed: aim for a damping ratio around 0.7 and back-calculate the poles from settling-time and overshoot specs. Faster is not automatically better.
Real-World Applications
Stabilizing an inverted pendulum on a cart: The inverted pendulum, a classic of control engineering, is an unstable system that falls over if left alone. Its states are cart position, cart velocity, pendulum angle and angular velocity, and one open-loop pole sits in the right half-plane (unstable). Designing K by pole placement so that every pole moves into the left half-plane lets you keep the pendulum upright using only the force on the cart. The 2nd-order system in this tool is a minimal way to experience that "relocate an unstable pole into the stable region" operation.
Servo motors and positioning stages: In the stage positioning of machine tools and semiconductor equipment, how fast and how cleanly the stage tracks a command directly drives productivity. Response specs such as settling time and overshoot are translated into a damping ratio and natural frequency, the closed-loop poles that meet them are chosen, and K is computed. Pole placement is easy to use in the field because it maps the required specification straight onto the gains.
Attitude control of drones and aircraft: The attitude dynamics of a multicopter has several states and, depending on the airframe, can be oscillatory or unstable in open loop. After confirming controllability for each axis, state feedback is designed by pole placement or LQR to make the roll, pitch and yaw responses fast and well damped. Gains are tuned so the poles are not pushed too far, to avoid oversensitivity to wind disturbances.
A starting point for modern control and teaching: Pole placement is the standard topic for learning the idea of state feedback before LQR and observer design. Field toolchains include pole-placement functions as standard — MATLAB's place / acker, Python python-control's place. Observer (estimator) pole design is simply the same coefficient matching applied to the dual system.
Common Misconceptions and Pitfalls
The most common mistake is assuming pole placement always works regardless of controllability. Arbitrary pole placement is guaranteed only when the pair (A,B) is controllable. If an uncontrollable mode is present, its pole cannot be moved by K at all. If that mode happens to be stable the harm is small (the system is stabilizable), but if an uncontrollable mode is unstable, state feedback can never stabilize it. Setting a12 to 0 in this tool makes placement fail precisely to reproduce that uncontrollable situation. Always check controllability before doing pole placement.
Next is the misconception that the further left you place the closed-loop poles, the better the control system. Moving the poles left does make the response faster, but the feedback gain K grows in proportion. A large gain produces an excessive control input u for even a small state error, saturating the actuator and pushing the system away from the designed linear behaviour. Sensor measurement noise is amplified by a factor of K, making the input thrash. "Speed" trades off against "input magnitude and noise sensitivity"; place the poles at the gentlest location that still meets the spec.
Finally, do not think pole placement alone completes a control system. Pole placement assumes the full state x is measurable. In practice you often cannot measure every state directly, and then you pair it with an observer (state estimator). Pole placement can shape the "form" of the response, but eliminating steady-state error with integral action, and robustness to disturbances and model errors, must be handled separately. Pole placement is a powerful starting point, but on real hardware it becomes a usable control system only when combined with an observer, an integrator and a robustness study.
How to Use
Enter the state-space matrix A coefficients (a11, a12, a21, a22) and B input vector to define your 2×2 plant dynamics ẋ=Ax+Bu.
Specify desired closed-loop pole locations (real parts) by adjusting the sliders; the simulator computes the required state-feedback gain K=[k1 k2] using Ackermann's formula.
Observe the open-loop poles, closed-loop design poles, and stability verdict; verify that K achieves pole placement and stabilizes unstable or slowly-damped systems.
Worked Example
Aircraft pitch-rate control: A=[0 1; -5 -0.5], B=[0; 1]. Open-loop poles at s≈-0.25±2.24j (poorly damped). Set design poles to s=-2 and s=-3 (overdamped response). Simulator returns K=[11 5.5], yielding closed-loop characteristic equation s²+5.5s+11=(s+2)(s+3). Verify: u=-11x₁-5.5x₂ stabilizes pitch with 0.4 s settling time versus 8 s open-loop.
Practical Notes
Choose closed-loop poles 3–5× faster than desired bandwidth; for a 1 Hz natural frequency requirement (ωₙ≈6.3 rad/s), place poles near s=-10 to s=-20 to account for actuator lag and sensor noise filtering.
High-gain feedback (large |k1| or |k2|) amplifies measurement noise and requires fast, power-intensive actuators; balance speed against practical control authority and cost in industrial servo drives or robotics.
For uncontrollable systems (rank deficiency in [B AB]), the simulator flags infeasibility; verify full rank and that you cannot place poles at unobservable modes if implementing output feedback instead.