From 7e867b93162762d2ea2214b1d84d1bbcb436bd93 Mon Sep 17 00:00:00 2001 From: Thierry Zamofing Date: Tue, 13 Nov 2018 15:29:20 +0100 Subject: [PATCH] better observer --- matlab/Readme.md | 25 +++++++++++++++++++++- matlab/StateSpaceControlDesign.m | 35 +++++++++++++++++++++++++------ matlab/observer.slx | Bin 25674 -> 26312 bytes matlab/simFxFyStage.m | 6 ++++-- matlab/stage_closed_loop.slx | Bin 35992 -> 36244 bytes matlab/testObserver.m | 2 +- matlab/testObserverSim.slx | Bin 23926 -> 26097 bytes 7 files changed, 58 insertions(+), 10 deletions(-) diff --git a/matlab/Readme.md b/matlab/Readme.md index c4f23e2..de41318 100644 --- a/matlab/Readme.md +++ b/matlab/Readme.md @@ -3,7 +3,7 @@ Matlab Simulink start ``` [gfa-lc6-64 ~] [-bash INSTBASE=/prod]$ -cd /afs/psi.ch/user/z/zamofing_t/ESB-MX/ +cd ~/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/matlab module load matlab/2018a matlab& or start directly: /afs/psi.ch/sys/psi.x86_64_slp6/Programming/matlab/2018a/bin/matlab& @@ -31,6 +31,29 @@ close all; [pb]=simFxFyStage(mot2); [ssc]=StateSpaceControlDesign(mot2); +Very good trajectory-filter motor2: +f=268;w0=f*2*pi; +num1=[1 20 w0^2]; +den1=[1 500 w0^2]; +bode(numV,denV) + + +f=140;w0=f*2*pi; +num2=[1 300 w0^2]; +den2=[1 100 w0^2]; +bode(numV,denV) + + +f=62;w0=f*2*pi; +num3=[1 40 w0^2]; +den3=[1 20 w0^2]; +bode(numV,denV) + + +numV=conv(num1,num2) +denV=conv(den1,den2) +%numV=conv(conv(num1,num2),num3) +%denV=conv(conv(den1,den2),den3) ``` diff --git a/matlab/StateSpaceControlDesign.m b/matlab/StateSpaceControlDesign.m index 26575cf..28b73cd 100644 --- a/matlab/StateSpaceControlDesign.m +++ b/matlab/StateSpaceControlDesign.m @@ -16,7 +16,7 @@ function [ssc]=StateSpaceControlDesign(mot) % % https://www.youtube.com/watch?v=Lax3etc837U - ssPlt=mot.ssMdl;%ssPlt; %real plant (model of real plant) + ssPlt=mot.ssPlt;%ssPlt; %real plant (model of real plant) ssPlt.Name='open loop plant'; ssMdl=mot.ssMdl;%ssMdl; %simplified model (observable,controlable) for observer ssMdl.Name='open loop model'; @@ -63,7 +63,7 @@ function [ssc]=StateSpaceControlDesign(mot) p1=-6300+280i; p2=-6200+150i; P=[p1 p1' p2 p2']; - P=[-4000 -4100 -1500+10j -1500-10j]; + P=[-4100 -4000 -1500+10j -1500-10j]; else p1=-3300+2800i; p2=-2700+500i; @@ -80,6 +80,7 @@ function [ssc]=StateSpaceControlDesign(mot) p1=-6300+2800i; p2=-6200+1500i; P=[p1 p1' p2 p2']; + P=[-2500 -2800 -1500+10j -1500-10j]; else p1=-3300+2800i; p2=-1900+130i; @@ -171,14 +172,16 @@ function [ssc]=StateSpaceControlDesign(mot) ss_oz = c2d(ss_o,Ts); [Aoz,Boz,Coz,Doz]=ssdata(ss_oz); mdlName='observer'; - open(mdlName); - - + %open(mdlName); + %discrete prefilter + prefiltz=c2d(mot.prefilt,Ts); + numVz=prefiltz.Numerator{1}; + denVz=prefiltz.Denominator{1}; %state space controller ssc=struct(); - for k=["Ts","At","Bt","Ct","Dt","Atz","Btz","Ctz","Dtz","Ap","Bp","Cp","Dp","Am","Bm","Cm","Dm","Ao","Bo","Co","Do","Apz","Bpz","Cpz","Dpz","Aoz","Boz","Coz","Doz","V","K","L","ss_cl","ss_o","ss_oz","numV","denV"] + for k=["Ts","At","Bt","Ct","Dt","Atz","Btz","Ctz","Dtz","Ap","Bp","Cp","Dp","Am","Bm","Cm","Dm","Ao","Bo","Co","Do","Apz","Bpz","Cpz","Dpz","Aoz","Boz","Coz","Doz","V","K","L","ss_cl","ss_o","ss_oz","numV","denV","numVz","denVz"] ssc=setfield(ssc,k,eval(k)); end save(sprintf('/tmp/ssc%d.mat',mot.id),'-struct','ssc'); @@ -187,6 +190,26 @@ end %code snipplets from an example on youtube (see reference at top) function SCRATCH() +%import numpy as np +%fh=np.load('mode1.npz') +%import scipy.io +%scipy.io.savemat('mode1.mat',fh,do_compression=True) + +%matlab: + load('mode1.mat'); + plot(pts(:,1),pts(:,2),'.');hold on; + plot(rec(:,5),rec(:,6),'-');%despos + plot(rec(:,2),rec(:,3),'-');%actPos + + %sig.time = [0 1 1 5 5 8 8 10]; + %sig.signals.values = [0 0 2 2 2 3 3 3]'; + %sig.signals.dimensions = 1; + sig.time=0:2E-4:(length(rec)-1)*2E-4; + sig.signals.values=rec(:,5); + sig.signals.dimensions = 1; + + sum(desPos_actPos.Data(:,1)-desPos_actPos.Data(:,2)) + A = [ 0 1 0 980 0 -2.8 0 0 -100 ]; diff --git a/matlab/observer.slx b/matlab/observer.slx index 974f9b37030c9886e462fcbaedd02189a11222e0..a28f64ed9de1b3fbd960b43960fd10a05ffcfb2e 100644 GIT binary patch delta 14034 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 WK^>;b5FSP#WHT-pd*lDp$o~V7VJR#C delta 13364 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 diff --git a/matlab/simFxFyStage.m b/matlab/simFxFyStage.m index 72e0652..f268b5c 100644 --- a/matlab/simFxFyStage.m +++ b/matlab/simFxFyStage.m @@ -18,13 +18,14 @@ function [pb]=simFxFyStage(mot) else %!motor_servo(mot=2,ctrl='ServoCtrl',Kp=22,Kvfb=350,Ki=0.02,Kvff=240,Kaff=1500,MaxInt=1000) %!motor(mot=2,dirCur=0,contCur=800,peakCur=2400,timeAtPeak=1,IiGain=5,IpfGain=8,IpbGain=8,JogSpeed=10.,numPhase=3,invDir=True,servo=None,PhasePosSf=1./81250,PhaseFindingDac=100,PhaseFindingTime=50,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=200,WarnFeLimit=100,InPosBand=2,homing='enc-index') - Kp=22;Kvfb=350;Ki=0.02;Kvff=240;Kaff=1500;MaxInt=1000; + %Kp=22;Kvfb=350;Ki=0.02;Kvff=240;Kaff=1500;MaxInt=1000; + Kp=22;Kvfb=350;Ki=0.02;Kvff=240;Kaff=3500;MaxInt=1000; mot_num=mot.tf_mdl.Numerator; mot_den=mot.tf_mdl.Denominator; end mdlName='stage_closed_loop'; - open(mdlName) + %open(mdlName) %ServoDeltaTau_z(motid) [A,B,C,D]=tf2ss(mot_num,mot_den); @@ -32,4 +33,5 @@ function [pb]=simFxFyStage(mot) pb=struct(); for k=["Kp","Kvfb","Ki","Kvff","Kaff","MaxInt","mot_num","mot_den","Ts","MaxDac","MaxPosErr","A","B","C","D"] pb=setfield(pb,k,eval(k)); + end end diff --git a/matlab/stage_closed_loop.slx b/matlab/stage_closed_loop.slx index 6afde47fbe978e22d8a71e3bc94af0c9dd702b80..240023de19fd50092f907690145b5744bd74655f 100644 GIT binary patch delta 16003 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 diff --git a/matlab/testObserver.m b/matlab/testObserver.m index ce963dd..c479342 100644 --- a/matlab/testObserver.m +++ b/matlab/testObserver.m @@ -104,7 +104,7 @@ function [ssc]=testObserver(mot) p1=-63+2.80i; p2=-62+1.50i; P=[p1 p1' p2 p2']; - P=[-4000 -4100 -500+10j -500-10j]; + P=[-4000+100j -4000-100j -500+10j -500-10j]; K = place(A,B,P); Ts=1/5000 t = 0:Ts:2; diff --git a/matlab/testObserverSim.slx b/matlab/testObserverSim.slx index 72b479a6dda1157aa582e73ab557b42867cd5865..d719af720f62665bf973f2af2d49285bfc16d218 100644 GIT binary patch delta 12642 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 delta 10437 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