www.gusucode.com > control 案例程序 matlab源码代码 > control/PoleandZeroLocationsExample.m
%% Pole and Zero Locations % This example shows how to examine the pole and zero locations of dynamic % systems both graphically using |pzplot| and numerically using |pole| and % |zero|. % % Examining the pole and zero locations can be useful for tasks such as % stability analysis or identifying near-canceling pole-zero pairs for model % simplification. This example compares two closed-loop systems that have % the same plant and different controllers. %% % Create dynamic system models representing the two closed-loop systems. G = zpk([],[-5 -5 -10],100); C1 = pid(2.9,7.1); CL1 = feedback(G*C1,1); C2 = pid(29,7.1); CL2 = feedback(G*C2,1); %% % The controller |C2| has a much higher proportional gain. Otherwise, the % two closed-loop systems |CL1| and |CL2| are the same. %% % Graphically examine the pole and zero locations of |CL1| and |CL2|. pzplot(CL1,CL2) grid %% % |pzplot| plots pole and zero locations on the complex plane as |x| and % |o| marks, respectively. When you provide multiple models, |pzplot| plots % the poles and zeros of each model in a different color. Here, there poles % and zeros of |CL1| are blue, and those of |CL2| are green. %% % The plot shows that all poles of |CL1| are in the left half-plane, and % therefore |CL1| is stable. From the radial grid markings on the plot, % you can read that the damping of the oscillating (complex) poles is approximately % 0.45. The plot also shows that |CL2| contains poles in the right half-plane % and is therefore unstable. %% % Compute numerical values of the pole and zero locations of |CL2|. z = zero(CL2); p = pole(CL2); %% % |zero| and |pole| return column vectors containing the zero and pole locations % of the system.