Finall Touch, Touch Down To Next
parent
a79bfd23a2
commit
f60517a513
Binary file not shown.
Binary file not shown.
After Width: | Height: | Size: 23 KiB |
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
|
@ -152,6 +152,21 @@ lalu kombinasi persamaan tersebut diperoleh state- space close loop
|
||||||
\subsection{Implementasi}
|
\subsection{Implementasi}
|
||||||
|
|
||||||
Pada seksi implementasi ini akan dibahas mengenai code yang digunakan
|
Pada seksi implementasi ini akan dibahas mengenai code yang digunakan
|
||||||
untuk mensimulasi persamaan yang diciptakan oleh peneliti.
|
untuk menyimulasi persamaan yang diciptakan oleh peneliti.
|
||||||
|
\begin{figure}
|
||||||
|
\centering
|
||||||
|
\includegraphics[scale=.5]{./IMG/SIM_FIG1.png}
|
||||||
|
\includegraphics[scale=.5]{./IMG/SIM_FIG2.png}
|
||||||
|
\caption{Hasil Membuat Ulang Simulasi}
|
||||||
|
\label{sim_fig1}
|
||||||
|
\end{figure}
|
||||||
|
Dapat diperhatikan hasil simulasi yang dibuat ulang oleh penulis pada
|
||||||
|
gambar(\ref{sim_fig1}). Pada gambar tersebut $vref$ diberikan pada robot 1
|
||||||
|
dengan kecepatan vector $[-5;\ 5]$. Akan tetapi ada sebuah error apabila $vref$
|
||||||
|
dengan kecepatan vector $[5;\, 5]$. Ini diakibatkan ada masalah pada rigiditas
|
||||||
|
graph.
|
||||||
|
|
||||||
|
\section{Kesimpulan}
|
||||||
|
Implementasi berhasil. Penelitian mengalami kekurangan apabila vref diberikan
|
||||||
|
pada robot yang berpotensi menghasilkan lipatan pada graph.
|
||||||
\end{document}
|
\end{document}
|
||||||
|
|
|
@ -25,12 +25,20 @@ d = 3;
|
||||||
%% figure(1)
|
%% figure(1)
|
||||||
[R,K] = rigidityMatrixFnc(conRobot);
|
[R,K] = rigidityMatrixFnc(conRobot);
|
||||||
vref = [-5; 5];
|
vref = [-5; 5];
|
||||||
B = [1 0;0 1; 0 0;0 0; 0 0;0 0; 0 0; 0 0; 0 0; 0 0; 0 0; 0 0;];
|
B = [
|
||||||
|
1 0; 0 1;
|
||||||
|
0 0; 0 0;
|
||||||
|
0 0; 0 0;
|
||||||
|
0 0; 0 0;
|
||||||
|
0 0; 0 0;
|
||||||
|
0 0; 0 0;
|
||||||
|
];
|
||||||
kp = 2;
|
kp = 2;
|
||||||
ki = 3;
|
ki = 3;
|
||||||
|
|
||||||
sInit = [corRobot; zeros(size(R(corRobot,K),1),1)];
|
sInit = [corRobot; zeros(size(R(corRobot,K),1),1)];
|
||||||
tspan = linspace(1,30);
|
%% tspan = linspace(1,0.1,30);
|
||||||
|
tspan = 1:0.01:5;
|
||||||
dydt = @(t, y) systm_robot(t, y,d, R,K, kp, ki, B, vref);
|
dydt = @(t, y) systm_robot(t, y,d, R,K, kp, ki, B, vref);
|
||||||
|
|
||||||
[t,y] = ode45(dydt, tspan, sInit);
|
[t,y] = ode45(dydt, tspan, sInit);
|
||||||
|
@ -41,8 +49,9 @@ for i = 1:length(corRobot)-1
|
||||||
endfor
|
endfor
|
||||||
str_tmp = strcat(str_tmp,sprintf("y'(%i,:));",i+1));
|
str_tmp = strcat(str_tmp,sprintf("y'(%i,:));",i+1));
|
||||||
eval(str_tmp);
|
eval(str_tmp);
|
||||||
|
|
||||||
hold on
|
hold on
|
||||||
str_tmp = " plot_rb = @(t) plot( [";
|
str_tmp = "@(t) plot( [";
|
||||||
for i = 1:2:length(corRobot)
|
for i = 1:2:length(corRobot)
|
||||||
str_tmp = strcat( str_tmp, sprintf("y'(%i,t), ",i));
|
str_tmp = strcat( str_tmp, sprintf("y'(%i,t), ",i));
|
||||||
endfor
|
endfor
|
||||||
|
@ -51,37 +60,21 @@ for i = 2:2:length(corRobot)
|
||||||
str_tmp = strcat( str_tmp, sprintf("y'(%i,t), ",i));
|
str_tmp = strcat( str_tmp, sprintf("y'(%i,t), ",i));
|
||||||
endfor
|
endfor
|
||||||
str_tmp = strcat( str_tmp, sprintf("], \"^\");"));
|
str_tmp = strcat( str_tmp, sprintf("], \"^\");"));
|
||||||
eval(str_tmp)
|
plot_rb = eval(str_tmp);
|
||||||
|
|
||||||
xrb = 1:2:length(corRobot);
|
xrb = 1:2:length(corRobot);
|
||||||
yrb = 2:2:length(corRobot);
|
yrb = 2:2:length(corRobot);
|
||||||
t = 1;
|
|
||||||
plot_rb(t);
|
|
||||||
for i = 1:length(conRobot)
|
|
||||||
plot([y'(xrb(conRobot(i, 1)),t), y'(xrb(conRobot(i, 2)),t)],
|
|
||||||
[y'(yrb(conRobot(i,1)),t), y'(yrb(conRobot(i,2)),t)], "r" )
|
|
||||||
endfor
|
|
||||||
t = 20;
|
|
||||||
plot_rb(t);
|
|
||||||
for i = 1:length(conRobot)
|
|
||||||
plot([y'(xrb(conRobot(i, 1)),t), y'(xrb(conRobot(i, 2)),t)],
|
|
||||||
[y'(yrb(conRobot(i,1)),t), y'(yrb(conRobot(i,2)),t)], "r" )
|
|
||||||
endfor
|
|
||||||
|
|
||||||
t = 40;
|
function plot_con (pltRb, yOut, conIn,xm,ym, time)
|
||||||
plot_rb(t);
|
pltRb(time);
|
||||||
for i = 1:length(conRobot)
|
for i = 1:length(conIn)
|
||||||
plot([y'(xrb(conRobot(i, 1)),t), y'(xrb(conRobot(i, 2)),t)],
|
plot([yOut(xm(conIn(i, 1)),time), yOut(xm(conIn(i, 2)),time)],
|
||||||
[y'(yrb(conRobot(i,1)),t), y'(yrb(conRobot(i,2)),t)], "r" )
|
[yOut(ym(conIn(i,1)),time), yOut(ym(conIn(i,2)),time)], "r" )
|
||||||
endfor
|
endfor
|
||||||
|
endfunction
|
||||||
t = 80;
|
|
||||||
plot_rb(t);
|
|
||||||
for i = 1:length(conRobot)
|
|
||||||
plot([y'(xrb(conRobot(i, 1)),t), y'(xrb(conRobot(i, 2)),t)],
|
|
||||||
[y'(yrb(conRobot(i,1)),t), y'(yrb(conRobot(i,2)),t)], "r" )
|
|
||||||
endfor
|
|
||||||
|
|
||||||
|
plot_con(plot_rb, y', conRobot, xrb, yrb, 1);
|
||||||
|
plot_con(plot_rb, y', conRobot, xrb, yrb, length(tspan));
|
||||||
|
|
||||||
%% plot_rb(20);
|
%% plot_rb(20);
|
||||||
%% plot_rb(40);
|
%% plot_rb(40);
|
||||||
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
function fPlot = genPlotFncDotRobot(corRobot)
|
||||||
|
|
||||||
|
str_tmp = " fPlot = @(t) plot( [";
|
||||||
|
for i = 1:2:length(corRobot)
|
||||||
|
str_tmp = strcat( str_tmp, sprintf("y'(%i,t), ",i));
|
||||||
|
endfor
|
||||||
|
str_tmp = strcat( str_tmp, sprintf("], ["));
|
||||||
|
for i = 2:2:length(corRobot)
|
||||||
|
str_tmp = strcat( str_tmp, sprintf("y'(%i,t), ",i));
|
||||||
|
endfor
|
||||||
|
str_tmp = strcat( str_tmp, sprintf("], \"^\");"));
|
||||||
|
eval(str_tmp)
|
||||||
|
|
||||||
|
endfunction
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Loading…
Reference in New Issue