34 lines
1.8 KiB
Matlab
34 lines
1.8 KiB
Matlab
function [pb]=simFxFyStage(mot)
|
|
% !!! first it need to run: [mot1,mot2]=identifyFxFyStage() tobuild a motor object !!!
|
|
%
|
|
%loads the current (11.10.2018) controller settings of the
|
|
%Powerbrick and opens its simulink file
|
|
%the returned variable pb contains varous parameters:
|
|
% Kp,Kvfb,Ki,Kvff,Kaff,MaxInt,mot_num,mot_den,Ts,MaxDac,MaxPosErr,A,B,C,D
|
|
|
|
pb=struct(...
|
|
'Ts', 2E-4, ... % 0.2ms=5kHz
|
|
'MaxDac' ,2011.968, ...
|
|
'MaxPosErr', 10000);
|
|
if mot.id==1
|
|
%!motor_servo(mot=1,ctrl='ServoCtrl',Kp=25,Kvfb=400,Ki=0.02,Kvff=350,Kaff=5000,MaxInt=1000)
|
|
%!motor(mot=1,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')
|
|
pb.Kp=25;pb.Kvfb=400;pb.Ki=0.02;pb.Kvff=350;pb.Kaff=5000;pb.MaxInt=1000;
|
|
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;
|
|
pb.Kp=22;pb.Kvfb=350;pb.Ki=0.02;pb.Kvff=240;pb.Kaff=3500;pb.MaxInt=1000;
|
|
end
|
|
pb.ss_plt=mot.ss_plt; pb.sel={3,[3]};
|
|
%pb.ss_plt=mot.ss_plt0; pb.sel={3,[3]};
|
|
%pb.ss_plt=mot.ss_c1; pb.sel={3,[3]};
|
|
%pb.ss_plt=mot.ss_d1; pb.sel={3,[3]};
|
|
%pb.ss_plt=mot.ss_1; pb.sel={2,[2]};
|
|
%pb.ss_plt=mot.ss_p; pb.sel={2,[2]};
|
|
|
|
%mdlName='stage_closed_loop';
|
|
%open(mdlName)
|
|
%sim(mdlName)
|
|
end
|