towards pole placement
This commit is contained in:
@@ -9,32 +9,76 @@ function DeltaTauOptimizer()
|
||||
if isempty(mot)
|
||||
mot=identifyFxFyStage(7);
|
||||
end
|
||||
SIM1=[1 1; 1 2; 8 2; 9 2];
|
||||
SIM2=[1 1; 1 2; 8 2; 9 2];
|
||||
if isempty(simData1)
|
||||
%SIM1=[1 1; 1 2; 8 2; 9 2];
|
||||
%SIM2=[1 1; 1 2; 8 2; 9 2];
|
||||
SIM1=[10 0;7 3];
|
||||
SIM1=[10 0];
|
||||
%SIM2=[9 0];
|
||||
if 1 || isempty(simData1)
|
||||
close all;
|
||||
simData1=ExecSim(mot{1},SIM1);
|
||||
end
|
||||
if isempty(simData2)
|
||||
close all;
|
||||
simData2=ExecSim(mot{2},SIM2);
|
||||
end
|
||||
%if isempty(simData2)
|
||||
% close all;
|
||||
% simData2=ExecSim(mot{2},SIM2);
|
||||
%end
|
||||
close all;
|
||||
%test()
|
||||
bodeSim(simData1);
|
||||
bodeSim(simData2);
|
||||
%bodeSim(simData2);
|
||||
end
|
||||
|
||||
function test()
|
||||
global pb mot simData1 simData2;
|
||||
%pb=DeltaTauParam(mot{2},7,0);
|
||||
%pb=DeltaTauParam(mot{2},8,0);
|
||||
pb=DeltaTauParam(mot{2},9,0);
|
||||
%pb.C=[0.04877];
|
||||
%pb.D=[1 -0.9512];
|
||||
%pb.C=[1 -1.3236 6.2472 -11.8555 11.3067 -5.4188 1.0440];
|
||||
%pb.D=[1.0000 -6.6330 17.6945 -24.5314 18.7409 -7.5020 1.2309];
|
||||
global tfs
|
||||
tfz=c2d(tf(tfs),1/5000)
|
||||
h=bodeplot(tfz,tfs);setoptions(h,'FreqUnits','Hz','Grid','on');
|
||||
pb.C=tfz.Numerator{1};
|
||||
pb.D=tfz.Denominator{1};
|
||||
sim('DeltaTauSim');
|
||||
i=6;
|
||||
i=2;
|
||||
%simData2(i).mot_mdl_param=SIM(i,:);
|
||||
simData2(i).pb=pb;
|
||||
simData2(i).desPos_actPos=desPos_actPos;
|
||||
bodeSim(simData2);
|
||||
simData2=bodeSim(simData2);
|
||||
|
||||
opt=tfestOptions;
|
||||
opt.Display='off';
|
||||
% %tfa=tfest(simData2(i).tfEst, 6, 5,opt);
|
||||
tfa=tfest(simData2(i).tfEst, 6, 6,opt);
|
||||
% tfb=1/tfa
|
||||
% tfc=c2d(tfb,1/5000)
|
||||
%
|
||||
% tfs=tf([1],[.001 1])
|
||||
% tfz=c2d(tfs,1/5000)
|
||||
% h=bodeplot(tfs,tfz)
|
||||
% setoptions(h,'FreqUnits','Hz','Grid','on');
|
||||
|
||||
|
||||
%C=num=0 -1.3236 6.2472 -11.8555 11.3067 -5.4188 1.0440
|
||||
%D=den=1.0000 -6.6330 17.6945 -24.5314 18.7409 -7.5020 1.2309
|
||||
% controlSystemDesigner('bode',1,tf(1,1))
|
||||
% controlSystemDesigner( 1/simData2(2).tfEst2)
|
||||
% controlSystemDesigner(tfa)
|
||||
|
||||
%C =
|
||||
% 1035.3 (s+217.8)
|
||||
% -------------------
|
||||
% (s+845.3) (s+266.8)
|
||||
|
||||
% 0.18956 (z-0.9574)
|
||||
% --------------------
|
||||
% (z-0.948) (z-0.8444)
|
||||
|
||||
% 0.1896 z - 0.1815
|
||||
% ----------------------
|
||||
% z^2 - 1.792 z + 0.8006
|
||||
end
|
||||
|
||||
|
||||
@@ -55,7 +99,7 @@ function simData=ExecSim(mot,SIM)
|
||||
end
|
||||
end
|
||||
|
||||
function bodeSim(simData)
|
||||
function simData=bodeSim(simData)
|
||||
fig=figure();
|
||||
ax1=subplot(2,1,1); hold(ax1,'on')
|
||||
ax2=subplot(2,1,2); hold(ax2,'on')
|
||||
@@ -83,6 +127,7 @@ function bodeSim(simData)
|
||||
h=plot(ax1,frq,abs(tfn), 'DisplayName',simData(i).pb.desc);
|
||||
p=unwrap(phase(tfn))/(2*pi)*360;
|
||||
h=plot(ax2,frq,p, 'DisplayName',simData(i).pb.desc);
|
||||
simData(i).tfEst=idfrd(tfn,frq*2*pi,0);
|
||||
end
|
||||
grid(ax1,'on');grid(ax2,'on');
|
||||
set(ax1, 'XScale', 'log');
|
||||
|
||||
Reference in New Issue
Block a user