Skip to content

Commit cb2bc65

Browse files
committed
Final upload
1 parent 2d8186f commit cb2bc65

17 files changed

+2820
-2191
lines changed

DRS_PodPul.msim

1.93 MB
Binary file not shown.

DRS_PodPul_idraulica.msim

1.96 MB
Binary file not shown.

Group1_Presentation.pptx

65 MB
Binary file not shown.

Pod_pull.mw

+1,869
Large diffs are not rendered by default.

Pod_pull_v27.mw

-1,980
This file was deleted.

Pod_push.mw

+808
Large diffs are not rendered by default.

Pods_n_rocker.mw

+84-162
Large diffs are not rendered by default.

inventor/actuator.ipt

147 KB
Binary file not shown.

inventor/assembly.iam

880 KB
Binary file not shown.

inventor/flap.ipt

4.39 MB
Binary file not shown.

inventor/main_plate.ipt

5.19 MB
Binary file not shown.

inventor/pod.ipt

118 KB
Binary file not shown.

lib/Group1-lib.maplet lib/Group1-lib .maplet

+26-21
Original file line numberDiff line numberDiff line change
@@ -44,57 +44,57 @@ draw_mech := proc(sol::{list(`=`),set(`=`)}, data::{list(`=`),set(`=`)}, dof)
4444

4545
end proc:
4646
# Plot position function
47-
plot_position := proc()
47+
plot_position := proc(dd::{list(`=`),set(`=`)})
4848

4949
local A,B:
5050

5151

52-
A := plot(subs(sol_kine, data, theta3(t) = q1_profile, theta1(t) * 180 /Pi), T = 0..3*actuation_time, color = c_set[1],
52+
A := plot(subs(sol_kine, dd, theta3(t) = q1_profile, theta1(t) * 180 /Pi), T = 0..3*actuation_time, color = c_set[1],
5353
title = typeset("Position of ", theta__1(t)),labels=["time [s]","Angle [�]"],size = [800, 500]):
5454

55-
B := plot(subs(sol_kine, data, theta3(t) = q1_profile, s(t)), T = 0..3*actuation_time, color = c_set[2],
55+
B := plot(subs(sol_kine, dd, theta3(t) = q1_profile, s(t)), T = 0..3*actuation_time, color = c_set[2],
5656
title = typeset("Position of", s(t)),labels=[t (s),typeset([m])],size = [800, 500]):
5757

5858
print(plots[display](Array([A, B]))):
5959

6060
end proc:
6161
# Plot velocity function
62-
plot_velocity := proc()
62+
plot_velocity := proc(dd::{list(`=`),set(`=`)})
6363

6464
local A,B:
6565

66-
A := plot(subs(sol_kine, data, theta_base, vel_theta1), T = 0..3*actuation_time, color = c_set[1],
66+
A := plot(subs(sol_kine, dd, theta_base, vel_theta1), T = 0..3*actuation_time, color = c_set[1],
6767
title = typeset("Velocity of ", theta__1(t)),labels=["time [s]", "velocity [rad/s]"],size = [800, 500]):
6868

69-
B := plot(subs(sol_kine, data, theta_base, vel_s), T = 0..3*actuation_time, color = c_set[2],
69+
B := plot(subs(sol_kine, dd, theta_base, vel_s), T = 0..3*actuation_time, color = c_set[2],
7070
title = typeset("Velocity of ", s(t)),labels=["time [s]", "velocity [m/s]"],size = [800, 500]):
7171

7272
print(plots[display](Array([A, B]))):
7373
end proc:
7474
# Plot acceleration function
75-
plot_acceleration := proc()
75+
plot_acceleration := proc(dd::{list(`=`),set(`=`)})
7676

7777
local A,B:
7878

7979

80-
A := plot(subs(sol_kine, data, theta_base, acc_theta1), T = 0..3*actuation_time, color = c_set[1],
80+
A := plot(subs(sol_kine, dd, theta_base, acc_theta1), T = 0..3*actuation_time, color = c_set[1],
8181
title = typeset("Acceleration of ", theta__1(t)),labels = ["time [s]", " acceleration [rad/s^2]"],size = [800, 500]):
8282

83-
B := plot(subs(sol_kine, data, theta_base, acc_s), T = 0..3*actuation_time, color = c_set[2],
83+
B := plot(subs(sol_kine, dd, theta_base, acc_s), T = 0..3*actuation_time, color = c_set[2],
8484
title = typeset("Acceleration of ", s(t)),labels = ["time [s]", "acceleration [m/s^2]"],size = [800, 500]):
8585

8686
print(plots[display](Array([A, B]))):
8787

8888
end proc:
8989
# Plot system configurations
90-
plot_system := proc()
90+
plot_system := proc(dd::{list(`=`),set(`=`)})
9191

9292
local A,B:
9393

9494

95-
A := draw_mech(sol_kine, data, theta3(t)=flap_closed, title = "Configuration Recursive", size = [500,500]):
95+
A := draw_mech(sol_kine, dd, theta3(t)=flap_closed, title = "Configuration Recursive", size = [500,500]):
9696

97-
B := draw_mech(sol_kine, data, theta3(t)=flap_open , title = "Configuration Recursive", size = [500,500]):
97+
B := draw_mech(sol_kine, dd, theta3(t)=flap_open , title = "Configuration Recursive", size = [500,500]):
9898

9999
print(plots[display](Array([A, B])));
100100
end proc:
@@ -160,9 +160,14 @@ plot_hydr := proc()
160160
end proc:
161161
# Dynamic optimization - NE
162162
dynam_opt_ne := proc(aaa,bbb,ccc,ddd,eee)
163-
local param,E,G,NE,NG,r_vars0,dof0,vel_dof0,qD0,vel_qD0,ics0,sol_act_dinam,dae_ics,dae_sys,sol_dae,cost_fun,i,k:
163+
local param,E,G,NE,NG,r_vars0,dof0,vel_dof0,qD0,vel_qD0,ics0,sol_act_dinam,dae_ics,subs_inertia,dae_sys,sol_dae,cost_fun,i,k:
164164

165165
param := [L1 = aaa,LP = bbb,anc = ccc,x1 = ddd,y1 = eee]:
166+
subs_inertia := {m1 = subs(data_dae,sp=0.010,l=0.004,4510*L1*sp*l),
167+
Iz1 = subs(data_dae,l=0.004,sp=0.010,1/12*4510*L1*sp*l*(L1^2+sp^2)),
168+
m2 = subs(data_dae,sp=0.010,l=0.004,4510*LP*sp*l),
169+
Iz2 = subs(data_dae,l=0.004,sp=0.010,1/12*4510*LP*sp*l*(LP^2+sp^2))
170+
}:
166171

167172
#Estimate the initial conditions
168173
dof0 := theta3(t) = flap_closed:
@@ -172,23 +177,23 @@ dynam_opt_ne := proc(aaa,bbb,ccc,ddd,eee)
172177
ics0 := [dof0, vel_dof0, qD0, vel_qD0]:
173178

174179
#Estimate the actuation force
175-
sol_act_dinam := subs(forcesub,gamma(t)=q1_profile_t,sol_kine,theta3(t)=q1_profile_t,data_dae,param,sol_act):
180+
sol_act_dinam := subs(forcesub,gamma(t)=q1_profile_t,sol_kine,theta3(t)=q1_profile_t,data_dae,subs_inertia,param,sol_act):
176181

177182
#Estimate the reaction forces
178183
E, G := GenerateMatrix(subs(forcesub,gamma(t)=theta3(t),eqns), diff(q_vars,t,t) union r_vars):
179-
NE := evalf(subs(subs(forcesub,gamma(t)=theta3(t),sol_act), ics0, data_dae,param, E)):
180-
NG := evalf(subs(subs(forcesub,gamma(t)=theta3(t),sol_act), ics0, data_dae,param, G)):
184+
NE := evalf(subs(subs(forcesub,gamma(t)=theta3(t),sol_act), ics0,subs_inertia, data_dae,param, E)):
185+
NG := evalf(subs(subs(forcesub,gamma(t)=theta3(t),sol_act), ics0,subs_inertia, data_dae,param, G)):
181186
LinearSolve(NE, NG):
182-
r_vars0 := [seq(r_vars[i] = %[-i],i=1..nops(r_vars))]:
187+
r_vars0 := [seq(r_vars[-i] = %[-i],i=1..nops(r_vars))]:
183188

184189
#Assembling the generic DAE
185-
dae_ics := subs(t=0,data_dae,convert(convert(ics0,set) minus {diff(theta1(t),t)=0} ,D) union r_vars0 ):
186-
dae_sys := convert(subs(sol_act_dinam,forcesub,gamma(t)=q1_profile_t,data_dae, ne_eqns) union dae_ics,set):
190+
dae_ics := subs(t=0,subs_inertia,data_dae,convert(convert(ics0,set) minus {diff(theta1(t),t)=0} ,D) union r_vars0 ):
191+
dae_sys := convert(subs(sol_act_dinam,forcesub,gamma(t)=q1_profile_t,subs_inertia,data_dae, ne_eqns) union dae_ics,set):
187192
sol_dae := dsolve(dae_sys,numeric,stiff=true,parameters = [L1,LP,anc,x1,y1]):
188193
sol_dae(parameters = subs(param,[L1,LP,anc,x1,y1])):
189194

190195
#Cost function
191-
cost_fun :=1/W*add(subs(data_dae,param,(delta__s[k]-rhs(sol_dae(k/np*actuation_time)[10]))^2),k=1..np);
196+
cost_fun :=1/W*add(subs(subs_inertia,data_dae,param,(delta__s[k]-rhs(sol_dae(k/np*actuation_time)[10]))^2),k=1..np);
192197
end proc:
193198
# Dynamic optimization - Lagrange
194199
dynam_opt_lagr := proc(aaa,bbb,ccc,ddd,eee,fff)
@@ -218,7 +223,7 @@ dynam_opt_lagr := proc(aaa,bbb,ccc,ddd,eee,fff)
218223
NE := evalf(subs(subs(forcesub,gamma(t)=theta3(t),sol_act), ics0,subs_inertia, data_dae, E)):
219224
NG := evalf(subs(subs(forcesub,gamma(t)=theta3(t),sol_act), ics0,subs_inertia, data_dae, G)):
220225
LinearSolve(NE, NG):
221-
l_vars0 := [seq(l_vars[i] = %[-i],i=1..nops(l_vars))]:
226+
l_vars0 := [seq(l_vars[-i] = %[-i],i=1..nops(l_vars))]:
222227

223228
#Assembling the generic DAE
224229
dae_ics := subs(t=0,subs_inertia,data_dae,convert(convert(ics0,set),D) union l_vars0 ):

0 commit comments

Comments
 (0)