APPENDICE 3
Alleghiamo in questa sezione lo schema a blocchi Simulink dettagliato del Sistema di
Controllo ed i programmi che generano i riferimenti denominati “Suola 1” e “Suola 2”.
Schema a blocchi Simulink dettagliato del Sistema di Controllo
Fig. III.3 –Blocco “ Controllore Cinematico”
Fig. III.5 –Blocco “ Controllore”
Programma Riferimento Suola 1
function Q = suola1(u) i = u(1); x = u(2); y = u(3); t = u(4);% Riferimenti per il taglio % % Suola destra D %
% Passaggio tra suola destra e suola sinistra P % % Suola sinistra S % Dx = [0.020 0.0250 0.030 0.035 0.0400 0.045 0.050 0.055 0.0600 0.065 0.070 0.075 0.0800 0.085 0.090 0.095 0.1000 0.105 0.110 0.1150 0.120 0.125 0.130 0.135 0.1400 0.145 0.1500 0.1550 0.160 0.1650 0.170 0.175 0.1800 0.185 0.190 0.195 0.200 0.2050 0.210 0.215 0.220 0.2250 0.2300 0.2350 0.240 0.2450 0.2500 0.255 0.257 0.260 0.262 0.263 0.263 0.262 0.260 0.2575 0.255 0.250 0.245 0.2400 0.235 0.230 0.225 0.220 0.2150 0.2100 0.205 0.200 0.195 0.1900 0.1850 0.1800 0.175 0.1700 0.165 0.160 0.155 0.1500 0.145 0.140 0.1350 0.130 0.125 0.120 0.1150 0.110 0.105 0.100 0.0950 0.0900 0.085 0.0800 0.0750 0.0700 0.065 0.060 0.055 0.0500 0.045 0.040 0.035 0.030 0.025 0.020 0.015 0.010 0.006 0.003 0.001 0.0005 0.000 0.0005 0.002 0.004 0.008 0.010 0.015 0.020 0.0250]'; Px = [0.030 0.035 0.040]'; Sx = [0.0450 0.050 0.055 0.0600 0.065 0.0700 0.075 0.0800 0.0850 0.090 0.095 0.100 0.105 0.1100 0.115 0.1200 0.125 0.130 0.135 0.1400 0.145 0.1500 0.155 0.1600 0.1650 0.170 0.175 0.1800 0.185 0.190 0.195 0.200 0.2050 0.210 0.2150 0.220 0.2250 0.2300 0.2350 0.240 0.2450 0.2500 0.255 0.257 0.2605 0.2625 0.2635 0.263 0.2625 0.2605 0.258 0.255 0.250 0.2450 0.2400 0.235 0.2300 0.225 0.220 0.215 0.210 0.205 0.2000 0.1950 0.190 0.185 0.180 0.1750 0.170 0.1650 0.160 0.155 0.1500 0.145 0.140 0.135 0.1300 0.1250 0.1200 0.115 0.110 0.1050 0.100 0.095 0.0900 0.0850 0.080 0.075 0.070 0.065 0.060 0.0550 0.050 0.045 0.0400 0.035 0.030 0.0250 0.0200 0.015 0.010 0.0065 0.0025 0.001 0.000 0.0005 0.001 0.003 0.005 0.0085 0.0100 0.015 0.0200 0.0250 0.0300 0.0350 0.040 0.0450 0.050]'; X = [Dx' Px' Sx']'; Dy = [0.238 0.2395 0.240 0.240 0.2395 0.239 0.238 0.237 0.2365 0.234 0.233 0.231 0.2295 0.228 0.227 0.226 0.2245 0.224 0.223 0.2225 0.223 0.224 0.226 0.228 0.2305 0.233 0.2355 0.2375 0.239 0.2395 0.240 0.240 0.2395 0.239 0.238 0.237 0.236 0.2345 0.233 0.232 0.230 0.2285 0.2265 0.2245 0.222 0.2195 0.2165 0.212 0.210 0.205 0.200 0.195 0.190 0.185 0.180 0.1750 0.172 0.168 0.166 0.1635 0.162 0.160 0.159 0.158 0.1565 0.1555 0.154 0.153 0.152 0.1515 0.1505 0.1495 0.149 0.1485 0.148 0.148 0.148 0.1485 0.149 0.150 0.1515 0.153 0.155 0.157 0.1585 0.160 0.162 0.163 0.1645 0.1655 0.167 0.1675 0.1685 0.1695 0.170 0.171 0.172 0.1725 0.173 0.174 0.175 0.176 0.177 0.179 0.182 0.186 0.190 0.195 0.200 0.2050 0.210 0.2150 0.220 0.225 0.230 0.232 0.236 0.238 0.2395]'; Py = [0.243 0.246 0.249]'; Sy = [0.2515 0.253 0.254 0.2555 0.257 0.2585 0.260 0.2615 0.2625 0.264 0.265 0.266 0.267 0.2675 0.268 0.2675 0.267 0.265 0.263 0.2605 0.258 0.2555 0.253 0.2515 0.2505 0.250 0.250 0.2505 0.251 0.252 0.253 0.254 0.2555 0.257 0.2585 0.260 0.2615 0.2635 0.2655 0.268 0.2705 0.2735 0.278 0.280 0.2850 0.2900 0.2950 0.300 0.3050 0.3100 0.315 0.319 0.323 0.3255 0.3275 0.329 0.3305 0.332 0.333 0.334 0.335 0.336 0.3375 0.3385 0.339 0.340 0.341 0.3415 0.342 0.3425 0.342 0.342 0.3415 0.341 0.340 0.339 0.3375 0.3355 0.3335 0.332 0.330 0.3285 0.327 0.326 0.3245 0.3235 0.323 0.322 0.321 0.320 0.319 0.3185 0.318 0.317
0.3165 0.316 0.315 0.3135 0.3115 0.309 0.305 0.3000 0.2950 0.290 0.285 0.2800 0.275 0.270 0.265 0.2600 0.2585 0.255 0.2525 0.2515 0.2505 0.2505 0.251 0.2515 0.253]';
Y = [Dy' Py' Sy']';
% INIZIO CICLO DI SPOSTAMENTO IN RAPIDO % if i == 1 x_rif = 0.020; y_rif = 0.238; ky = 1; T = 0.380; kv = 0; kt = 0; kpx = 1; kpy = 1; kpt = 1; d = 1; end
% FINE CICLO DI SPOSTAMENTO IN RAPIDO % % INIZIO CICLO DI LAVORO %
if (i >= 2 & i < 242) x_rif = X(i); y_rif = Y(i); ky = 1; T = atan2(Y(i)-Y(i-1),X(i)-X(i-1)); kv = 1; kt = 1; kpx = 0; kpy = 0; kpt = 0; a = (Y(i-1)-Y(i)); b = (X(i)-X(i-1)); c = ((Y(i)-Y(i-1))*X(i-1)-(X(i)-X(i-1))*Y(i-1)); d = (a*x+b*y+c)/(sqrt(a*a+b*b)); end
% FINE CICLO DI LAVORO %
% INIZIO CICLO DI SPOSTAMENTO IN RAPIDO % if i >= 242 x_rif = 0; y_rif = 0.650; ky = 0; T = 0; kv = 0; kt = 0; kpx = 1; kpy = 1; kpt = 1; d = 1;
% FINE CICLO DI SPOSTAMENTO IN RAPIDO % if (i == 76) | (i > 76 & i < 192) | (i == 192) | (i == 194) t_rif = T-2*pi; else t_rif = T; end alfa = t-t_rif;
Programma Riferimento Suola 2
function Q = suola2(u) i = u(1); x = u(2); y = u(3); t = u(4);% Riferimenti per il taglio % % Suola destra D %
% Passaggio tra suola destra e suola sinistra P % % Suola sinistra S % Dx = [0.020 0.025 0.030 0.0350 0.040 0.045 0.050 0.0550 0.060 0.0650 0.070 0.0750 0.080 0.085 0.0900 0.0950 0.100 0.105 0.1100 0.1150 0.120 0.125 0.1300 0.135 0.1400 0.145 0.150 0.1550 0.160 0.165 0.170 0.175 0.180 0.1850 0.1900 0.195 0.2000 0.205 0.210 0.215 0.220 0.225 0.230 0.235 0.240 0.245 0.250 0.2510 0.2525 0.2535 0.2545 0.2555 0.256 0.2560 0.255 0.2535 0.2515 0.2500 0.2450 0.240 0.235 0.230 0.225 0.220 0.215 0.2100 0.2050 0.2000 0.195 0.190 0.1850 0.180 0.175 0.1700 0.165 0.160 0.155 0.150 0.145 0.1400 0.135 0.1300 0.125 0.120 0.115 0.110 0.1050 0.100 0.0950 0.0900 0.085 0.080 0.0750 0.070 0.0650 0.060 0.055 0.050 0.045 0.0400 0.035 0.030 0.0250 0.0200 0.015 0.0125 0.010 0.008 0.0055 0.003 0.0015 0.000 0.0000 0.0005 0.0045 0.0105 0.017 0.0200 0.025]'; Px = [0.030 0.035 0.040]'; Sx = [0.045 0.050 0.0550 0.0600 0.065 0.0700 0.075 0.080 0.085 0.090 0.095 0.1000 0.1050 0.110 0.115 0.1200 0.125 0.1300 0.135 0.140 0.145 0.150 0.155 0.1600 0.1650 0.170 0.175 0.1800 0.185 0.1900 0.195 0.200 0.2050 0.2100 0.215 0.220 0.225 0.230 0.235 0.240 0.2450 0.2485 0.2525 0.254 0.2550 0.256 0.2560 0.255 0.2535 0.2515 0.250 0.2475 0.2450 0.2425 0.240 0.235 0.230 0.225 0.220 0.215 0.210 0.205 0.2000 0.195 0.190 0.1850 0.180 0.1750 0.170 0.165 0.1600 0.155 0.150 0.1450 0.140 0.135 0.1300 0.125 0.120 0.1150 0.1100 0.105 0.1000 0.095 0.0900 0.0850 0.0800 0.075 0.070 0.0650 0.060 0.0550 0.050 0.045 0.0400 0.0350 0.0300 0.025 0.0200 0.015 0.012 0.0095 0.007 0.005 0.0025 0.0015 0.000 0.0005 0.0015 0.005 0.010 0.015 0.0200 0.025 0.030 0.035 0.040 0.045 0.050]'; X = [Dx' Px' Sx']'; Dy = [0.238 0.240 0.240 0.2385 0.237 0.235 0.233 0.2315 0.230 0.2285 0.227 0.2255 0.224 0.223 0.2225 0.2225 0.223 0.224 0.2255 0.2275 0.230 0.233 0.2355 0.238 0.2395 0.240 0.240 0.2395 0.239 0.237 0.235 0.233 0.231 0.2285 0.2265 0.224 0.2215 0.219 0.217 0.215 0.213 0.211 0.209 0.207 0.205 0.203 0.200 0.1995 0.1980 0.1970 0.1950 0.1925 0.190 0.1875 0.185 0.1825 0.1800 0.1785 0.1765 0.175 0.174 0.173 0.172 0.171 0.170 0.1685 0.1675 0.1665 0.165 0.164 0.1625 0.161 0.160 0.1585 0.157 0.156 0.155 0.154 0.153 0.1525 0.153 0.1535 0.154 0.155 0.157 0.159 0.1615 0.164 0.1665 0.1685 0.171 0.173 0.1745 0.176 0.1775 0.179 0.180 0.181 0.182 0.1825 0.183 0.184 0.1845 0.1845 0.185 0.1865 0.190 0.195 0.2000 0.205 0.2100 0.215 0.2175 0.2200 0.2250 0.2300 0.235 0.2375 0.240]'; Py = [0.244 0.248 0.252]'; Sy = [0.255 0.257 0.2585 0.2605 0.262 0.2635 0.265 0.266 0.267 0.268 0.268 0.2675 0.2665 0.265 0.263 0.2605 0.258 0.2555 0.253 0.251 0.250 0.250 0.251 0.2515 0.2535 0.255 0.257 0.2595 0.262 0.2645 0.267 0.269 0.2715 0.2735 0.276 0.278 0.280 0.282 0.284 0.286 0.2875 0.2900 0.2925 0.295 0.2975 0.300 0.3025
0.325 0.3230 0.3205 0.3185 0.317 0.315 0.3135 0.312 0.3110 0.310 0.309 0.3085 0.3075 0.3075 0.307 0.3065 0.306 0.305 0.3000 0.295 0.290 0.2850 0.2800 0.275 0.2725 0.2700 0.265 0.261 0.257 0.2535 0.250 0.250 0.252 0.253 0.255 0.257]'; Y = [Dy' Py' Sy']';
% INIZIO CICLO DI SPOSTAMENTO IN RAPIDO % if i == 1 x_rif = 0.020; y_rif = 0.238; ky = 1; T = 0.291; kv = 0; kt = 0; kpx = 1; kpy = 1; kpt = 1; d = 1; end
% FINE CICLO DI SPOSTAMENTO IN RAPIDO %
% INIZIO CICLO DI LAVORO % if (i >= 2 & i < 242) x_rif = X(i); y_rif = Y(i); ky = 1; T = atan2(Y(i)-Y(i-1),X(i)-X(i-1)); kv = 1; kt = 1; kpx = 0; kpy = 0; kpt = 0; a = (Y(i-1)-Y(i)); b = (X(i)-X(i-1)); c = ((Y(i)-Y(i-1))*X(i-1)-(X(i)-X(i-1))*Y(i-1)); d = (a*x+b*y+c)/(sqrt(a*a+b*b)); end
% FINE CICLO DI LAVORO %
% INIZIO CICLO DI SPOSTAMENTO IN RAPIDO % if i >= 242 x_rif = 0; y_rif = 0.650; ky = 0; T = 0; kv = 0; kt = 0; kpx = 1; kpy = 1; kpt = 1; d = 1; end
% FINE CICLO DI SPOSTAMENTO IN RAPIDO % if (i == 81) | (i > 81 & i < 198) | (i == 198) | (i == 219) t_rif = T-2*pi; else t_rif = T; end alfa = t-t_rif;