MATLAB ŚCIĄGA, Automatyka i robotyka air pwr, IV SEMESTR, MATLAB, Matlab zagadnienia


1.Podaj i opisz znane Ci polecenia do generowania macierzy przynajmniej do jednego napisz sposób wywołania rezultat działania.

rand(n) - generuje macierz nxn wypełnioną pseudolosowymi liczbami z przedziału [0, 1] o rozkładzie jednostajnym

randn(n) - generuje macierz nxn wypełniona pseudolosowymi liczbami o rozkładzie normalnym ze średnią 0 i wariancją 1

eye(n) - generuje jednostkową macierz nxn

ones(n) - generuje macierz nxn o elementach równych 1

zeros(n) - generuje zerową macierz nxn

magic(n) - generuje macierz nxn, której suma elementów w każdym wierszu, kolumnie i przekątnej jest taka sama

2. Podaj dwa alternatywne sposoby generowania wektora. Opisz działanie tych poleceń różnice miedzy nimi.

-linspace(x1, x2, n) - generuje n liczb z przedziału [x1, x2] o rozkładzie liniowym

np.A = linspace(1, 5, 5)

A = 1 2 3 4 5

-logspace(x1, x2, n) - generuje n liczb z przedziału [x1, x2] o rozkładzie logarytmicznym

A = logspace(1, 5, 5)

A =10 100 1000 10000 100000

3.Jeżeli A=[123456;098765;110022]napisz wynik działania A (:,[1:3,5]

zwróci macierz składająca się ze wszystkich wyrazów w kolumnach 1-3 i 5

4.Podaj w jaki sposób dopisać wiersz do już istniejącej macierzy A składającej się z liczb 20,15,17

A = [20,15,17]

A = [A; [13,7,21]] lub A(2, :) = [13,7,21]

A =

20 15 17

13 7 21

5. Napisz wynik działania A.*B oraz A*A jeśli A=[12;23] B=[11,21]

A=[12;23] B=[11,21]

A*B =

132 252 -mnożenie macierzowe

253 483

A.*A =

144 -mnożenie tablicowe

529

A*A oraz A.*B - nie wykonają się ponieważ nie zgadza się rozmiar macierzy

6.Podaj polecenia umożliwiające generowanie transmitancji zastępczej dla określonego układu połączenia

Kr = tf([4], [1])

Kr = 4

T = feedback([Kr], [1])

T = 0.8

7. Omów sposób zastosowania procedury ode 45 do równań różniczkowych.

Do rozwiązywania układów równań różniczkowych służą funkcje między innymi: ode23, ode45 oraz ode115. Różnią się one sposobem rozwiązywania układu i zaokrąglania liczb. Najczęściej stosowana jest funkcja ode45. Parametrami funkcji są:

z = ode45(`uklad.m', X, P)

8.Napisz m.plik rysujący wykres funkcji y=3x+1 w przedziale [-3,3] linia czerwona kreskową

x = [-3:0.1:3];

y = 3 * x + 1;

plot(x, y, `r—`)

9. Dla wielomianu y=x3+3x2-9x-2 oblicz i wykreślić przebieg w przedziale [-5,5 do3] pierwiastki.

y = [1 3 9 2]

pierwiastki = roots(y)

x = [-5.5:0.1:3];

y = polyval(y, x);

plot(x, y)

10. Opisz strukturę m-funkcji oraz pochodną

M-funkcja składa się z:

-słowa kluczowe function, nazwy zmiennej wyjściowej, nazwy funkcji, argumenty funkcji, ciało funkcji

------------------- początek m-funkcji -------------------

%komentarz pojawiający się po wywołaniu polecania help fun

Function y=fun(x) %komentarz po pierwszej komendzie nie jest wyświetlany jako help

y=1./(1+x.^2);

------------------- koniec m-funkcji --------------------

polyder(A) - zwraca wektor, którego elementy są współczynnikami pochodnej wielomianu o współczynnikach zapisanych w wektorze A

0x01 graphic

A = [4 5 1 3]

dY = polyder(A)

dY =

12 10 1

0x01 graphic

polyval(dY, X) - zwraca wartości funkcji dY na przedziale X

Wzór ogólny pochodnej funkcji można uzyskać jedynie dla wielomianów, dla pozostałych funkcji można obliczyć tylko jej wartości.

0x01 graphic

L = [1 0 0 0]

M = [1 0 0 1]

[dL, dM] = polyder(L, M)

dY = polyval(dL, X) ./ polyval(dM, X)

Aby policzyć wartości innych funkcji na przedziale X należy skorzystać z definicji (iloraz różnicowy).

diff(A) - zwraca wektor, którego elementy powstały poprzez różnice kolejnych elementów wektora A, tzn. [A2 - A1, A3 - A2, …, An - An-1]; długość tego wektora jest o jeden mniejsza od długości wektora A, ponieważ nie można nic odjąć od A1

A = sin(X)

dY = diff(A) ./ diff(X)

1.Zmienna globalna - wyjaśnić

Zmienna globalna to taka zmienna, do której dostęp możliwy jest z każdego miejsca programu. Po jej zadeklarowaniu wszystkie funkcje i skrypty mogą z niej korzystać. Pozwala to zaoszczędzić pamięć. Jeżeli zmienna globalna została zadeklarowana, ale nie przypisano do niej jeszcze żadnej wartości, wynikiem jej wywołania będzie zbiór pusty. Przykład deklaracji zmiennej globalnej `x':

>> global x

2.Wyniki działań: A.*B A*B i jakieś tam inne operacje A [1 2;2 3] B[1 1;2 1]

Jeżeli A = [ 1 2 oraz B = [ 1 1 to:

2 3 ] 2 1 ]

A.*B = [ 1*1 2*1 = [ 1 2

2*2 3*1 ] 4 3 ]

A*B = [ 1*1+2*2 1*1+2*1 = [ 5 3

2*1+3*2 2*1+3*1 ] 8 5 ]

3.Operacja wyciągania z macierzy A[3, 1:5] [.....]

Polecenie A[3, 1:5] wywoła elementy macierzy A z wiersza 3 i kolumn od 1 do 5 (co 1)

4.Napisz polecenie umożliwiające wykreślenie funkcji: V=Aebsin(t) dla t[0;20]

A=1

B=...

Zrobić do wykresu: legenda, podpisać osie, tytuł wykresu, wyświetlanie , pewnie jakąś kolorową przerywaną linią)

t = 0:20;

A = 1;

b = 2;

V = A*exp(b*sin(t));

plot (t,V,'r:');

title (`Zadanie 4');

xlabel (`t');

ylabel (`V');

legend ('V = A*exp(b*sin(t))')

5.Różnica miedzy m-plikiem skryptowym a funkcyjnym

M-plik skryptowy to odrębny program, który wywołujemy wpisując jego nazwę (bez rozszerzenia) w oknie głównym Matlaba. Następuje szereg procedur zapisanych w skrypcie.

M-plik funkcyjny zawiera jedynie funkcję, którą możemy się posłużyć do naszych obliczeń, bądź też zwraca wynik dla podanej przez nas wartości. Odnosimy się do niej używając jej nazwy (nazwy pliku, w którym została zapisana).

Przykład m-pliku skryptowego: Przykład m-pliku funkcyjnego:

x=input (`Podaj wartość x: ') function y = funkcja(x)

y=sin(x.*x) y=sin(x.*x)

6.Napisz skrypt obliczający równanie kwadratowe

clear all

clc

disp('Rownanie kwadratowe a*x^2+b*x+c')

a=input('Podaj a: ');

b=input('Podaj b: ');

c=input('Podaj c: ');

delta=b*b-4*a*c;

disp('Szukane pierwiastki:')

x1=(-b-sqrt(delta))/2*a

x2=(-b+sqrt(delta))/2*a

7.napisz m-plik pochodna funkcji : y(x)=x2/(x3+1)

l=[1 0 0];

m=[1 0 0 1];

disp('Zadana funkcja:')

G=tf(l,m)

l1=polyder(l);

m1=polyder(m);

disp('i jej pochodna:')

G1=tf(l1,m1)

8.napisz m-plik obliczający całke y=x3+3x2-9x-2 <-5,5>

Plik „calka.m”:

function y = calka(x)

y=x.^3+3*x.^2-9*x-2

W oknie głównym:

quad('calka',-5,5)

9.procedura ode 45 - wyjaśnić

ode45(`nazwa_funkcji',wektor_przedz_czas,wektor_war_poczatk)

10.Równanie opisujące PID , schemat, widok wykresu podczas robienia i symulacji zapisanie do pliku i tam inne bajery

0x01 graphic

0x01 graphic

11.zamodelowanie schematu:

y..+4y.+29y=0

y.(0)=15 y(0)=15

Zapewnić obserwację sygnału y I możliwość późniejszego odtworzenia

0x01 graphic

0x01 graphic

W obu integratorach w polu „Initial condition” wpisujemy wartość „15”

12.Opracować model układu opisanego układem równań różnicowych dx1/dt=ax1(t)-bx2(t) +cu1(t) ,,,, dx2/dt=ex1(t)-cu2(t)

x1,x2-- zmienne

u—wymuszenia

cu1 ma postać skoku jednostkowego au2 ma wartość stałą

a,b,c,e - stałe współczynniki

dx1/dt = ax1(t) - bx2(t) + cu1(t)

dx2/dt = ex1(t) - cu2(t) 0x08 graphic

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x01 graphic

13.Opracować model regulatora PID na wejście którego jest skok jednostkowy i wykreśla jego odpowiedź. Założyć następujące parametry regulatora T1=0,001s

K=10 Td=0.008s

0x08 graphic

reshape(macierz,w,k)- zmiana rozmiaru macierzy na w wierszy i k kolumn

np. reshape(a,1,6)

repmat(macierz,w,k)- powielenie macierzy

np. repmat(b,2,3)- robi jedną macierz 2x3 z macierzy b

p=rem(a,2)==0)- dzielenie macierzy a przez 2 z resztą, jeżeli jest reszta to mamy 0

size a- rozmiar macierzy a, np. mamy macierz 3x4, >>[m,n]=size(a) .. wyskakuje m=3,n=4

axis([xmin,xmax,ymin,ymax])- zmiana rozmiaru wykresu

subplot(liczba okien w pionie, liczba okien w poziomie, aktywne okno)

bez kropki- operacje macierzowe, z kropką- operacje tablicowe

solve- oblicza pierwiastki, solve(`wpisujemy równanie')

roots(W)- miejsca zerowe wielomianu W

conv- iloczyn wielomianu, deconv-iloraz wielomianu

polyval- punkty, w których ma policzyć wartość, np. >>x=[-1:0.1:1]; y=polyval(W,x); plot(x,y)

L=polyder(W)- liczy pochodną wielomianu (jako wielomian L)

pow2(0:1:100)- wyświetla potęgi liczby 2 od 0 do 100, co 1

GRAFIKA:

Kolory:

b-niebieski, g-zielony, r-czerwony, c-błękit, m-purpura, y-żółty, k-czarny, w-biały,

Rodzaje linii:

- ciągła, : punktowa, -- kreskowa

Symbole do wykresów:

. punkt, o okrąg, x znak x, + plus, * gwiazdka, s kwadrat, d diament, v trójkąt,

Zadanie 1.

Rozwiązać poniższy układ równań:

0x01 graphic
0x01 graphic

a) metodą Eulera:

Tworzę nowy m-plik skryptowy:

dt=0.001;

tczas=2;

x(1)=1;

y(1)=3;

z(1)=0;

for i=1:tczas/dt

t(i+1)=i*dt;

dx=(2*x(i)-3-x(i)*y(i))*dt;

dy=(3*y(i)-2+2*x(i))*dt;

dz=(4*x(i)-y(i))*dt;

x(i+1)=dx+x(i);

y(i+1)=dy+y(i);

z(i+1)=dz+z(i);

end

subplot(1,3,1)

plot(t,x,'LineWidth',[2])

legend('x(t)');

subplot(1,3,2)

plot(t,y,'LineWidth',[2])

legend('y(t)');

subplot(1,3,3)

plot(t,z,'LineWidth',[2])

legend('z(t)')

b) z pomocą ode45:

Tworzę nowy m-plik funkcyjny:

function dy=rozniczki(t,y)

dy(1)=3*y(1)-y(2)+2*y(3);

dy(2)=4*y(3)-y(1);

dy(3)=2*y(3)-3-y(3)*y(1);

dy=dy';

end

I w głównym oknie Matlaba uruchamiam m-plik wpisując:

>> [t,y]=ode45('rozniczki',[0,1],[3,0,1]);

>> subplot(1,3,1);

>> plot(t,y(:,3),'LineWidth',[2])

>> legend('x(t)');

>> subplot(1,3,2);

>> plot(t,y(:,1),'LineWidth',[2])

>> legend('y(t)');

>> subplot(1,3,3);

>> plot(t,y(:,2),'LineWidth',[2])

>> legend('z(t)');

Zadanie 2.

Rozwiązać podaną całkę:

0x01 graphic

Tworzę m-plik funkcyjny:

function q=calka(x,y)

q=y.^3*exp(x.^2);

end

I uruchamiam go wpisując w oknie głównym:

>> q1=dblquad('calka',-2,2,-2,2)

Zadanie 3.

Napisać m-plik funkcyjny, który oblicza silnię z podanej liczby

Tworzę m-plik funkcyjny:

function[wynik]=silnia(n)

wynik=1;

for i=1:n

wynik=wynik*i;

end

Żeby obliczyć silnię z jakiejś liczby wpisuję w oknie głównym, np.:

>> silnia(7)

Zadanie4 .Dany jest wielomian 0x01 graphic
. Wykreślić za pomocą funkcji subplot na wykresie 1 przebieg wielomianu w przedziale x0x01 graphic
[-3,3] o kroku 0,01. Na wykresie 2 wykreślić pochodną wielomianu (poleceniem polyder).

x=[-3:0.01:3];

W1=[3,0,0,2,0,-8,1];

W2=[5,0,-1,0,1];

W=deconv(W1,W2)

y=polyval(W,x);

subplot(2,1,1)

plot(x,y)

grid

xlabel('os X');

ylabel('os Y');

title('wielomian W','FontSize',[15]);

Wprim=polyder(W);

yprim=polyval(Wprim,x);

subplot(2,1,2)

plot(x,yprim)

grid

xlabel('os X');

ylabel('os Y');

title('pochodna wielomianu W','FontSize',[15]);

Zadanie 5.

Napisać m-plik skryptowy oraz m-plik funkcyjny obliczający pierwiastki równania kwadratowego ax2+bx+c=0. W przypadku m-pliku skryptowego parametry a,b,c należy wczytać z klawiatury, natomiast w przypadku funkcji parametry te muszą być podane podczas jej wywołania. Rozpatrzyć przypadki gdy 0x01 graphic
<0, 0x01 graphic
=0, 0x01 graphic
>0.

Rozw.:

a) m-plik skryptowy

disp('Obliczanie pierwiastków równania kwadratowego ax^2+bx+c=0')

a=input('Podaj a: ');

b=input('Podaj b: ');

c=input('Podaj c: ');

delta=b^2-4*a*c;

if a~=0

disp('Jest to rownanie kwadratowe');

if delta>0

x1=(-b-sqrt(delta))/(2*a);

x2=(-b+sqrt(delta))/(2*a);

disp('równanie ma dwa pierwiastki:')

x1

x2

elseif delta==0

x=-b/(2*a);

disp('równanie ma jeden pierwiastek podwójny:')

x

else disp('Równanie nie ma pierwiastków')

end

elseif a==0 && b==0 && c==0

disp('Równanie tożsamościowe')

elseif a==0 && b==0 && c~=0

disp('Równanie sprzeczne')

else disp('To nie jest rownanie kwadratowe')

end

b) m-plik funkcyjny

Tworzę nowy m-plik:

function z=rownanie(a,b,c)

delta=b*b-4*a*c;

if delta>0

disp('dwa pierwiastki rzeczywiste');

x1=(-b-sqrt(delta))/(2*a);

x2=(-b+sqrt(delta))/(2*a);

disp('x1=');

disp(x1);

disp('x2=');

disp(x2);

elseif delta==0

disp('rownanie ma jeden pierwiastek podwojny');

x1=(-b)/(2*a);

disp('x= ')

else

disp('rownanie nie ma pierwiastkow');

end

I wywołuję funkcję w oknie głównym. Np.:

>> rownanie(-2,3,-1)

Zad. 6

Rozwiązać metodą Eulera:

0x01 graphic

Rozw.:

dt=0.001;

tczas=2;

x(1)=1;

y(1)=3;

t(1)=0;

i=1:2000;

for i=1:tczas/dt

t(i+1)=i*dt;

dx=(2*x(i)-3)*dt;

dy=(3*x(i)*y(i))*dt;

x(i+1)=dx+x(i);

y(i+1)=dy+y(i);

end

Zad. 7

Rozwiązać całkę:

0x01 graphic

Rozw.:

function y=calka(x)

y=x.^(-0.5).*exp(x);

end

q1=quad8(`calka',0,1)

Zad. 8

Napisz m-plik obliczający całke y=x3+3x2-9x-2 <-5,5>

Plik „calka.m”:

function y = calka(x)

y=x.^3+3*x.^2-9*x-2

W oknie głównym:

quad('calka',-5,5)

Zad.9

Oblicz wartość funkcji f(x) określonej wzorem:

0x01 graphic

Rozw.:

if x>3

f=x.*x-6;

elseif x>=-1&x<=3

f=x;

else

f=x.*x-2;

end

Zad. 10

Obliczyć

0x01 graphic

h=0.1; x=-3:h:3

disp(`licznik i mianownik funkcji:')

L=[1 0] i M=[1 0 1]

disp(`licznik i mianownik funkcji pochodnej:')

[L1 M1]=polyder(L,M)

y=polyval(L,x)./polyval(M,x)

yprim=polyval(L1,x)./polyval(M1,x)

subplot(2,1,1), plot(x,y)

subplot(2,1,2), plot(x,yprim)

Zad.11

Zróżniczkować, wykreślić wielomian i jego pochodną dla x<0,3>:

y(x)=-x3+8x

Rozw.:

h=0,05; x=0:h:3

disp(`wsp. wielomianu')

C1=[-1 0 8 0]

y1=polyval(C1,x); %wartość wielomianu

C2=polyder(C1); %rozniczkowanie wielom.

y2=polyval(C2,x); wartość poch.

subplot(2,1,1), plot(x,y1)

subplot(2,1,2), plot(x,y2)

STABILNOŚĆ:

L=[... .. ..]; M=[… .. …]

H=tf(L,M)- wyświetli nam transmitancję

zero(H)- zera, pole(H)-bieguny

pzmap(H)-wykres zer i biegunów

step(H)- skok jednostkowy, impulse(H)-impuls Diraca, nyquist(H), nichols(H).nichols(L,M), bode(H), margin(H)-pokazuje zapas wzmocnienia, fazy

połączenia transmitancji:

szeregowe:

[L,M]=series(L1,M1,L2,M2) lub G3=series(G1,G2)

Równoległe:

[L,M]=paralel(L1,M1,L2,M2) lub G3=paralel(G1,G2) (jak ujemne to minus przy L2 lub G2)

Sprzężenie zwrotne:

[L.M]=cloop(L1,M1,-1)- jak nie ma G2

[L,M]=feedback(L1,M1,L2,M2,-1)- jak jest jakieś G2

Albo G=feedback(G1,1,-1) .. sprzężenie dodatnie bez minusa

dx1/dt

x1

ax1

u1

ax1

cu1

bx2

x2

dx2/dt

ex1

u2

cu2



Wyszukiwarka

Podobne podstrony:
statystyka ściąga, Automatyka i robotyka air pwr, IV SEMESTR, statystyka stosowana
MatLab ROZWIĄZANA lista na koło, Automatyka i robotyka air pwr, IV SEMESTR, MATLAB, Matlab zagadnien
2x, Automatyka i robotyka air pwr, IV SEMESTR, MATLAB, Matlab zagadnienia
rozwiązaniaaa, Automatyka i robotyka air pwr, IV SEMESTR, MATLAB, Matlab zagadnienia
Automatyka SPRAWKO nandy, Automatyka i robotyka air pwr, IV SEMESTR, Podstawy automatyki 2, laborki
nandy, Automatyka i robotyka air pwr, IV SEMESTR, Podstawy automatyki 2, laborki
RSA sciaga, Automatyka i robotyka air pwr, VI SEMESTR, Rozproszone systemy aut
FIZYKA ŚCIĄGA, Automatyka i robotyka air pwr, III SEMESTR, FIZYKA 2
SPRAWKO ĆW1, Automatyka i robotyka air pwr, IV SEMESTR, Podstawy automatyki 2, laborki, CW.1
pytanka na ustny, Automatyka i robotyka air pwr, IV SEMESTR, Podstawy automatyki 2, egzamin
pH sprawko, Automatyka i robotyka air pwr, IV SEMESTR, pomiary przemysłowe, pH
Urządzenia i stacje- ŚCIĄGA, Automatyka i robotyka air pwr, III SEMESTR, Urządzenia i stacje, kolokw
PIM-ŚCIĄGA, Automatyka i robotyka air pwr, III SEMESTR, Podstawy Inżynierii Materiałowej
0 sciaga materialoznawstwo opracowanie tematow spis, Automatyka i robotyka air pwr, III SEMESTR, P
ELEKTROTECHNIKA- ściąga, Automatyka i robotyka air pwr, I SEMESTR, elektrotechnika

więcej podobnych podstron