www.gusucode.com > robust 案例源码程序 matlab代码 > robust/GetCoefficientValuesfromControlSystemModelExample.m

    %% Get Coefficient Values from Control System Model  
% Extract current coefficient values from a generalized model of a control
% system that depends on a tunable gain surface. 
%
% For this example, create a control system model and extract the initial
% values of its coefficients. Generally, |gainsurfdata| is useful for extracting
% tuned coefficient values after control system tuning with |systune|.   

% Copyright 2015 The MathWorks, Inc.


%% 
% Create an array of plant models in which each plant is sampled at a different
% value of a scheduling parameter, |alpha|. 
alpha = (0:10:100)';
G = zpk(zeros(1,1,11));
for ii = 1:11
	G(:,:,ii) = zpk([],-1+0.01*alpha(ii),1);
end  

%% 
% Create a tunable PI controller with gains that depend the same scheduling
% parameter. 
F1 = alpha;
F2 = alpha.^2;
Kp = gainsurf('Kp',1,F1,F2);
Ki = gainsurf('Ki',0.1,F1,F2);
C = pid(Kp,Ki);  

%% 
% Combine the plant model with the tunable controller to build a closed-loop
% control system model array. 
M = feedback(G*C,1) 

%%
% This array of tunable closed-loop models, |M|, depends on the coefficients
% that parametrize the PI gains in terms of the scheduling variable, |alpha|.  

%% 
% Extract the initial values of the tunable coefficients. 
[Kp0,Kp1,Kp2] = gainsurfdata(M,'Kp');
[Ki0,Ki1,Ki2] = gainsurfdata(M,'Ki'); 

%%
% |M| depends on the gain surfaces that are assigned the names |Kp| and
% |Ki|. Therefore, |gainsurfdata| finds and returns the initial values of
% the coefficients associated with those gain surfaces.  

%% 
% Similarly, use |gainsurfdata| to extract the tuned values of the coefficients
% after using |systune| to tune |M| against a set of design requirements.