slide1
Download
Skip this Video
Download Presentation
Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение

Loading in 2 Seconds...

play fullscreen
1 / 114

Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение - PowerPoint PPT Presentation


  • 207 Views
  • Uploaded on

Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение математически изчисления; разработка на алгоритми; моделиране, симулиране и създаване на прототипи; представяне, визуализиране и анализ на данни; графика;

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение' - hasana


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
slide1

Интерактивна система за технически изчисления, визуализиране и програмиране (MATLAB)

  • Приложение
  • математически изчисления;
  • разработка на алгоритми;
  • моделиране, симулиране и създаване на

прототипи;

  • представяне, визуализиране и анализ на данни;
  • графика;
  • разработка на приложения с графичен
  • потребителски интерфейс.
  • Включва специални приложения (toolboxes) за обработка на сигнали, системи за управление, невронни мрежи, симулация и др.
slide2

Характеристики на системата MATLAB

  • MATLAB език – език от високо ниво за обработка на матрици;
    • включва: оператори, функции, структури данни,
    • вход/изход, обектно-ориентирано
    • програмиране;
  • Работна среда на MATLAB –средства за управление на променливите в работната среда, внасяне и изнасяне на данни; разработка и управление на М-файлове, MATLAB приложения.
  • Управление на графика – двумерна и тримерна визуализация, обработка на изображения, анимация и представяне на графики; изграждане на графичен потребителски интерфейс.
slide3

Библиотека с математически функции – сума, тригонометрични функции, комплексна аритметика, обръщане на матрица, Беселови функции, бързи трансформации на Фурие и др.

  • Интерфейс за приложни програми – динамично свързване на модули, написани на C, C++, Java или Fortran с модули от MATLAB.
slide4

Стартиране на MATLAB

StartPrograms MATLAB 6.5

slide5

Команден прозорец за въвеждане на променливи и изпълнение на функции и М-файлове

Помощ

Текуща директория – за управление на директории и файлове

Работно пространство – за изобразяване на променливите

История на командите – за наблюдение изпълнението на архивни команди

Старт – за изобразяване на документация, демо програми и специални приложения

slide6

MATLAB като мощен калкулатор

»указва въвеждане на команда

; блокира извеждане на резултата

ans променлива със стойността на резултата

= присвояване

fun()вградена функция

... пренасяне на израз на нов ред

slide7

» 2+3

ans =

5

» x=sin(0.5)

x =

0.4794

» V=[1 2 3 4];

» sin(V)

ans =

0.8415 0.9093 0.1411 -0.7568

» exp(V)

ans =

2.7183 7.3891 20.0855 54.5982

» magic(3)

ans =

8 1 6

3 5 7

4 9 2

вградена функция

вектор

блокира извеждане на резултата

вградена функция

MAGIC(N) е NxN матрица от целите числа 1N2с еднакви суми във всеки ред, стълб и диагонали, където N>0 без N=2.

slide8

Типове данни

15 типa данни (или класове)

Всеки тип данни е във формата на масив.

Двумерният масив се нарича матрица.

Едномерният масив се нарича вектор.

Матрица 1x1 се нарича скалар.

slide11

Оператори

  • Аритметични оператори
slide12

» A=[7 2;4 3];

» B=[1 4;6 7];

» A+B

ans =

8 6

10 10

» A*B

ans =

19 42

22 37

% поелементно

» A.*B

ans =

7 8

24 21

» A.^B

ans =

7 16

4096 2187

% ляво деление

» A\B

ans =

-0.6923 -0.1538

2.9231 2.5385

» inv(A)*B

ans =

-0.6923 -0.1538

2.9231 2.5385

% дясно деление

» B/A

ans =

-1.0000 2.0000

-0.7692 2.8462

» B*inv(A)

ans =

-1.0000 2.0000

-0.7692 2.8462

Функция inv(A) – обръща матрицата А.

slide13

Оператори за сравнение

Пример:А==B– сравнява матриците елемент-по-елемент, Aи B трябва да са с еднакви размери, резултантната матрица показва дали съответните елементи от Aи B са равни.

» A=[1 2 3;4 5 6;7 8 9];

»B=[1 5 10;2 5 8;4 7 9];

» A==B

ans =

1 0 0

0 1 0

0 0 1

slide14

Логически оператори

  • 3.1. Поелементни логически оператори и функции
  • »А=[0 1 1 0 1];
  • »B=[1 1 0 0 1];
slide15

3.2. Побитови логически функции

»А=28;% двоично 11100

»B=21;% двоично 10101

slide17

Изрази

Израз – състои се от операнди и операции; операндите могат да бъдат променливи, константи или функции.

  • Променливи
  • автоматично се създава променлива за всяко име и се отделя необходимата памет;
  • името на променливата се състои от букви, цифри, знак за подчертаване (_), като MATLAB използва първите 31 символа;
  • различава малки и главни букви.
  • »A=10% създава се 1x1 матрица с име А и един елемент със стойност 10
  • А =
  • 10
slide18

Числа – съхраняват се с дълга плаваща запетая (16 значещи цифри, област 10-308 до 10+308).

Начини за представяне:

  • десетично представяне с незадължителна десетична точка и водещ знак плюс;
  • научно представяне чрез буквата е, определяща 10 на степен;
  • имагинерните числа използват като суфикс iилиj.

10 -430.001

3.4632987 1.63е-20 1.43i

slide19

Комплексно число

  • модул (амплитуда)
  • m=abs(z)връща модула (амплитудата) на z
  • фазов ъгъл

theta=angle(z)връща фазовия ъгъл на zв радиани

Комплексно число в полярни координати

  • »z=3+j*4;
  • % Конвертира z в полярни координати
  • »A=abs(z)
  • A =
  • 5
  • » theta=angle(z)
  • theta =
  • 0.9273
  • % Обратно конвертира до z=x+jy
  • »z=A*exp(j*theta)
  • z =
  • 3.0000 + 4.0000i
slide20

Символи и коментари

  • Символна константа е последователност от
  • символи, заградени в апострофи ′.
  • Коментар започва със символа %.
  • »A=[′София ′;′Пловдив′]% матрица 2x7
  • А =
  • София
  • Пловдив
  • Оператори
  • аритметични оператори;
  • оператори за сравнение;
  • логически оператори.
slide21

4.1. Оператор :

a:b– резултатът е вектор-ред, съдържащ числата

отaдо bсъс стъпка 1.

a:c:b – резултатът е вектор-ред, съдържащ числата

отaдо bсъс стъпка c.

»1:10% стъпка 1

ans =

1 2 3 4 5 6 7 8 9 10

»100:-10:50% стъпка -10

ans =

100 90 80 70 60 50

slide22

Функции

  • аbsабсолютна стойност
  • sqrt корен квадратен
  • еxp е на степен
  • sin синус
  • clear изчиства променливите и функциите от
  • паметта
  • clear allизчиства всички променливи, глобални
  • променливи, функции и връзки
  • close затваря фигура
  • close allзатваря всички прозорци с фигури
  • help получаване на помощ
  • format установява изходния формат
  • Константи:
  • pi 3.1459265
  • i имагинерна единица -1
  • j имагинерна единица -1
  • »help elfun% елементарни математически функции
  • »help specfun% специални математически функции
  • »help elmat% матрични функции
slide23

»format short% мащабиран формат с фиксирана точка с 5 цифри

»format long% мащабиран формат с фиксирана точка с 15 цифри

»format hex% шестнадесетичен формат

»format rat% апроксимация чрез отношение от малки цели числа

slide24

Примери:

»s=(1+sqrt(10))/2

s =

2.0811

» n=1:5 % оператор : -> вектор-ред

n =

1 2 3 4 5

» n=n\'% оператор \' (транспониране) -> вектор-стълб

n =

1

2

3

4

5

» x=n.^2% оператор .^ (поелементно повдигане на степен)

x =

1

4

9

16

25

slide26

цвят_линиятип_линиятип_маркер

rчервен- плътна+

bсин-- тиретаo

gзелен-. тирета и точки*

wбял. от точки.

kчерен: двуеточияx

cсиньо зеленnone без линия

mпурпурен

yжълт

slide27

Пример: Изчертава синусоида в интервала .

»t=0:pi/100:2*pi;

»y=sin(t);

»plot(t,y)

» polar(t,y)

slide29

Пример: Изчертава синусоида.

»t=-pi:pi/100:pi;

»y=sin(t);

»plot(t,y);

»axis([-pi pi -1 1]);

»xlabel(\'-\pi \leq \itt \leq \pi\');

»ylabel(\'\itsin(t)\');

»title(\'Графика на функцията синус\');

»grid on

\piстойност на 

\leq≤

\itкурсивен шрифт

slide30

Пример: Изчертаваспрямо в интервала

.

» x=0.1:0.1:100;

» loglog(x,exp(x)),grid on

Пример: Изчертава спрямо в интервала

.

» x = 0:.1:10;

» semilogy(x,10.^x)

slide31

»y1=sin(t);

»y2=cos(t);

»subplot(211),plot(t,y1)

»subplot(212),plot(t,y2)

»subplot(111)

slide33

»t = 0:pi/100:10*pi;

» y1=sin(t);

»y2=cos(t);

»plot3(y1,y2,t);

»grid on;

slide35

Пример: Изчертава дискретен сигнал y[x].

» x=1:5;

»y=[1 2 3 4 5];

»stem(x,y)

»stem(x,y,\'filled\')

»stem(x,y,\'--\')

slide36

Пример: Изчертава дискретния във времето

сигнал x[n], зададен чрез следните стойности:

x[0]=1, x[1]=2, x[2]=1, x[3]=0, x[4]=-1, където x[n]=0

за всяко друго n. Нека векторът n да съдържа

стойностите на времето в интервал от -2 до 6sс

нарастване 1s.

» n=-2:6;

» x=[0 0 1 2 1 0 -1 0 0];

» stem(n,x,\'filled\')

» xlabel(\'n\')

» ylabel(\'x[n]\')

slide37

Пример: Непрекъснатият сигнал

се прилага към електронен ключ, който се

затваря за много кратко вереме на всеки Т

секунди. Изчертава модулирания сигнал –

функция на дискретните точки на времето ,

където n=...,-2,-1,0,1,2,..., а Т се нарича период на

модулация. Нека Т=1s, n[0,30] и x[-1,1].

» n=0:30;

» t=0:30;

» x=exp(-0.1*t).*sin(2/3*t);

» axis([0 30 -1 1])

» stem(n,x,\'filled\')

» xlabel(\'n\')

» ylabel(\'x[n]\')

slide38

Пример: Изчертава периодичния дискретен сигнал

    • за две стойности на : 1=/3 и 2=1,
  • където =0, А=1. Нека n[-10,30] и x[-1.5,1.5];
  • възстановете възможността за изчертаване върху
  • целия прозорец.
  • » n=-10:30;
  • » OMEGA1=pi/3;
  • » OMEGA2=1;
  • » x1=cos(OMEGA1*n);
  • » x2=cos(OMEGA2*n);
  • » subplot(211),stem(n,x1,\'filled\')
  • » xlabel(\'n\')
  • » ylabel(\'x[n]\')
  • » axis([-10 30 -1.5 1.5])
  • » subplot(212),stem(n,x2,\'filled\')
  • » xlabel(\'n\')
  • » ylabel(\'x[n]\')
  • » axis([-10 30 -1.5 1.5])
  • » subplot(111)
slide39

Матрици

  • Определения
  • Матрица е правоъгълен масив от числа.
  • Скалар е 1x1 матрица.
  • Вектор е матрица само с един ред или стълб.
  • Въвеждане на матрици чрез явен списък от елементи – матрицата се запомня автоматично в работното пространство.
  • » А=[16 3 2 13;5 10 11 8;9 6 7 12;4 15 14 1]
  • A =
  • 16 3 2 13
  • 5 10 11 8
  • 9 6 7 12
  • 4 15 14 1
slide40

Обръщение към матрица – чрез нейното име.

  • » А
  • A =
  • 16 3 2 13
  • 5 10 11 8
  • 9 6 7 12
  • 4 15 14 1
  • Сума от елементите във всеки стълб – резултатът е вектор-ред и се запазва в променливата ans.
  • »sum(А)
  • ans =
  • 34 34 34 34
slide41

Сума от елементите на всеки ред – резултатът е вектор-стълб.

  • Алгоритъм:
  • транспониране на матрицата (операция ′);
  • изчисляване на сумите по стълбове;
  • транспониране на резултата.
  • » А′
  • ans =
  • 16 5 9 4
  • 3 10 6 15
  • 2 11 7 14
  • 13 8 12 1
  • »sum(А′)′
  • ans =
  • 34
  • 34
  • 34
  • 34
slide42

Сума от елементите от главния диагонал.

  • »diag(А)
  • ans =
  • 16
  • 10
  • 7
  • 1
  • »sum(diag(А))
  • ans =
  • 34
  • Сума от елементите от второстепенния диагонал.
  • »sum(diag(fliplr(А)))
  • ans =
  • 34
  • Функциятаfliplrобръща матрицата отляво надясно.
slide43

Индекси – елементът в редiи стълбj се означава чрез A(i,j).

  • а) достъп до елемент на матрицата
  • » А(4,2)
  • ans =
  • 15
  • б) сума от елементите в 4-тия стълб
  • » А(1,4)+A(2,4)+A(3,4)+A(4,4)
  • ans =
  • 34
  • в) достъп до елемент на масив чрез един индекс –масивът се съхранява по стълбове като един дълъг вектор-стълб; напр. достъп до елемент A(4,2):
  • » А(8)
  • ans =
  • 15
slide44

Използване на оператор :

  • »sum(A(1:4,4))% сума от 4-тия стълб
  • ans =
  • 34
  • »sum(A(:,end))% сума от последния стълб
  • ans =
  • 34
slide45

Обратна матрица – функция inv

  • »A=pascal(3)
  • A =
  • 1 1 1
  • 1 2 3
  • 1 3 6
  • »inv(A)
  • ans =
  • 3 -3 1
  • -3 5 -2
  • 1 -2 1
slide46

Специални матрици

  • zeros всички елементи са 0;
  • ones всички елементи са 1;
  • randправилно разпределени случайни числа;
  • randnнормално разпределени случайни числа;
  • magicмагически квадрат от степен N е NxN
  • матрица с елементи естествени числа от 1 до
  • N2 така, че сумата от числата във всеки
  • хоризонтал, вертикал или главен диагонал е
  • една и съща, равна на N(N2+1)/2;
  • pascal матрица на Паскал от степен N: симетрична
  • положително дефинирана матрица с
  • целочислени стойности, получени от
  • триъгълника на Паскал (първото и
  • последното число във всеки ред е 1,
  • а другите се получават като сума от двете
  • числа над него).
slide47

»o=ones(2,4)

o =

1 1 1 1

1 1 1 1

»A=magic(3)

A =

8 1 6

3 5 7

4 9 2

»A=pascal(3)

A =

1 1 1

1 2 3

1 3 6

slide48

Слепване на матрици

  • [] оператор за слепване
  • »A=magic(3)
  • A =
  • 8 1 6
  • 3 5 7
  • 4 9 2
  • » B=[A A+5;A+10 A+20]
  • B =
  • 8 1 6 13 6 11
  • 3 5 7 8 10 12
  • 4 9 2 9 14 7
  • 18 11 16 28 21 26
  • 13 15 17 23 25 27
  • 14 19 12 24 29 22
slide49

Изтриване на редове и стълбове

  • [] двойка квадратни скоби
  • » A=magic(3)
  • A =
  • 8 1 6
  • 3 5 7
  • 4 9 2
  • »A(2,:)=[]% изтрива втори ред от А
  • A =
  • 8 1 6
  • 4 9 2
  • » A(:,2)=[]% изтрива втори стълб от А
  • A =
  • 8 6
  • 4 2
slide50

Изграждане на таблици

  • » n=(0:9)\';% вектор-стълб
  • » pows = [n n.^2]% таблица от квадратите на 2
  • pows =
  • 0 0
  • 1 1
  • 2 4
  • 3 9
  • 4 16
  • 5 25
  • 6 36
  • 7 49
  • 8 64
  • 9 81
slide51

Вход/изход на информация

  • въвеждане на информация в диалогов режим – чрез функция input;
  • » A=[1 2 3 4 5];
  • » A(6)=input(\'Enter A[6]=\')
  • Enter A[6]=6
  • A =
  • 1 2 3 4 5 6
  • »name=input(\'Ime=\',\'s\')
  • Ime=Ivan
  • name =
  • Ivan
slide52

извеждане на информация – чрез функция disp;

  • » disp(A(6))
  • 6
  • »disp(name)
  • Ivan
slide53

Закони в електрическите вериги

  • Първи закон на Кирхоф – сумата от токовете, излизащи от възел, е равна на нула.
  • Втори закон на Кирхов – сумата от напрежителните падове в клоните на затворен контур е равна на сумата от електродвижещите сили на източниците в този контур.

Уравнение на възловите напрежения

[Y][U]=[I][Y] –матрица на проводимостите,

[U]=[Y]-1[I][U]– вектор на напрежения, [I]– вектор на токове

» U=Y\I % ляво деление или » U=inv(Y)*I

Уравнение на контурните токове

[Z][I]=[U][Z] – матрица на съпротивленията

[I]=[Z]-1[U]

» I=Z\U % ляво деление или » I=inv(Z)*U

slide54

Пример: Изчисление на токапрез резистора RB и мощността на постояннотоковия източник на напрежение по метод на контурните токове.

Уравнение на контурните токове

Z – матрица на съпротивленията

I– вектор на контурните токове

U – вектор на напреженията

slide55

»% Уравнение на контурните токове ZI=U

»% Матрица на съпротивленията Z

»Z=[40 -10 -30;-10 30 -5;-30 -5 65];

»% Вектор на напреженията U

»U = [10;0;0];

»% Вектор на контурните токове I

»I=Z\U % или I=inv(Z)*U

»IRB=I(3)-I(2)% ток през съпротивлението RB

»P=I(1)*10% мощност на захранващия източник

I =

0.4753

0.1975

0.2346

IRB =

0.0370

P =

4.7531

slide56

Файлова система MATLAB

  • Видове файлове:
  • .mat– двоичен файл, в който се записваработната сесия на системата.
  • Запазване съдържанието на работнатасесия във
  • файл име.mat
  • »save име
  • Зареждане на работната сесия от файл име.mat
  • »load име
slide57

.m– текстов файл, който съдържа функции и скриптове.

  • файл-скрипт – съдържа команди на MATLAB:
    • обработва съществуващи данни в работното пространство или създава нови данни;
    • създадените променливи остават в работното пространство;
  • файл-функция – има входни аргументи и връща изходни резултати:
    • името на m-файла и името на функцията съвпадат;
    • обработва променливи в тяхното собствено работно пространство, различно от основното.
slide58

Създаване на .m файл от командния прозорец

    • FileNew M-file
  • Запазване на .m файл от командния прозорец
    • FileSave As…
  • Промяна на директорията за съхранение на .m
  • файловете
  • FileSet Path
slide59

Пример:

Файл-скрипт my.m

FileNew M-file

A=[…

16.0 3.0 2.0 13.0

5.0 10.0 11.0 8.0

9.0 6.0 7.0 12.0

4.0 15.0 14.0 1.0];

FileSave As… my

Скриптът създава в работното пространство на MATLABпроменлива А, която съдържа матрица.

  • Изпълнение на .m файл
  • в работното пространство
  • »my
  • »A
  • A =
  • 16 3 2 13
  • 5 10 11 8
  • 9 6 7 12
  • 4 15 14 1

Операторътmy чете от файла my.m и използвасъздадената променлива А, която съдържа

матрицата.

slide60

Пример:

Файл-функция my.m

FileNew M-file

function y=my()

y=[...

16.0 3.0 2.0 13.0

5.0 10.0 11.0 8.0

9.0 6.0 7.0 12.0

4.0 15.0 14.0 1.0];

FileSave As… my

FileCompile

Функцията е с име my, няма входни параметри и връща матрица.

Изпълнение на .m файл

– в работното пространство

»A=my

A =

16 3 2 13

5 10 11 8

9 6 7 12

4 15 14 1

Извиква се функцията my и върнатият резултат се присвоява на променливата А, която получава матрицата.

slide61

Глобални променливи

  • global X
  • X– глобална променлива;
    • ако Xсе дефинира в няколко функции и в работното пространство като global, тогава те споделят единствено копие на X;
    • инициализира се с празна матрица.
slide62

Пример: Изследване на влиянието на фазата φ

върху напрежението на независимия източник на

напрежение .

Файл-функция vcos.m:

function u = vcos(t)

global FI % фаза

uA=0.33E-3; % амплитуда=0.33mV

f=50; % честота=50HzFigure No. 1

u=uA*cos(2*pi*f*t+FI);

Изпълнение

» figure(1);

» t=0:0.001:0.2;

»global FI

» FI=0;

»u=vcos(t);

»plot(t,u);

» hold on;

» FI=45;

»u=vcos(t);

»plot(t,u);

slide63

Управляващи структури

  • Условен операторif
    • ifизраз
    • оператори
    • elseifизраз
    • оператори
    • elseизраз
    • оператори
    • end
  • Условен операторswitch
    • switchswitch_израз
    • casecase_израз,
    • оператор,…,оператор
    • case {case_израз,...,case_израз}
    • оператор,…,оператор
    • ...
    • otherwise
    • оператор,…,оператор
    • end
slide64

3. Оператор за цикъл for

forпроменлива=старт:нарастване:край,

оператори

end

4. Оператор за цикъл while

whileизраз

оператори

end

5. Оператор за прекъсване на цикъл break –

прекъсва изпълнението на whileили for.

slide65

»for k=1:10,

x(k)=cos(k);

еnd

»x

x =

0.5403 -0.4161 -0.9900 -0.6536 0.2837 0.9602 0.7539 -0.1455 -0.9111 -0.8391

или

» k=1:10;

» x=cos(k);

»x

»a=2;

»b=5;

»if(a>b) c=a;

else c=b;

end

»c

c =

5

slide66

Пример: 3-битов А/D конвертор

Преобразува аналоговия

сигнал xв цифров сигнал y

съгласно уравнението:

Файл-функция AD3.m:

function y=AD3(x)

if x<-2.5y=0;

elseif x<-1.5y=1;

elseif x<-0.5y=2;

elseif x<0.5y=3;

elseif x<1.5y=4;

elseif x<2.5y=5;

elseif x<3.5y=6;

else

y=7;

end

Изпълнение

»y1=AD3(-1.25)

y1 =

2

»y2=AD3(2.57)

y2 =

6

»y3=AD3(6.0)

y3 =

7

slide71

Нелинейни числени методи

I. Числено решаване на обикновени диференциални уравнения

Всяко обикновено диференциално уравнение от n-ти ред може да се запише като система от n уравнения от първи ред така, че от лявата страна да се намират само производните, а от дясната страна производните да не участват:

ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb – всички функции решават системата от обикновени диференциални уравнения y\'=f(t,y);

ode15s, ode23s, ode23tи ode23tb решават системи от вида my\'=f(t,y), като от последните с изключение на ode23s решават уравненията m(t)y\'=f(t,y).

slide72

[t,y]=ode_function(\'f\',tspan,yo)

[t,y]=ode_function(\'f\',tspan,yo,options)

[t,y]=ode_function(\'f\',tspan,yo,options,p1,p2,...)

fе името на .m файла, който съдържа дясната страна на уравненията – функцията f(t,y)и връща вектор-стълб;

има вида:

function dydt = f(t,y)

където tе скалар, dydtиy са вектор-стълбове.

tspanе вектор, определящ интервала [t0 tfinal];

yo е вектор, определя началните условия;

options е незадължителен параметър, който се създава чрез функцията odeset;

p1,p2,...са незадължителни параметри, които се предават на f;

[t,y]е матрица на решението.

slide73

Пример: Уравнение на Ван дер Пол

с начални условия:

Еквивалентно е на система от диференциални уравнения от 1 ред:

с начални условия:

slide74

Файл-фукцияvdp.m:

function dy=vdp(t,y) % u=1

dy=zeros(2,1);

dy(1)=y(2);

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

% t=0 до 20s

t0=0; tfinal=20;

y0=[2; 0]; % начални условия

[t,y]=ode45(\'vdp\',[t0 tfinal],y0);

plot(t,y(:,1),\'b\',t,y(:,2),\'r\')

Файл-фукцияvdp.m:

function dy=vdp(t,y,options,u)

dy=zeros(2,1);

dy(1)=y(2);

dy(2)=u*(1-y(1)^2)*y(2)-y(1);

% t=0 до 20s

t0=0; tfinal=20;

y0=[2; 0]; % начални условия

[t,y]=ode45(\'vdp\',[t0 tfinal],y0,[],5);

plot(t,y(:,1),\'b\',t,y(:,2),\'r\')

slide75

Анализ на преходни процеси

  • RC верига
  • а) разреждане на кондензатор
  • –времеконстанта
  • Ако кондензаторът е бил
  • зареден до напрежение ,
  • аналитичното решение е:
slide76

б)зареждане на кондензатор

Ако кондензаторът не е бил

зареден, т.е. ,

аналитичното решение е:

slide77

Пример: В момента t=0 ключът се затваря и RC

веригата се свързва към източник на ток. Да се

изчисли напрежението върху кондензатора, ако

R=10, C=10F и е приложен постоянен източник

на ток I=1A.

slide78

Файл-функции – зареждане на кондензатор

  • RC1diff.m – диференциално уравнение
  • function duc=RC1diff(t,uc,options,I,R,C)
  • tau=R*C;
  • duc(1)=-uc(1)/tau+I/C;
  • RC1.m – аналитично решение
  • function u=RC1(R,C,I,t)
  • tau=R*C;
  • u=I*R*(1-exp(-t/tau))
slide79

% RC верига – зареждане на кондензатор

t0=0; % начално време

tfinal=0.003; % крайно време

uc0=0; % начално условие uc(t=0)=0

I=1;C=10e-6;R=10;

[t1,uc1]=ode45(\'RC1diff\',[t0 tfinal],[uc0],[],I,R,C); % числено решение

u1=RC1(R,C,I,t1); % аналитично решение

% Графика на uc=f(t)

subplot(121),plot(t1,uc1)

axis([0 0.003 0 12])

xlabel(\'t[s]\'),ylabel(\'uC[V]\')

subplot(122),plot(t1,u1)

axis([0 0.003 0 12])

xlabel(\'t[s]\'),ylabel(\'uC[V]\')

slide80

Пример: Входното напрежение на RC веригата е

правоъгълен импулс с амплитуда 5V и ширина

0.5s. Да се изчисли напрежението върху

кондензатора за две стойности на R=2.5К и

R=10К, ако C=10F. Да се начертае графиката на

напрежението на кондензатора в зависимост от

времето.

slide81

Файл-функции

  • Разреждане на кондензатор
  • RCDdiff.m – диференциално уравнение
  • function duc=RCDdiff(t,uc,options,Um,R,C)
  • tau=R*C;
  • duc(1)=-uc(1)/tau;
  • RCD.m – числено решение
  • function u=RCD(R,C,Um,t)
  • tau=R*C;
  • u=Um*exp(-t/tau)
  • Зареждане на кондензатор
  • RCdiff.m– диференциално уравнение
  • function duc=RCdiff(t,uc,options,E,R,C)
  • tau=R*C;
  • duc(1)=-uc(1)/tau+E/tau;
  • RC.m– числено решение
  • function u=RC(R,C,E,t)
  • tau=R*C;
  • u=E*(1-exp(-t/tau))
slide82

% RC верига

t0=0; % начално време

tfinal=0.5; % крайно време

uc0=0; % начално условие uc(t=0)=0

E=5;% амплитуда на правоъгълния импулс

C=10e-6;

R=2.5e3;

% Числено решение

[t11,uc11]=ode45(\'RCdiff\',[t0 tfinal],[uc0],[],E,R,C); % зареждане на C

Um=uc11(end);% начално условие

[t12,uc12]=ode45(\'RCDdiff\',[t0 tfinal],[Um],[],Um,R,C); % разреждане на C

% Аналитично решение

u11=RC(R,C,E,t11); % зареждане на C

Um=u11(end); % начално условие

u12=RCD(R,C,Um,t12); % разреждане на C

slide83

R=10e3;

% Числено решение

[t21,uc21]=ode45(\'RCdiff\',[t0 tfinal],[uc0],[],E,R,C);% зареждане на C

Um=uc21(end); % начално условие

[t22,uc22]=ode45(\'RCDdiff\',[t0 tfinal],[Um],[],Um,R,C);% разреждане на C

% Аналитично решение

u21=RC(R,C,E,t21);% зареждане на C

Um=u21(end);% начално условие

u22=RCD(R,C,Um,t22);% разреждане на C

% Графика на uc=f(t) – числено решение

subplot(211),plot(t11,uc11,\'b\',t12+0.5,uc12,\'b\',t21,uc21,\'r\',t22+0.5,uc22,\'r\')

axis([0 1 0 6]),xlabel(\'t[s]\'),ylabel(\'uC[V]\')

text(0.4, 2.0, \'R=2.5K\'),text(0.6, 2.0, \'R=10K\')

% Графика на uc=f(t) – аналитично решение

subplot(212),plot(t11,u11,\'b\',t12+0.5,u12,\'b\',t21,u21,\'r\',t22+0.5,u22,\'r\')

axis([0 1 0 6]),xlabel(\'t[s]\'),ylabel(\'uC[V]\')

text(0.4, 2.0, \'R=2.5K\'),text(0.6, 2.0, \'R=10K\')

slide84

RL верига

  • а) разсейване на енергия в бобина
  • –време константа
  • Ако е началната стойност
  • на тока през бобината,
  • аналитичното решение е:
slide85

б) натрупване на енергия в бобина

Ако началната стойност

на тока през бобината е 0,

, решението е:

slide86

Пример: За схемата токът през бобината е 0. В

момента t=0 ключът се затваря към позиция 1,

където остава 1s. След това закъснение от 1s

ключът се премества от позиция 1 в позиция 2,

където остава неограничено време. Напрежението

на постоянотоковия източник е E=40V.

Елементите в схемата са: R1=50Ω, R2=50Ω,

R3=150Ω, L=200H.Да се начертае графиката на

тока през бобината спрямо времето.

slide87

Файл-функции

1. Разсейване на енергията в бобина

RLDdiff.m – диференциално уравнение

function diL=RLDdiff(t,iL,options,Im,R,L)

tau=L/R;

diL(1)=-iL(1)/tau;

RLD.m – числено решение

functioni=RLD(R,L,Im,t)

tau=L/R;

i=Im*exp(-t/tau)

2. Натрупване на енергия в бобина

RLdiff.m – диференциално уравнение

function diL=RLdiff(t,iL,options,E,R,L)

tau=L/R;

diL(1)=-iL(1)/tau+E/L;

RL.m– числено решение

function i=RL(R,L,E,t)

tau=L/R;

i=E/R*(1-exp(-t/tau))

slide88

% RL верига

R1=50;R2=50;R3=150;L=200;E=40;

R=R1+R2; % ключът е в позиция 1 – натрупване на енергия в L

t0=0; % начално време

tfinal=1; % крайно време

iL0=0; % начално условие iL(t=0)=0

[t1,iL1]=ode45(\'RLdiff\',[t0 tfinal],[iL0],[],E,R,L); % числено решение

i1=RL(R,L,E,t1);% аналитично решение

R=R2+R3;% ключът е в позиция 2 – разсейване на енергия в L

t0=0;% начално време

tfinal=5; % крайно време

Im=iL1(end);% начално условие

[t2,iL2]=ode45(\'RLDdiff\',[t0 tfinal],[Im],[],Im,R,L);% числено решение

Im=i1(end);% начално условие

i2=RLD(R,L,Im,t2);% аналитично решение

% Графика на iL=f(t) – числено решение

subplot(121),plot(t1,iL1,\'r\',t2+1,iL2,\'r\')

axis([0 6 0 0.18]),xlabel(\'t[s]\'),ylabel(\'i[A]\'),title(\'RL\')

% Графика на iL=f(t) – аналитично решение

subplot(122),plot(t1,i1,\'b\',t2+1,i2,\'b\')

axis([0 6 0 0.18]),xlabel(\'t[s]\'),ylabel(\'i[A]\'),title(\'RL\')

slide90

Пример: В момента t=0 ключът се затваря и RLC

веригата се свързва към източник на напрежение.

Да се изчисли напрежението върху

кондензатора, ако R=10, L=10mH, C=100F и е

приложен постоянен източник на напрежение

U=50V.

slide91

Файл-функция RLC.m – RLC верига

function dy=RLC(t,y,options,u,R,L,C)

dy=zeros(2,1);

a=1/L;b=R/L;c=1/C;

dy(1)=a*u-b*y(1)-a*y(2);

dy(2)=c*y(1);

% RLC верига

U=50;R=10;L=10e-3;C=100e-6;

t0=0;% начално време

tfinal=30e-3;% крайно време

iL0=0;% начално условие iL(t=0)=0

uC0=0; % начално условие uC(t=0)=0

[t,x]=ode45(\'RLC\',[t0 tfinal],[iL0 uC0],[],U,R,L,C); % числено решение

plot(t,x(:,1),\'b\',t,x(:,2),\'r\')

axis([0 30e-3 -10 60]),xlabel(\'t[s]\')

text(0.015, 2, \'iL(t)\'),text(0.015, 52, \'uC(t)\')

slide92

II. Числено интегриране

Квадратура е числен метод за апроксимация на площта под графиката на функцията f(x), дефинирана върху интервала [a,b], т.е. определен интеграл:

quad(\'f\',a,b) – изчислява определен интеграл от f(x) от a до b с относителна грешка 1е-3, като използва адаптивното правило на Simpson;

\'f\' е символен низ, съдържащ името на функцията;

връща вектор от изходните стойности, ако е даден вектор с входни стойности;

връща q=inf, ако е достигнато крайно ниво на рекурсия.

slide93

quad(\'f\',a,b,tol) – интегрира, докато се достигне относителна грешка tol; за определяне на относителна и абсолютна грешка се използва tol=[относителна_грешка, абсолютна грешка].

quad(\'f\',a,b,tol,trace) – интегрира до относителна грешка tol и при ненулева стойност на trace изчертава графика, показваща процеса на интегрирането.

quad(\'f\',a,b,tol,trace,p1,p2,...) – позволява директно предаване на параметрите p1,p2,... към функцията f(x,p1,p2,...); за да се използват подразбиращите се стойности за tol иtrace, те се предават в празна матрица [ ].

quadработи с нелинейни функции f(x,p1,p2,...) на скаларна променлива, т.е. една функция работи с друга функция; нелинейната функция fсе представя чрез .m файл, чието име съвпада с името на функцията.

slide94

Интегриране на .

» q=quad(\'sin\',0,pi,[],1)

q =

2.0000

slide95

Интегриране на .

  • »q=quad(\'sin\',0,2*pi,[],1)
  • q =
  • 0
slide96

Апроксимация на числото чрез

Файл-функцияp.m:

function y=p(x)

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

»q=quad(\'p\',0,1);

» q

q =

3.1416

slide97

Полиноми

  • Нули на полином
  • r=roots(p)
  • p–вектор-ред, съдържа коефициентите на полинома в намаляващ ред
  • r –вектор-стълб, съдържа корените на полинома p
  • Пример:
  • » p=[1 -6 -72 -27];
  • »r=roots(p)
  • r =
  • 12.1229
  • -5.7345
  • -0.3884
slide98

Коефициенти на полином

  • p=poly(r)
  • r–вектор-стълб, съдържа корените на полином
  • p –вектор-ред, съдържа коефициентите на полинома в намаляващ ред
  • Пример:Корените на полином са 12.1229, -5.7345
  • и -0.3884
  • » r=[12.1229 -5.7345 -0.3884]\';
  • » p=poly(r)
  • p =
  • 1.0000 -6.0000 -72.0000 -27.0011
slide99

Стойност на полином

  • y=polyval(p,s)
  • p –вектор-редс дължина n+1, съдържа коефициентите на полинома в намаляващ ред
  • s– вектор-ред, съдържа стойности, за които полиномът ще се изчислява
  • y– вектор-ред, съдържа изчислените стойности на полинома
  • Пример:Стойности на полинома при s=1, 2 и 3
  • »p=[1 -6 -72 -27];
  • » s=[1 2 3];
  • » y=polyval(p,s)
  • y =
  • -104 -187 -270
slide100

Апроксимиране с полином

  • p=polyfit(x,y,n)
  • x,y – данните, които се апроксимират
  • n – степен на полинома
  • p –вектор-редс дължина n+1, съдържа коефициентите на полинома в намаляващ ред, който апроксимира p(x(i))към y(i)
slide101

Пример:Апроксимиране с полином от степен 6

на измерени данни

»t=0:0.1:2.5;

» i=[0 0.1125 0.2227 0.3286 0.4284 0.5205 0.6039 ...

0.6778 0.7421 0.7969 0.8427 0.8802 0.9103 0.9340 ...

0.9523 0.9661 0.9763 0.9838 0.9891 0.9928 0.9953 ...

0.9970 0.9981 0.9989 0.9993 0.9996];

» p=polyfit(t,i,6)

» plot(t,i,\'ro\',t,polyval(p,t))

Резултати:

p =

0.0084 -0.0985 0.4222 -0.7440 0.1475 1.1064 0.0005

slide102

Променливотоков анализ

  • Променливотокова мощност
  • Ако и са периодични
  • сигнали с период T:

Z - импеданс

– ефективна стойност на напрежението

– ефективна стойност на тока

– средна мощност

– фактор на мощността

slide103

Ако и са синусоидални:

то:

– реактивна мощност

– комплексна мощност

– кръгова честота

– преобразуване на ъгъл от градуси в радиани

slide104

Пример: Да се изчислят средната мощност, ефективните стойности на напрежението и тока, фактора на мощността (аналитично и числено), ако и .

Файл-функции

voltage.m

function u2=voltage(t)

u2=(10*cos(120*pi*t+60*pi/180)).^2;

current.m

function i2=current(t)

i2=(6*cos(120*pi*t+30*pi/180)).^2;

power_average.m

function p=power_average(t)

i=6*cos(120*pi*t+30.0*pi/180);

u=10*cos(120*pi*t+60.0*pi/180);

p=i.*u;

slide105

w=120*pi;% кръгова честота

T=2*pi/w;% период на синусоидата

% Числено решение

a=0; % долна граница на интеграла

b=T; % горна граница на интеграла

u=quad(\'voltage\',a,b);

Ueff=sqrt(u/T);

i=quad(\'current\',a,b);

Ieff=sqrt(i/T);

p=quad(\'power_average\',a,b);

P=p/T;

pf=P/(Ueff*Ieff);

% Аналитично решение

Ueffa=10/sqrt(2);

Ieffa=6/sqrt(2);

Pa=Ueffa*Ieffa*cos(30*pi/180);

pfa=cos(30*pi/180);

% Извеждане на резултатите

disp(\'Ueff\'),disp(Ueff),disp(Ueffa);

disp(\'Ieff\'),disp(Ieff), disp(Ieffa);

disp(\'P\'), disp(P),disp(Pa);

disp(\'pf\'),disp(pf),disp(pfa);

Резултати:

Ueff

7.0711

7.0711

Ieff

4.2426

4.2426

P

25.9808

25.9808

pf

0.8660

0.8660

slide106

Комплексна форма на напреженията и токовете

  • Ако , то ,
  • – комплексно напрежение.
  • Ако е напълно синусоидално,

– амплитуда

– начална фаза

– комплексна амплитуда на напрежението

– комплексна честота

slide107

Предавателна функция

Комплексно честотно представяне

–предавателна

функция

–разлагане на множители

– константа

–нули

–полюси

–дробни части

slide108

[r,p,k]=residue(num,den)

num– вектор-ред, съдържа коефициентите на

полинома-числител в намаляващ ред

den – вектор-ред, съдържа коефициентите на

полинома-знаменател в намаляващ ред

r– вектор-стълб, съдържа остатъците от

частното на numиden

p– вектор-стълб, съдържа полюсите

k– вектор-ред, съдържа директните изрази

slide109

Пример: За RLC веригата намерете:

  • предавателната функция ;
  • нулите и полюсите на ;
  • , ако .
  • предавателна функция

=> комплексна честота

  • комплексна амплитуда на входното напрежение
  • комплексна амплитуда на изходното напрежение
slide110

R=10;L=10e-3;C=100e-6;

% Разлагане на множители на предавателната функция

num=[R/L 0];

den=[1 R/L 1/(L*C)];

z=roots(num);% нули

p=roots(den);% полюси

disp(\'z\'),disp(z);% изобразява изчислените величини

disp(\'p\'),disp(p);

[r,p,k]=residue(num,den);% разлагане на дроби на предавателната disp(\'r\'),disp(r);% функция

disp(\'p\'),disp(p);

disp(\'k\'),disp(k);

% Стойност на предавателната функция при дадена комплексна честота

s=-3+j*2;% комплексна честота

n=polyval(num,s);

d=polyval(den,s);

% Изходно напрежение

Uout=10*exp(j*40*pi/180)*n/d;% комплексна амплитуда

Um=abs(Uout);% амплитуда

fi=angle(Uout)*180/pi;% начална фаза в градуси

disp(\'Um\'), disp(Um);

disp(\'fi\'),disp(fi);

slide111

Резултати:

z

0

p

1.0e+002 *

-5.0000 + 8.6603i

-5.0000 - 8.6603i

r

1.0e+002 *

5.0000 + 2.8868i

5.0000 - 2.8868i

p

1.0e+002 *

-5.0000 + 8.6603i

-5.0000 - 8.6603i

k

Um

0.0362

fi

-173.8043

slide112

Честотен анализ

  • Честотна характеристика – отговорът на схемата при синусоидален входен сигнал
  • – амплитудно-честотна характеристика
  • – фазово-честотна характеристика

Пример: За RLC веригата начертайте амплитудно-

честотната и фазово-честотната характеристика

за две стойности на съпротивлението: R=10Ωи

R=0.5Ω.

slide113

Файл-функция transfer.m – предавателна функция

function h=transfer(w,R,L,C)

h=(j*w*(R/L))./((j*w).^2+j*w*(R/L)+1/(R*C));

L=10e-3;C=100e-6;

w=[0.1:0.1:10^4];

R=10;

H1=transfer(w,R,L,C);

R=0.5;

H2=transfer(w,R,L,C);

f=w/(2*pi);

% Графика на амплитудно-честотните характеристики на RLC верига

subplot(221),loglog(f,abs(H1),\'b\'),grid on,ylabel(\'|H(j\omega)\'),xlabel(\'f[Hz]\');

subplot(222),loglog(f,abs(H2),\'r\'),grid on,ylabel(\'|H(j\omega)\'),xlabel(\'f[Hz]\');

% Графика на фазово-честотните характеристики на RLC верига

subplot(223),semilogx(f,angle(H1)*180/pi,\'b\'),grid on;

ylabel(\'\angleH(j\omega)(\circ)\'),xlabel(\'f[Hz]\');

subplot(224),semilogx(f,angle(H2)*180/pi,\'r\'),grid on;

ylabel(\'\angleH(j\omega)(\circ)\'),xlabel(\'f[Hz]\'); ,

slide114

При намаляване стойността на R от 10 до 0.5Ω лентата на пропускане на амплитудно-честотната характеристика намалява и качественият фактор на схемата нараства.

ad