-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMain.asv
54 lines (48 loc) · 1.38 KB
/
Main.asv
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
clear all
close all
clc
NSUs = 30;
repeats = 5;
for i = 1:length(NSUs)
NSU = NSUs(i);
disp(NSUs(i))
for j = 1:repeats
all(j).result = runOPT(NSU);
% filename = ['Solutions/WithConstraint/NoiseCheck_', num2str(NSUs(i)), 'SUs', num2str(j), '.mat'];
% save(filename, 'result')
end
end
for j = 1:repeats
T = result(end).params.T;
h = T/(result(end).params.NperSU-1);
for i = 1:length(all(1).result)
obj(i,j) = result(i).obj;
K(:,i,j) = result(i).X(end-1:end);
[uperSU, uall,meanxx] = plotresult(result(i), 0);
meanu(:,i,j) = mean(uall,3);
stdu(:,i,j) = std(uall,[],3);
meanx(i,:,j) = meanxx(1,:);
rmsu = rms(uall);
RMS(i,j) = mean(rmsu(:));
end
end
figure
subplot(2,1,1)
meantrajs = mean(meanx,3);
stdtrajs = std(meanx,[],3);
plot([0:h:T], meantrajs([1 4:end],:)', 'linewidth', 1.5)
xlabel('Time [s]')
ylabel('Arm Angle [rad]')
subplot(2,1,2)
meantorque = mean(meanu,3);
stdtorque = mean(stdu,3);
% plotstds = meantorque-stdtorque;
% plotstds(:,end+1:2*end) = meantorque(:,end:-1:1)+stdtorque(:,end:-1:1);
% xstds = [0:h:T T:-h:0];
plot([0:h:T], meantorque(:,1), 'r', 'linewidth', 1.5)
hold on
errorbar([0:h:T], meantorque(:,end),stdtorque(:,end), 'k', 'linewidth', 1.5)
%legend('\sigma = 0', '\sigma = 1', 'FontSize', 12)
xlabel('Time [s]')
ylabel('Input u_0+ K x [Nm]')
xlim([0 10])