%%% ISCIE 解説記事「適応制御」%%%

clear all; close all;
set(0, 'DefaultAxesLineWidth', 1);
set(0, 'DefaultLineLineWidth', 2);
set(0, 'defaultAxesFontSize', 12);

%　物理パラメータ
l = 0.2;
M = 0.4;
J = 0.07;
B = 0.7;%テキストではｃ
g = 9.81;

%　ノミナル値．重力は大きく変動するはずが無いのでそれ以外をN倍してみる
N = 0.8;

l_0 = N*l;
M_0 = N*M;
J_0 = N*J;
B_0 = N*B;%テキストではｃ
g_0 = g;


%%　設計パラメータ
lambda = 1;%lambda>0で適宜設計してみてください．
K = 20;%K>0で適宜設計してみてください．
gamma = 60;%gamma>0で適宜設計してみてください．

%%　Simulinkの設定                                                                 
tstart = 0.0;%                                                             
tfinal = 10.0;%                                                      
SimuTime = [tstart,tfinal];%                                               
sim('one_link');%                                                          


%% 回転角度のプロット
figure(1);
plot(t,theta);
xlabel('Time $$t$$ [s]','interpreter','latex');
ylabel('$$\theta(t)$$ [rad]','interpreter','latex');
axis([0 10 -2.0 2.0]);
grid;
print -deps theta.eps % 図の保存

%% 回転角度誤差のプロット
figure(2);
plot(t,e);
xlabel('Time $$t$$ [s]','interpreter','latex');
ylabel('Error $$(t)$$ [rad]','interpreter','latex');
axis([0 10 -5.0e-3 1.0e-3]);
grid;
print -deps e_theta.eps % 図の保存

%% 入力トルクのプロット
figure(3);
plot(t,tau);
xlabel('Time $$t$$ [s]','interpreter','latex'); 
ylabel('$$\tau(t)$$ [Nm]','interpreter','latex');
grid;
print -deps tau.eps % 図の保存