|
|
|
|
%% Plot Bahn mit unterschiedlichen Gewichten
|
|
|
|
|
% W<EFBFBD>hrend eines Breakpoints in BerechneSpline_Rotor ausf<EFBFBD>hren, damit die
|
|
|
|
|
% entsprechend Daten alle da sind.
|
|
|
|
|
|
|
|
|
|
%% Skript f<EFBFBD>r Plotbasics
|
|
|
|
|
basics_plot
|
|
|
|
|
|
|
|
|
|
%% Beginn
|
|
|
|
|
|
|
|
|
|
Bahn = Bahn(1:7);
|
|
|
|
|
|
|
|
|
|
retrFactor = [1 4 0.25 -2];
|
|
|
|
|
|
|
|
|
|
uiter = 0:0.01:1;
|
|
|
|
|
|
|
|
|
|
vek = zeros(5,numel(uiter));
|
|
|
|
|
|
|
|
|
|
for i = 1:numel(retrFactor)
|
|
|
|
|
|
|
|
|
|
Bahn_iter = Bahn;
|
|
|
|
|
|
|
|
|
|
% Berechnung der Stetigkeitsbedingungen
|
|
|
|
|
for iter = 1:numel(Bahn)
|
|
|
|
|
if find(iter==splineTrajectories) %Ist ein Spline
|
|
|
|
|
teilstueckIterator = splineTrajectories(find(iter==splineTrajectories));
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Pw = Bahn_iter(teilstueckIterator).pj;
|
|
|
|
|
|
|
|
|
|
Pw(1:end-1,end-3) = Pw(1:end-1,end-3)./Pw(end,end-3); %Zur<EFBFBD>cknormieren, sollte normalerweise immer 1 sein
|
|
|
|
|
|
|
|
|
|
Pw(end,4:end-3) = ones(1,2)*retrFactor(i);
|
|
|
|
|
Pw(1:end-1,4:end-3) = Pw(1:end-1,4:end-3).*retrFactor(i);
|
|
|
|
|
|
|
|
|
|
Bahn_iter(teilstueckIterator).pj = Pw;
|
|
|
|
|
% Bahn_iter(teilstueckIterator).u = u;
|
|
|
|
|
% Bahn_iter(teilstueckIterator).p = p;
|
|
|
|
|
%
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for ui = 1:numel(uiter)
|
|
|
|
|
vek(:,ui) = berechneAbleitungenAnPunkt(uiter(ui),Bahn_iter(teilstueckIterator).p,Bahn_iter(teilstueckIterator).u,Bahn_iter(teilstueckIterator).pj,0);
|
|
|
|
|
end
|
|
|
|
|
% text(vek(1,1),vek(2,1),vek(3,1),'1');
|
|
|
|
|
% text(vek(1,end),vek(2,end),vek(3,end),'2');
|
|
|
|
|
if i == 1
|
|
|
|
|
lineStyle = '-';
|
|
|
|
|
elseif i == 2
|
|
|
|
|
lineStyle = '--';
|
|
|
|
|
elseif i == 3
|
|
|
|
|
lineStyle = '-.';
|
|
|
|
|
else
|
|
|
|
|
lineStyle = '.';
|
|
|
|
|
end
|
|
|
|
|
plot3(vek(1,:),vek(2,:),vek(3,:),'Color',[0,0,0],'LineStyle',lineStyle);
|
|
|
|
|
hold on
|
|
|
|
|
else
|
|
|
|
|
vek = bspeval(Bahn_iter(iter).p,Bahn_iter(iter).pj,Bahn_iter(iter).u,0:0.01:1);
|
|
|
|
|
plot3(vek(1,:),vek(2,:),vek(3,:),'Color',[0,0,0],'LineStyle','-');
|
|
|
|
|
hold on
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
plot3(Bahn(teilstueckIterator).pj(1,:)./Bahn(teilstueckIterator).pj(end,:),Bahn(teilstueckIterator).pj(2,:)./Bahn(teilstueckIterator).pj(end,:),Bahn(teilstueckIterator).pj(3,:)./Bahn(teilstueckIterator).pj(end,:),'LineStyle','none','Marker','x','Color',[0,0,1]);
|
|
|
|
|
axis equal
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
% fig_Res = figure(1); % figure handle erzeugen
|
|
|
|
|
% fig_Res.Color = [1, 1, 1]; % Hintergrundfarbe wei<EFBFBD>
|
|
|
|
|
% fig_Res.Units = 'centimeters'; % figure Einheit in cm
|
|
|
|
|
% fig_Res.Position(3) = 14.67251; % hier kann man in cm die richtige Breite des Texts in LaTeX angeben ...
|
|
|
|
|
% fig_Res.Position(4) = 16; % und hier die H<EFBFBD>he der figure
|
|
|
|
|
|
|
|
|
|
xlabel('x {[\SI{}{mm}]}')
|
|
|
|
|
ylabel('y {[\SI{}{mm}]}')
|
|
|
|
|
zlabel('z {[\SI{}{mm}]}')
|
|
|
|
|
|
|
|
|
|
a = gca;
|
|
|
|
|
a.View = [-90;0];
|
|
|
|
|
|
|
|
|
|
% set(gca,'ZLim',[148,268])
|
|
|
|
|
set(gca,'ZLim',[-30,-10])
|
|
|
|
|
set(gca,'YLim',[-30,30])
|
|
|
|
|
|
|
|
|
|
%% Tikzn
|
|
|
|
|
|
|
|
|
|
matlab2tikz('filename','optimDerivs_w5.tex',...
|
|
|
|
|
'height', '\figureheight', 'width', '\figurewidth', 'encoding', 'UTF8', 'showInfo', false, 'checkForUpdates', false, ...
|
|
|
|
|
'parseStrings', false, ... % switch off LaTeX parsing by matlab2tikz for titles, axes labels etc. ("greater flexibility", "use straight LaTeX for your labels")
|
|
|
|
|
'floatFormat', '%.4g', ... % limit precision to get smaller .tikz files
|
|
|
|
|
'noSize', false);
|
|
|
|
|
%
|
|
|
|
|
% axis off
|
|
|
|
|
%
|
|
|
|
|
% hold off
|
|
|
|
|
% box off % Box um die figure herum ausblenden
|
|
|
|
|
|
|
|
|
|
% mit legendflex hat man mehr M<EFBFBD>glichkeiten als mit MATLABs eigener
|
|
|
|
|
% legend-Funktion
|
|
|
|
|
% legendflex({'LF', 'UF'}, ...
|
|
|
|
|
% 'box', 'off', ...
|
|
|
|
|
% 'ncol', 1, ...
|
|
|
|
|
% 'nrow', 2, ...
|
|
|
|
|
% 'anchor', [3, 3], ...
|
|
|
|
|
% 'buffer', [-30, -30], ...
|
|
|
|
|
% 'xscale', 0.5, ...
|
|
|
|
|
% 'padding', [0, 0, 20], ...
|
|
|
|
|
% 'Color', [1, 1, 1], ...
|
|
|
|
|
% 'Interpreter', 'latex', ...
|
|
|
|
|
% 'fontsize', 11)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
tightfig; % tightfig entfernt den wei<EFBFBD>en Rand um die figure herum
|
|
|
|
|
% for i = 1:length(ax)
|
|
|
|
|
% % decimal_comma(ax(i), 'XY') % f<EFBFBD>r deutsche Ver<EFBFBD>ffentlichungen kann hiermit der Dezimalpunkt durch ein Dezimal komma ersetzt werden
|
|
|
|
|
% myArrow(ax(i), 'y') % Die Funkion f<EFBFBD>gt je nach zweitem Argument einen Achsenpfeil hinzu
|
|
|
|
|
% end
|
|
|
|
|
|
|
|
|
|
% FileName_Res = './Figures/PathOptim'; % Dateiname f<EFBFBD>r LaTeX-Export definieren
|
|
|
|
|
% Plot2LaTeX(fig_Res, FileName_Res) % Plot2LaTeX erzeugt aus der figure eine SVG-Datei und daraus ein PDF + LaTeX-Datei f<EFBFBD>r den Text
|
|
|
|
|
|
|
|
|
|
|