POLITECHNIKA OPOLSK
Informatyczne Podstawy Projektowania
Prowadzący: mgr A. Kurek
Wykonała: Kamilla Wala
Wydział Mechaniczny
Kierunek Inżynieria Środowiska
Rok II, Semestr 3 (zimowy)
Wstęp teoretyczny
Matlab jest programem komputerowym będącym interaktywnym środowiskiem do wykonywania obliczeń naukowych i inżynierskich, oraz do tworzenia symulacji komputerowych.
Nazwa programu pochodzi od angielskich słów MATrix LABoratory, gdyż początkowo program ten był przeznaczony do numerycznych obliczeń macierzowych. Obecnie program ten potrafi znacznie więcej, cechuje go duża liczba funkcji bibliotecznych oraz duże możliwości rozbudowy przez użytkownika za pomocą pisania własnych funkcji. Posiada on swój język programowania, co umożliwia pisanie w pełni funkcjonalnych programów działających w środowisku Matlaba.
Najkrócej rzecz ujmując, matlab jest interpretatorem. Pozwala na uruchamianie skryptów napisanych w specyficznym dla tego środowiska języku. Można także wydawać mu pojedyncze polecenia – działa wtedy jak linia poleceń dosu. Zoptymalizowany jest do obliczeń inżynierskich, ale można go bez problemu stosować w najprzeróżniejszych dziedzinach. Co ważne, podstawowym sposobem reprezentacji danych są tu macierze (matlab = mat(rix)+lab(oratory)).
Okno w programie Matlab:
W zakresie grafiki Matlab umożliwia rysowanie dwu i trójwymiarowych wykresów funkcji oraz wizualizację wyników obliczeń w postaci rysunków statycznych i animacji. Możliwe jest pobieranie danych pomiarowych z urządzenia zewnętrznego przez porty w celu ich obróbki. Wszystko to powoduje, że program ten znajduje bardzo szerokie zastosowanie.
Matlab cechuje obiektowy system graficzny: obiekty graficzne (nadrzędne okno graficzne, układ współrzędnych, okno menu, przyciski i suwaki etc.) są hierarchicznie uporządkowane w postaci drzewa - każdy obiekt ma jednego przodka i może mieć dowolną ilość potomków (dziedziczenie); każdy obiekt graficzny ma swoje właściwości (kolor, rozmiar, położenie etc.). Pisząc okienkowy program w Matlabie wykorzystujemy gotowe obiekty graficzne, lub możemy tworzyć własne obiekty dziedzicząc już zdefiniowane. Wczytywane obrazy są w pamięci zapisywane w postaci macierzy liczb double (w zakresie 0 - 1) lub liczb unit8 (zakres 0 - 255), obróbka obrazu polega na dokonywaniu operacji matematycznych na takiej macierzy.
Przykładowy wykres programu Matlab:
Przykładowy wykres 3D programu Matlab:
Kody z obrazkami
-wykres 1
Rc=450 %MPa
Rt=275 %MPa
F=2000 %N
a=2 %mm
b=1.5 %mm
d=3 %mm
c=5 %mm
TALs=(F*4)/(2*pi*d^2)
ns=Rt/TALs
TAL1=F/(2*a*c)
n1=Rt/TAL1
A2=b*c
TALw=F/(4*A2)
nw=Rt/TALw
SIGMAd1=F/(a*d)
nd1=Rc/SIGMAd1
SIGMAd2=F/(2*b*d)
nd2=Rc/SIGMAd2
r=1
x=[-3*c,3*c]
y=[-c,-c]
x2=[-c,-c]
y2=[-c,c]
kolo=[-pi:0.01:pi];
x3=0+(d/2)*cos(kolo);
y3=0+(d/2)*sin(kolo);
x4=-c:0.01:c;
y4=sin(2*x4);
plot(x,y,'r',...
x,y+2*c,'r',...
x2,y2,'-- r',...
x2+2*c,y2,'r',...
x3,y3,'r',...
y4-3*c,x4,'r',...
y4+3*c,x4,'r')
ylim([-10 10])
xlim([-17 17])
-wykres 2
w=0.5*a+b+a/3
w1=-d/2
e=[-w1,w1]
f=[-w,-w]
e1=[d/2,d/2]
f1=[-(b+a/2+a/3),b+a/2]
e2=[d/2,3*c]
f2=[-a/2,-a/2]
e3=[-c,-c]
f3=[-a/2,a/2]
e4=[-d/2,-2*c]
f4=[-a/2,-a/2]
e5=[c,c]
f5=[a/2,a/2+b]
e6=[c,-4*c]
f6=[a/2+b,a/2+b]
kolo=[pi/2:0.01:3*pi/2]
e7=(-2*c)+(a/2)*cos(kolo);
f7=0+(a/2)*sin(kolo);
e8=[c,c]
f8=[-a/2,(-a/2)-b]
e9=[c,d/2]
f9=[(-a/2)-b,(-a/2)-b]
e10=[-d/2,-4*c]
f10=[-a/2-b,-a/2-b]
e11=[-4*c,-4*c]
f11=[a/2+b,-a/2-b]
e12=[c,c]
e12a=[-c,-c]
f12=[a/2+b,2*(a/2)+b]
e13=[c,-c]
f13=[a+b,a+b]
e14=-a/2:0.01:a/2;
f14=sin(6*e14)/3;
e15=-a/2:0.01:a/2;
f15=sin(6*e15)/3
e16=[-3*c,-4*c]
f16=[a/2+b,0.25*a]
e17=[-2.25*c,-4*c]
f17=[a/2+b,-0.5*a]
e18=[-c,-1.75*c]
f18=[a/2+b,a/2]
e19=[-4*c,-1.5*c]
f19=[-a/2-b,a/2+b]
e20=[-0.5*c,-1.3*c]
f20=[a/2+b,0.5*a]
e21=[-3*c,-2.2*c]
f21=[-a/2-b,-0.5*a]
e22=[-2*c,-1.2*c]
f22=[-a/2-b,-a/2]
e23=[-c,-0.26*c]
f23=[-a/2-b,-a/2+0.1*b]
e24=[c,d/2]
f24=[a/2+b,a/2]
e25=[c,d/a]
f25=[-a/2,-a/2-b]
e26=[-d/2,-c]
f26=[-a/2,0]
e27=[-d/2,-c]
f27=[0,a/2]
e28=[d/2,c]
f28=[0,-a/2]
e29=[d/2,2*c-d/2]
f29=[a/2,-a/2]
e30=[c,1.9*c]
f30=[a/2,-0.2*2]
e31=[2*(c-d/2),1.9*c]
f31=[ a/2,0.1*a]
e32=[0.6*c,1.9*c]
f32=[a/2,-0.45*a]
e33=[d/2,1.4*c]
f33=[0.25*a,-a/2]
e34=[d/2,0.7*c]
f34=[-0.25*a,-a/2]
e35=[-d/2,-0.75*c]
f35=[0.20*a,a/2]
e36=[-c,-d/2]
f36=[0.25*a,-0.25*a]
e37=[-c,-0.60*c]
f37=[-0.25*a,-a/2]
e38=[-4*c,-3.5*c]
f38=[0.75*a,a/2+b]
e39=[-4*c,-3.75*c]
f39=[1*a,a/2+b]
e40=[-4*c,-3.25*c]
f40=[0.5*a,a/2+b]
e41=[-2.75*c,-4*c]
f41=[a/2+b,0]
e42=[-2.5*c,-4*c]
f42=[a/2+b,-0.25*a]
e43=[-2.0*c,-4*c]
f43=[a/2+b,-0.75*a]
e44=[-1.75*c,-4*c]
f44=[a/2+b,-a]
e45=[-1.25*c,-3.75*c]
f45=[a/2+b,-a/2-b]
e46=[-0.75*c,-1.5*c]
f46=[a/2+b,a/2]
e47=[-0.5*d,-1.05*c]
f47=[a/2+b,a/2]
e48=[-d/2,-0.85*c]
f48=[0.5*a+0.7*b,a/2]
e49=[-d/2,-0.6*c]
f49=[a/2+0.38*b,a/2]
e50=[0.75*d,d/2]
f50=[a/2+b,a/2+0.75*b]
e51=[1*d,d/2]
f51=[a/2+b,a/2+0.5*b]
e52=[1.35*d,d/2]
f52=[a/2+b,a/2+0.25*b]
e53=[c,0.5*c]
f53=[a/2+0.75*b,a/2]
e54=[c,0.65*c]
f54=[a/2+0.5*b,a/2]
e55=[c,0.8*c]
f55=[a/2+0.3*b,a/2]
e56=[-3.5*c,-2.2*c]
f56=[-0.5*a-b,0.1*a]
e57=[-3.25*c,-2.2*c]
f57=[-0.5*a-b,-0.16*a]
e58=[-3*c,-2.2*c]
f58=[-0.5*a-b,-0.18*c]
e59=[-2.5*c,-1.75*c]
f59=[-0.5*a-b,-a/2]
e60=[-2.25*c,-1.5*c]
f60=[-0.5*a-b,-a/2]
e61=[-1.75*c,-c]
f61=[-a/2-b,-a/2]
e62=[-1.5*c,-0.75*c]
f62=[-a/2-b,-a/2]
e63=[-1.25*c,-0.5*c]
f63=[-a/2-b,-a/2]
e64=[-0.75*c,-d/2]
f64=[-a/2-b,-a/2-0.3*b]
e65=[-0.50*c,-d/2]
f65=[-a/2-b,-a/2-0.7*b]
alfa2=[-pi:0.01:pi]
xk=0+d/10*cos(alfa2)
yk=(-a/2-b)+d/10*sin(alfa2)
figure(2)
plot(e,f,'r',...
e,f+w+b+a/2,'r',...
e1,f1,'r',...
e1-d,f1,'r',...
e2,f2,'r',...
e2,f2+a,'r',...
e3,f3,'r',...
e4,f4,'r',...
e4,f4+a,'r',...
e5,f5,'r',...
e6,f6,'r',...
e7,f7,'r',...
e8,f8,'r',...
e9,f9,'r',...
e10,f10,'r',...
e11,f11,'r',...
e12,f12,'r',...
e12a,f12,'r',...
e13,f13,'r',...
f14+2*c,e14,'r',...
f15+3*c,e15,'r',...
e16,f16,'b',...
e17,f17,'b',...
e18,f18,'b',...
e19,f19,'b',...
e20,f20,'b',...
e21+0.2*c,f21,'b',...
e22-0.*c,f22,'b',...
e23,f23,'b',...
e24,f24,'b',...
e25,f25,'b',...
e26,f26,'b',...
e27,f27,'b',...
e28,f28,'b',...
e29,f29,'b',...
e30,f30,'b',...
e31,f31,'b',...
e32,f32,'b',...
e33,f33,'b',...
e34,f34,'b',...
e35,f35,'b',...
e36,f36,'b',...
e37,f37,'b',...
e38,f38,'b',...
e39,f39,'b',...
e40,f40,'b',...
e41,f41,'b',...
e42,f42,'b',...
e43,f43,'b',...
e44,f44,'b',...
e45,f45,'b',...
e46,f46,'b',...
e47,f47,'b',...
e48,f48,'b',...
e49,f49,'b',...
e50,f50,'b',...
e51,f51,'b',...
e52,f52,'b',...
e53,f53,'b',...
e54,f54,'b',...
e55,f55,'b',...
e56,f56,'b',...
e57,f57,'b',...
e58,f58,'b',...
e59,f59,'b',...
e60,f60,'b',...
e61,f61,'b',...
e62,f62,'b',...
e63,f63,'b',...
e64,f64,'b',...
e65,f65,'b',...
e50,f50-(a+b),'b',...
e51,f51-(a+b),'b',...
e52,f52-(a+b),'b',...
e53,f53-(a+b),'b',...
e54,f54-(a+b),'b',...
e55,f55-(a+b),'b',...
xk,yk,'r')
ylim([-6 10])
xlim([-22 17])
-wykres 3
w=0.5*a+b+a/3
w1=-d/2
e=[-w1,w1]
f=[-w,-w]
e1=[d/2,d/2]
f1=[-(b+a/2+a/3),b+a/2]
e2=[d/2,1.9*c]
f2=[-a/2,-a/2]
e3=[-c,-c]
f3=[-a/2,a/2]
e4=[-d/2,-2*c]
f4=[-a/2,-a/2]
e5=[c,c]
f5=[a/2,a/2+b]
e6=[c,-4*c]
f6=[a/2+b,a/2+b]
kolo=[pi/2:0.01:3*pi/2]
e7=(-2*c)+(a/2)*cos(kolo);
f7=0+(a/2)*sin(kolo);
e8=[c,c]
f8=[-a/2,(-a/2)-b]
e9=[c,d/2]
f9=[(-a/2)-b,(-a/2)-b]
e10=[-d/2,-4*c]
f10=[-a/2-b,-a/2-b]
e11=[-4*c,-4*c]
f11=[a/2+b,-a/2-b]
e12=[c,c]
e12a=[-c,-c]
f12=[a/2+b,2*(a/2)+b]
e13=[c,-c]
f13=[a+b,a+b]
e16=[-3*c,-4*c]
f16=[a/2+b,0.25*a]
e17=[-2.25*c,-4*c]
f17=[a/2+b,-0.5*a]
e18=[-c,-1.75*c]
f18=[a/2+b,a/2]
e19=[-4*c,-1.5*c]
f19=[-a/2-b,a/2+b]
e20=[-0.5*c,-1.3*c]
f20=[a/2+b,0.5*a]
e21=[-3*c,-2.2*c]
f21=[-a/2-b,-0.5*a]
e22=[-2*c,-1.2*c]
f22=[-a/2-b,-a/2]
e23=[-c,-0.26*c]
f23=[-a/2-b,-a/2+0.1*b]
e24=[c,d/2]
f24=[a/2+b,a/2]
e25=[c,d/a]
f25=[-a/2,-a/2-b]
e26=[-d/2,-c]
f26=[-a/2,0]
e27=[-d/2,-c]
f27=[0,a/2]
e28=[d/2,c]
f28=[0,-a/2]
e29=[d/2,2*c-d/2]
f29=[a/2,-a/2]
e30=[c,1.9*c]
f30=[a/2,-0.2*2]
e31=[2*(c-d/2),1.9*c]
f31=[ a/2,0.1*a]
e32=[0.6*c,1.9*c]
f32=[a/2,-0.45*a]
e33=[d/2,1.4*c]
f33=[0.25*a,-a/2]
e34=[d/2,0.7*c]
f34=[-0.25*a,-a/2]
e35=[-d/2,-0.75*c]
f35=[0.20*a,a/2]
e36=[-c,-d/2]
f36=[0.25*a,-0.25*a]
e37=[-c,-0.60*c]
f37=[-0.25*a,-a/2]
e38=[-4*c,-3.5*c]
f38=[0.75*a,a/2+b]
e39=[-4*c,-3.75*c]
f39=[1*a,a/2+b]
e40=[-4*c,-3.25*c]
f40=[0.5*a,a/2+b]
e41=[-2.75*c,-4*c]
f41=[a/2+b,0]
e42=[-2.5*c,-4*c]
f42=[a/2+b,-0.25*a]
e43=[-2.0*c,-4*c]
f43=[a/2+b,-0.75*a]
e44=[-1.75*c,-4*c]
f44=[a/2+b,-a]
e45=[-1.25*c,-3.75*c]
f45=[a/2+b,-a/2-b]
e46=[-0.75*c,-1.5*c]
f46=[a/2+b,a/2]
e47=[-0.5*d,-1.05*c]
f47=[a/2+b,a/2]
e48=[-d/2,-0.85*c]
f48=[0.5*a+0.7*b,a/2]
e49=[-d/2,-0.6*c]
f49=[a/2+0.38*b,a/2]
e50=[0.75*d,d/2]
f50=[a/2+b,a/2+0.75*b]
e51=[1*d,d/2]
f51=[a/2+b,a/2+0.5*b]
e52=[1.35*d,d/2]
f52=[a/2+b,a/2+0.25*b]
e53=[c,0.5*c]
f53=[a/2+0.75*b,a/2]
e54=[c,0.65*c]
f54=[a/2+0.5*b,a/2]
e55=[c,0.8*c]
f55=[a/2+0.3*b,a/2]
e56=[-3.5*c,-2.2*c]
f56=[-0.5*a-b,0.1*a]
e57=[-3.25*c,-2.2*c]
f57=[-0.5*a-b,-0.16*a]
e58=[-3*c,-2.2*c]
f58=[-0.5*a-b,-0.18*c]
e59=[-2.5*c,-1.75*c]
f59=[-0.5*a-b,-a/2]
e60=[-2.25*c,-1.5*c]
f60=[-0.5*a-b,-a/2]
e61=[-1.75*c,-c]
f61=[-a/2-b,-a/2]
e62=[-1.5*c,-0.75*c]
f62=[-a/2-b,-a/2]
e63=[-1.25*c,-0.5*c]
f63=[-a/2-b,-a/2]
e64=[-0.75*c,-d/2]
f64=[-a/2-b,-a/2-0.3*b]
e65=[-0.50*c,-d/2]
f65=[-a/2-b,-a/2-0.7*b]
e66=[-d/2:0.01:d/2]
f66=sin(14*e66)/10
alfa2=[-pi:0.01:pi]
xk=0+d/10*cos(alfa2)
yk=(-a/2-b)+d/10*sin(alfa2)
figure(3)
plot(e,f,'r',...
e,f+w+b+a/2,'r',...
e1,f1,'r',...
e1-d,f1,'r',...
e2,f2,'r',...
e2,f2+a,'r',...
e3,f3,'r',...
e4,f4,'r',...
e4,f4+a,'r',...
e5,f5,'r',...
e6,f6,'r',...
e7,f7,'r',...
e8,f8,'r',...
e9,f9,'r',...
e10,f10,'r',...
e11,f11,'r',...
e12,f12,'r',...
e12a,f12,'r',...
e13,f13,'r',...
e16,f16,'b',...
e17,f17,'b',...
e18,f18,'b',...
e19,f19,'b',...
e20,f20,'b',...
e21+0.2*c,f21,'b',...
e22-0.*c,f22,'b',...
e23,f23,'b',...
e24,f24,'b',...
e25,f25,'b',...
e26,f26,'b',...
e27,f27,'b',...
e28,f28,'b',...
e29,f29,'b',...
e30,f30,'b',...
e31,f31,'b',...
e32,f32,'b',...
e33,f33,'b',...
e34,f34,'b',...
e35,f35,'b',...
e36,f36,'b',...
e37,f37,'b',...
e38,f38,'b',...
e39,f39,'b',...
e40,f40,'b',...
e41,f41,'b',...
e42,f42,'b',...
e43,f43,'b',...
e44,f44,'b',...
e45,f45,'b',...
e46,f46,'b',...
e47,f47,'b',...
e48,f48,'b',...
e49,f49,'b',...
e50,f50,'b',...
e51,f51,'b',...
e52,f52,'b',...
e53,f53,'b',...
e54,f54,'b',...
e55,f55,'b',...
e56,f56,'b',...
e57,f57,'b',...
e58,f58,'b',...
e59,f59,'b',...
e60,f60,'b',...
e61,f61,'b',...
e62,f62,'b',...
e63,f63,'b',...
e64,f64,'b',...
e65,f65,'b',...
e50,f50-(a+b),'b',...
e51,f51-(a+b),'b',...
e52,f52-(a+b),'b',...
e53,f53-(a+b),'b',...
e54,f54-(a+b),'b',...
e55,f55-(a+b),'b',...
e66,f66-a/2,'r',...
e66,f66+a/2,'r',...
xk,yk,'r')
ylim([-6 10])
xlim([-22 15])
-wykres 4
g=[-c,2*d+1.5*d]
h=[a/2,a/2]
g1=[-c,-c]
h1=[-a/2,a/2]
g2=[-c+d/2,-c]
h2=[a/2,a/4]
g3=[-0.40,2*d]
h3=[-a/2,a/2]
g4=[-0.4+2.25*d,2*d+1.5*d]
h4=[-a/2,0.1*a]
g5=[-0.4+3*d,2*d+1.5*d]
h5=[-a/2,-0.25*a]
g6=[2*d-0.75*d,-0.2*d]
h6=[a/2,-0.15*a]
g7=[0.5*d,-0.2*d]
h7=[a/2,0.2*a]
figure(4)
plot(g,h,'bla',...
g,h-a,'bla',...
g1,h1,'bla',...
g1+d/2,h1,'bla',...
g1+1.5*d,h1,'bla',...
g2,h2,'b',...
g2,h2-d/4,'b',...
g2,h2-d/2,'b',...
g3,h3,'b',...
g3+0.75*d,h3,'b',...
g3+1.5*d,h3,'b',...
g4,h4,'b',...
g5,h5,'b',...
g6,h6,'b',...
g7,h7)
xlim([-10 15])
ylim([-5 5])
Wnioski
Program jest bardzo przyjemny w obsłudze. Pomaga zarówno przy rozwiązywaniu prosty działaniach matematycznych jak i tych bardziej skomplikowanych.