Интерактивна система за технически изчисления,...
DESCRIPTION
Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение математически изчисления; разработка на алгоритми; моделиране, симулиране и създаване на прототипи; представяне, визуализиране и анализ на данни; графика; - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/1.jpg)
Интерактивна система за технически изчисления, визуализиране и
програмиране (MATLAB)
Приложение
– математически изчисления;– разработка на алгоритми;– моделиране, симулиране и създаване на прототипи;– представяне, визуализиране и анализ на данни;– графика;– разработка на приложения с графичен потребителски интерфейс.
Включва специални приложения (toolboxes) за обработка на сигнали, системи за управление, невронни мрежи, симулация и др.
![Page 2: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/2.jpg)
Характеристики на системата MATLAB
1. MATLAB език – език от високо ниво за обработка на матрици;включва: оператори, функции, структури данни,вход/изход, обектно-ориентирано програмиране;
2. Работна среда на MATLAB – средства за управление на променливите в работната среда, внасяне и изнасяне на данни; разработка и управление на М-файлове, MATLAB приложения.
3. Управление на графика – двумерна и тримерна визуализация, обработка на изображения, анимация и представяне на графики; изграждане на графичен потребителски интерфейс.
![Page 3: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/3.jpg)
4. Библиотека с математически функции – сума, тригонометрични функции, комплексна аритметика, обръщане на матрица, Беселови функции, бързи трансформации на Фурие и др.
5. Интерфейс за приложни програми – динамично свързване на модули, написани на C, C++, Java или Fortran с модули от MATLAB.
![Page 4: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/4.jpg)
Стартиране на MATLAB
Start Programs MATLAB 6.5
![Page 5: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/5.jpg)
Команден прозорец за въвеждане на променливи и изпълнение на функции и М-файлове
История на командите – за наблюдение изпълнението на архивни команди
Текуща директория – за управление на директории и файлове
Работно пространство – за изобразяване на променливите
Помощ
Старт – за изобразяване на документация, демо програми и специални приложения
![Page 6: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/6.jpg)
MATLAB като мощен калкулатор
» указва въвеждане на команда
; блокира извеждане на резултата
ans променлива със стойността на резултата
= присвояване
fun() вградена функция
... пренасяне на израз на нов ред
![Page 7: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/7.jpg)
» 2+3ans = 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 матрица от целите числа 1N2 с еднакви суми във всеки ред, стълб и диагонали, където N>0 без N=2.
![Page 8: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/8.jpg)
Типове данни
15 типa данни (или класове)
Всеки тип данни е във формата на масив.
Двумерният масив се нарича матрица.
Едномерният масив се нарича вектор.
Матрица 1x1 се нарича скалар.
![Page 9: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/9.jpg)
Тип данна Пример Описание
logical magic(3)>10 Логически масив от логически елементи 1 (истина) и 0 (лъжа).
char 'Java класове' Символен масив (всеки символ е 16 бита)
int8, uint8, int16, uint16, int32, uint32, int64, uint64
uint8(magic(3)) Масиви от цели числа със и без знак с размер 8, 16, 32 и 64 бита. Не се използват в математически операции, а за ефективно разпределение на паметта.
single 3*10^38 Масив от реални числа с единична точност. Не се използва в математически операции.
![Page 10: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/10.jpg)
double 3*10^300
5+6i
Масив от реални числа с двойна точност. Най-често използваният тип в MATLAB.
cell 15 'Java' Масив от елементи с различни размери, които съдържат други масиви
structure stud.fn=123456;
stud.name='Иван';
Масиви от структури с елементи, които съдържат други масиви.
@име_функция fhandle = @sin;
feval(fhandle,0.5)
Манипулатор на функция, който обикновено се предава като аргумент на функция и се оценява чрез функцията feval.
потребителски клас
inline('sin(x)') Създава се чрез използване на функциите на MATLAB като наследници на класа structure.
Java клас javax.swing.JFrame Използват се Java класове.
![Page 11: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/11.jpg)
Оператори
1. Аритметични операториОператор Описание Оператор Описание
+ Събиране * Умножение на матрици
- Изваждане / Дясно деление на матрици
.* Умножение \ Ляво деление на матрици
./ Дясно деление ^ Повдигане на степен на
.\ Ляво деление матрици
+ Унарен плюс
- Унарен минус
: Двуеточие
.^ Повдигане на степен
.' Транспониране
' Комплексно спрегнато транспониране
![Page 12: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/12.jpg)
» A=[7 2;4 3];» B=[1 4;6 7];
» A+Bans = 8 6 10 10
» A*Bans = 19 42 22 37
% поелементно» A.*Bans = 7 8 24 21
» A.^Bans = 7 16 4096 2187
% ляво деление» A\Bans = -0.6923 -0.1538 2.9231 2.5385» inv(A)*Bans = -0.6923 -0.1538 2.9231 2.5385
% дясно деление» B/Aans = -1.0000 2.0000 -0.7692 2.8462» B*inv(A)ans = -1.0000 2.0000 -0.7692 2.8462
Функция inv(A) – обръща матрицата А.
![Page 13: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/13.jpg)
2. Оператори за сравнение
Оператор Описание Оператор
<
<=
>
По-малко
По-малко или равно
По-голямо
>=
==
~=
По-голямо или равно
Равно на
Различно от
Пример: А==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==Bans = 1 0 0 0 1 0 0 0 1
974
852
1051
,
987
654
321
BA
![Page 14: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/14.jpg)
3. Логически оператори
3.1. Поелементни логически оператори и функции
» А=[0 1 1 0 1];» B=[1 1 0 0 1];
Опе-ратор
Описание Пример Еквивалентна функция
& Връща 1, ако елементите и в двата масива са истина () и 0 за другите елементи.
A & B = 01001 and(A,B)
| Връща 1, ако елементите в единия масив или елементите в двата масива са истина (0) и 0 за другите елементи.
A | B = 11101 or(A,B)
~ Допълва всеки елемент на входния масив.
~A = 10010 not(A)
xor Връща 1, ако елементът само в единия масив е истина (0) и 0 за другите елементи.
xor(A,B)=10100
![Page 15: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/15.jpg)
3.2. Побитови логически функции
» А=28; % двоично 11100» B=21; % двоично 10101
Функция Описание Пример
bitand Връща побитово И на два неотрицателни целочислени аргумента.
bitand(A,B)=20 (двоично 10100)
bitor Връща побитово ИЛИ на два неотрицателни целочислени аргумента.
bitor(A,B)=29 (двоично 11101)
bitcmp Връща побитово допълване като n-битово число, където n е вторият входен аргумент.
bitcmp(A,5)=3 (двоично 00011)
bitxor Връща побитово изключващо ИЛИ на два неотрицателни аргумента.
bitxor(A,B)=9 (двоично 01001)
![Page 16: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/16.jpg)
3.3. Къси логически оператори (за скалари)
» А=28;» B=-21;
Оператор Описание Пример
&& Връща истина (1), ако и двата операнда са истина и лъжа (0) в противен случай.
А && B =1
|| Връща истина (1), ако единият или и двата операнда са истина и лъжа (0) в противен случай.
А || B=1
![Page 17: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/17.jpg)
Изрази
Израз – състои се от операнди и операции; операндите могат да бъдат променливи, константи или функции.
1. Променливи
– автоматично се създава променлива за всяко име и се отделя необходимата памет;
– името на променливата се състои от букви, цифри, знак за подчертаване (_), като MATLAB използва първите 31 символа;
– различава малки и главни букви.
» A=10 % създава се 1x1 матрица с име А и един елемент със стойност 10
А = 10
![Page 18: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/18.jpg)
2. Числа – съхраняват се с дълга плаваща запетая (16 значещи цифри, област 10-308 до 10+308).
Начини за представяне:
– десетично представяне с незадължителна десетична точка и водещ знак плюс;
– научно представяне чрез буквата е, определяща 10 на степен;
– имагинерните числа използват като суфикс i или j.10 -43 0.0013.4632987 1.63е-201.43i
![Page 19: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/19.jpg)
Комплексно число
– модул (амплитуда)
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
jyxz
43 jz
9273.05 jez
22 yxA
x
yarctg
jAez
43 jz
![Page 20: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/20.jpg)
3. Символи и коментари
Символна константа е последователност от символи, заградени в апострофи ′.
Коментар започва със символа %.
» A=[′София ′;′Пловдив′] % матрица 2x7А = София Пловдив
4. Оператори
– аритметични оператори;
– оператори за сравнение;
– логически оператори.
![Page 21: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/21.jpg)
4.1. Оператор :a:b – резултатът е вектор-ред, съдържащ числата от a до b със стъпка 1.a:c:b – резултатът е вектор-ред, съдържащ числата от a до b със стъпка c.
» 1:10 % стъпка 1ans = 1 2 3 4 5 6 7 8 9 10
» 100:-10:50 % стъпка -10ans = 100 90 80 70 60 50
![Page 22: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/22.jpg)
5. Функции
аbs абсолютна стойностsqrt корен квадратенеxp е на степенsin синусclear изчиства променливите и функциите от
паметтаclear all изчиства всички променливи, глобални
променливи, функции и връзкиclose затваря фигураclose all затваря всички прозорци с фигури help получаване на помощformat установява изходния формат
Константи:
pi 3.1459265i имагинерна единица -1j имагинерна единица -1
» help elfun % елементарни математически функции» help specfun % специални математически функции» help elmat % матрични функции
![Page 23: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/23.jpg)
» format short % мащабиран формат с фиксирана точка с 5 цифри» format long % мащабиран формат с фиксирана точка с 15 цифри» format hex % шестнадесетичен формат» format rat % апроксимация чрез отношение от малки цели числа
![Page 24: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/24.jpg)
Примери:
» s=(1+sqrt(10))/2s = 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
![Page 25: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/25.jpg)
Изчертаване на графики
plot(y) Създава начупена линейна графика на вектора y спрямо индекса на елементите на y.
plot(x,y) Създава линейна графика на вектора y спрямо вектора x.
plot(x1,y1,x2,y2,…) Създава много графики на векторите
yi спрямо векторите xi.
plot(x,y,′цвят_маркер_линия′) Изчертава графика с определен цвят, тип маркер и тип линия; цвят_маркер_линия e 1-, 2- или 3-символен низ; ако се дефинира цвят_маркер без линия, изчертава се само маркерът.
![Page 26: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/26.jpg)
loglog(x,y) Създава логаритмична графика log10(y) спрямо log10(x).
semilogx(x,y) Създава полулогаритмична графика на вектора y спрямо log10(x).
semilogy(x,y) Създава полулогаритмична графика на log10(y) спрямо вектора x.
polar(theta,rho) Създава графика в полярни координати на радиуса rho спрямо ъгъла theta.
цвят_линия тип_линия тип_маркерr червен - плътна +b син -- тирета og зелен -. тирета и точки *w бял . от точки .k черен : двуеточия xc синьо зелен none без линияm пурпуренy жълт
![Page 27: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/27.jpg)
Пример: Изчертава синусоида в интервала .
» t=0:pi/100:2*pi;» y=sin(t);» plot(t,y)
» polar(t,y)
2,0t
![Page 28: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/28.jpg)
xlabel(′текст′) Добавя текст до x–оста.
ylabel(′текст′) Добавя текст до y-оста.
title(′текст′) Добавя текст като заглавие.
text(x,y,′текст′) Добавя текст, който започва от т. (x,y) на графичния екран.
axis([xmin xmax ymin ymax]) Управлява мащабирането на осите.
grid Променя състоянието на мрежата.
grid on / grid off Добавя/премахва координатната мрежа.
hold Променя състоянието на графиката.
hold on / hold off Задържа текущата графика, като следващите графични команди се добавят към графиката / връща подразбиращия се режим.
figure(H) Създава нова фигура с манипулоатор H или прави текущата фигура да бъде H.
![Page 29: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/29.jpg)
Пример: Изчертава синусоида.» 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 курсивен шрифт
![Page 30: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/30.jpg)
Пример: Изчертава спрямо в интервала .
» x=0.1:0.1:100;» loglog(x,exp(x)),grid on
Пример: Изчертава спрямо в интервала .
» x = 0:.1:10;» semilogy(x,10.^x)
xe10log 100,1.0x
x x10log10
x10log
10,0x
![Page 31: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/31.jpg)
» y1=sin(t);» y2=cos(t);» subplot(211),plot(t,y1)» subplot(212),plot(t,y2)» subplot(111)
subplot(m,n,p)
илиsubplot(mnp)
Изчертава няколко графики в един прозорец, като разделя прозореца на mxn матрица от координатни системи и избира p-тата система.
subplot(111) Връща към пълен екран за изчертаване.
![Page 32: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/32.jpg)
» plot(t,y1,t,y2)
plot(x1,y1,x2,y2,…) Изчертава няколко графики в един прозорец върху една координатна система.
![Page 33: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/33.jpg)
plot3(x,y,z) 3-D аналог на plot. Генерира 3-D линия с координати елементите на трите вектора x, y и z (векторите трябва да бъдат с еднаква дължина) и създава 2-D проекция на линията върху екрана.
» t = 0:pi/100:10*pi;» y1 = sin(t);» y2 = cos(t);» plot3(y1, y2, t);» grid on;
![Page 34: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/34.jpg)
stem(y) За дискретни сигнали изчертава данните във вектора y спрямо оста x като всяка точка е малка окръжност и права линия.
stem(x,y) Изчертава данните във вектора y спрямо вектора x.
stem(x,y,′filled′) Използва запълнени маркери.
stem(x,y,′тип_линия′) Използва тип_линия при изчертаването.
![Page 35: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/35.jpg)
Пример: Изчертава дискретен сигнал y[x].
» x=1:5;» y=[1 2 3 4 5];» stem(x,y)
» stem(x,y,'filled')
» stem(x,y,'--')
![Page 36: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/36.jpg)
Пример: Изчертава дискретния във времето сигнал 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]')
![Page 37: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/37.jpg)
Пример: Непрекъснатият сигнал се прилага към електронен ключ, който се затваря за много кратко вереме на всеки Т секунди. Изчертава модулирания сигнал – функция на дискретните точки на времето ,където 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]')
tetx t
3
2sin1.0
nTtn
![Page 38: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/38.jpg)
Пример: Изчертава периодичния дискретен сигнал за две стойности на : 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)
nAnx cos
![Page 39: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/39.jpg)
Матрици
1. Определения
Матрица е правоъгълен масив от числа.Скалар е 1x1 матрица.Вектор е матрица само с един ред или стълб.
2. Въвеждане на матрици чрез явен списък от елементи – матрицата се запомня автоматично в работното пространство.
» А=[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
114154
12769
811105
132316
A
![Page 40: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/40.jpg)
3. Обръщение към матрица – чрез нейното име.
» АA = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
4. Сума от елементите във всеки стълб – резултатът е вектор-ред и се запазва в променливата ans.
» sum(А)ans = 34 34 34 34
![Page 41: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/41.jpg)
5. Сума от елементите на всеки ред – резултатът е вектор-стълб.
Алгоритъм:1) транспониране на матрицата (операция ′);2) изчисляване на сумите по стълбове;3) транспониране на резултата.
» А′ans = 16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1» sum(А′)′ans = 34 34 34 34
![Page 42: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/42.jpg)
6. Сума от елементите от главния диагонал.
» diag(А)ans = 16 10 7 1» sum(diag(А))ans = 34
7. Сума от елементите от второстепенния диагонал.
» sum(diag(fliplr(А)))ans = 34
Функцията fliplr обръща матрицата отляво надясно.
![Page 43: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/43.jpg)
8. Индекси – елементът в ред 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
![Page 44: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/44.jpg)
9. Използване на оператор :
» sum(A(1:4,4)) % сума от 4-тия стълбans = 34
» sum(A(:,end)) % сума от последния стълбans = 34
![Page 45: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/45.jpg)
10.Обратна матрица – функция 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
![Page 46: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/46.jpg)
11.Специални матрици
zeros всички елементи са 0;
ones всички елементи са 1;
rand правилно разпределени случайни числа;
randn нормално разпределени случайни числа;
magic магически квадрат от степен N е NxN матрица с елементи естествени числа от 1 до N2 така, че сумата от числата във всеки хоризонтал, вертикал или главен диагонал е една и съща, равна на N(N2+1)/2;
pascal матрица на Паскал от степен N: симетрична положително дефинирана матрица с целочислени стойности, получени от триъгълника на Паскал (първото и
последното число във всеки ред е 1, а другите се получават като сума от двете числа над него).
![Page 47: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/47.jpg)
» 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
![Page 48: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/48.jpg)
12.Слепване на матрици
[] оператор за слепване» 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
![Page 49: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/49.jpg)
13.Изтриване на редове и стълбове
[] двойка квадратни скоби
» 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
![Page 50: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/50.jpg)
14.Изграждане на таблици
» n=(0:9)'; % вектор-стълб» pows = [n n.^2] % таблица от квадратите на 2pows = 0 0 1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81
![Page 51: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/51.jpg)
15.Вход/изход на информация
– въвеждане на информация в диалогов режим – чрез функция input;
» A=[1 2 3 4 5];» A(6)=input('Enter A[6]=')Enter A[6]=6A = 1 2 3 4 5 6
» name=input('Ime=','s')Ime=Ivanname =Ivan
X=input('низ') Като подсказка се извежда низ, потребителят въвежда MATLAB израз, който се изчислява чрез променливите от работното пространство и резултатът се запазва в X.
X=input ('низ','s') Като подсказка се извежда низ, потребителят въвежда символен низ, който се запазва в X като MATLAB низ.
![Page 52: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/52.jpg)
– извеждане на информация – чрез функция disp;
» disp(A(6)) 6
» disp(name)Ivan
disp(X) Извежда масива X, без да отпечатва неговото име. Ако X е низ, извежда се текстът.
![Page 53: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/53.jpg)
Закони в електрическите вериги
1. Първи закон на Кирхоф – сумата от токовете, излизащи от възел, е равна на нула.
2. Втори закон на Кирхов – сумата от напрежителните падове в клоните на затворен контур е равна на сумата от електродвижещите сили на източниците в този контур.Уравнение на контурните токове
[Z][I]=[U] [Z] – матрица на съпротивленията
[I]=[Z]-1[U]
» I=Z\U % ляво деление или » I=inv(Z)*U
Уравнение на възловите напрежения [Y][U]=[I] [Y] – матрица на проводимостите,
[U]=[Y]-1[I] [U] – вектор на напрежения, [I] – вектор на токове
» U=Y\I % ляво деление или » U=inv(Y)*I
![Page 54: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/54.jpg)
Пример: Изчисление на тока през резистора RB и мощността на постояннотоковия източник на напрежение по метод на контурните токове.
030)(5)(30
0)(515)(10
010)(30)(10
32313
32212
3121
IIIII
IIIII
IIII
065530
053010
10301040
321
321
321
III
III
III
EIP
IIIRB
1
23
RB=5
30
15
I1
E=10V
I2
I3
10
30
0
0
10
65530
53010
301040
3
2
1
I
I
I
UZI Уравнение на контурните токовеZ – матрица на съпротивлениятаI – вектор на контурните токовеU – вектор на напреженията
![Page 55: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/55.jpg)
» % Уравнение на контурните токове 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
![Page 56: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/56.jpg)
Файлова система MATLAB
Видове файлове:
1. .mat – двоичен файл, в който се записва работната сесия на системата.
Запазване съдържанието на работната сесия въвфайл име.mat
» save име
Зареждане на работната сесия от файл име.mat
» load име
![Page 57: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/57.jpg)
2. .m – текстов файл, който съдържа функции и скриптове.
– файл-скрипт – съдържа команди на MATLAB:
– обработва съществуващи данни в работното пространство или създава нови данни;
– създадените променливи остават в работното пространство;
– файл-функция – има входни аргументи и връща изходни резултати:
– името на m-файла и името на функцията съвпадат;
– обработва променливи в тяхното собствено работно пространство, различно от основното.
![Page 58: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/58.jpg)
Създаване на .m файл от командния прозорец
File New M-file
Запазване на .m файл от командния прозорец
File Save As…
Промяна на директорията за съхранение на .m файловете
File Set Path
![Page 59: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/59.jpg)
Пример:
Файл-скрипт 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
Изпълнение на .m файл
– в работното пространство
» my» AA = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
Скриптът създава в работното пространство на MATLAB променлива А, която съдържа матрица.
Операторът my чете от файла my.m и използва създадената променлива А, която съдържа матрицата.
![Page 60: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/60.jpg)
Пример:
Файл-функция my.mFile 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… myFile CompileИзпълнение на .m файл
– в работното пространство
» A=myA = 16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1
Функцията е с име my, няма входни параметри и връща матрица.
Извиква се функцията my и върнатият резултат се присвоява на променливата А, която получава матрицата.
![Page 61: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/61.jpg)
Глобални променливи
global X
X – глобална променлива;
– ако X се дефинира в няколко функции и в работното пространство като global, тогава те споделят единствено копие на X;
– инициализира се с празна матрица.
![Page 62: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/62.jpg)
Пример: Изследване на влиянието на фазата φ върху напрежението на независимия източник на напрежение .
Файл-функция vcos.m:function u = vcos(t)global FI % фазаuA=0.33E-3; % амплитуда=0.33mV
f=50; % честота=50Hz Figure No. 1u=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);
ftutu A 2cos)(
![Page 63: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/63.jpg)
Управляващи структури
1. Условен оператор if
if израз оператори elseif израз оператори else израз оператори end
2. Условен оператор switch
switch switch_израз case case_израз, оператор,…,оператор case case_израз,...,case_израз оператор,…,оператор ... otherwise оператор,…,оператор end
![Page 64: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/64.jpg)
3. Оператор за цикъл for
for променлива=старт:нарастване:край, оператори end
4. Оператор за цикъл while
while израз оператори end
5. Оператор за прекъсване на цикъл break – прекъсва изпълнението на while или for.
![Page 65: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/65.jpg)
» for k=1:10,x(k)=cos(k);еnd» xx = 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» cc = 5
![Page 66: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/66.jpg)
Пример: 3-битов А/D конверторПреобразува аналоговиясигнал x в цифров сигнал yсъгласно уравнението:
5.3,7
5.35.2,6
5.25.1,5
5.15.0,4
5.05.0,3
5.05.1,2
5.15.2,1
5.2,0
x
x
x
x
x
x
x
x
y
Файл-функция AD3.m:function y=AD3(x)if x<-2.5 y=0;elseif x<-1.5 y=1;elseif x<-0.5 y=2;elseif x<0.5 y=3;elseif x<1.5 y=4;elseif x<2.5 y=5;elseif x<3.5 y=6;else y=7;endИзпълнение» y1=AD3(-1.25)y1 = 2» y2=AD3(2.57)y2 = 6» y3=AD3(6.0)y3 = 7
![Page 67: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/67.jpg)
Нули на функция. Минимум на функция.
1. Числено решаване на уравнение f(x)=0X=fzero(FUN,X0)
Търси корените на функцията FUN около X0.
» X=fzero('sin(x)',3) % намира корена на sin(x) около x0=3X = 3.1416» X=fzero('sin(x)',[-1,1]) % намира корена на sin(x) в интервала [-1,1],X = % където sin(x) сменя знака си 0» X=fzero('sin(x)',[-4,-3]) % намира корена на sin(x) в интервала [-4,-3]X = -3.1416
![Page 68: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/68.jpg)
2. Минимум на функция f(x)X=fminbnd(FUN,X1,X2)
Търси минимума на функцията FUN в интервала [X1,X2].
» min=fminbnd('sin(x)',-2,-1) % минимум на sin(x) в интервала -2<x<-1
min =
-1.5708
Няма функция за намиране максимума на f(x) – max(f(x))=min(-f(x))
» max=fminbnd('-sin(x)',1,2) % максимум на sin(x) в интервала 1<x<2
max =
1.5708
![Page 69: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/69.jpg)
3. Диференциране
diff(f) Връща , x е подразбиращата се символна променлива
diff(f,n) Връща , x е подразбиращата се символна променлива
diff(f,x,n) Връща , x е явно зададена символна променлива
» syms x y; % дефинира реални символни променливи
» diff(x^y) % първа производна спрямо x (по подразбиране)ans =x^y*y/x
» diff(x^y,x) % първа производна спрямо xans =x^y*y/x
» diff(sin(y*x),x,3) % трета производна спрямо xans =-cos(y*x)*y^3
n
n
dx
fd
dx
df
n
n
dx
fd
![Page 70: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/70.jpg)
4. Интегриране
int(f) Връща , x е подразбиращата се символна променлива
int(f,x) Връща , x е явно зададена символна променлива
int(f,a,b) Връща , x е подразбиращата се символна променлива
int(f,x,a,b) Връща , x е явно зададена символна променлива
» syms x;
» int(x^2,x) % неопределен интегралans =1/3*x^3
» int((x^2-2)/(x^3-1),x,2,5) % определен интегралans =-2/3*log(2)+2/3*log(31)+2/3*3^(1/2)*atan(11/3*3^(1/2))-2/3*log(7)-2/3*3^(1/2)*atan(5/3*3^(1/2))
dxxfI
dxxfI
b
a
dxxfI
b
a
dxxfI
![Page 71: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/71.jpg)
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).
Нелинейни числени методиI. Числено решаване на обикновени диференциални уравнения
Всяко обикновено диференциално уравнение от n-ти ред може да се запише като система от n уравнения от първи ред така, че от лявата страна да се намират само производните, а от дясната страна производните да не участват:
00
' ,
yty
ytfy
![Page 72: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/72.jpg)
[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] е матрица на решението.
![Page 73: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/73.jpg)
Пример: Уравнение на Ван дер Пол
с начални условия:
Еквивалентно е на система от диференциални уравнения от 1 ред:
с начални условия:
0)()(
)(1)(
112
121
2
tydt
tdyty
dt
tyd
)()()(1)(
)()(
122
12
21
tytytydt
tdy
tydt
tdy
0)0(
2)0(
2
1
ty
ty
0)0(
2)0(
1
1
dt
tdy
ty
![Page 74: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/74.jpg)
Файл-фукция vdp.m:function dy=vdp(t,y) % u=1dy=zeros(2,1);dy(1)=y(2);dy(2)=(1-y(1)^2)*y(2)-y(1);
% t=0 до 20st0=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 до 20st0=0; tfinal=20;y0=[2; 0]; % начални условия[t,y]=ode45('vdp',[t0 tfinal],y0,[],5);plot(t,y(:,1),'b',t,y(:,2),'r')
![Page 75: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/75.jpg)
Анализ на преходни процеси
1. RC верига
а) разреждане на кондензатор
– времеконстанта
Ако кондензаторът е бил зареден до напрежение ,аналитичното решение е:
+
-
R C uc(t)
RC
tu
dt
tduRC
tu
dt
tduR
tu
dt
tduC
titi
CC
CC
CC
RC
)()(
0)()(
0)()(
0)(
RCt
mC eUtu
)(
mU
RC
![Page 76: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/76.jpg)
б) зареждане на кондензатор
Ако кондензаторът не е билзареден, т.е. , аналитичното решение е:
+
-
R
C uc(t)E
RC
Etu
dt
tduRC
Etu
dt
tduR
Etu
dt
tduC
titi
CC
CC
CC
RC
)()(
0)()(
0)()(
0)(
0)(0
tC tu
)1()( RC
t
C eEtu
![Page 77: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/77.jpg)
Пример: В момента t=0 ключът се затваря и RC веригата се свързва към източник на ток. Да се изчисли напрежението върху кондензатора, ако R=10, C=10F и е приложен постоянен източник на ток I=1A.
C
Itu
RCdt
tdu
Idt
tduC
R
tudt
tduCti
R
tu
R
tuti
Ititi
CC
CC
CC
CRR
CR
)(1)(
0)()(
)()(
)()()(
0)()(
0)(0
tC tu
RC
eIRtut
C
)1()(
![Page 78: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/78.jpg)
Файл-функции – зареждане на кондензатор1. RC1diff.m – диференциално уравнение
function duc=RC1diff(t,uc,options,I,R,C)tau=R*C;duc(1)=-uc(1)/tau+I/C;
2. RC1.m – аналитично решение
function u=RC1(R,C,I,t)tau=R*C;u=I*R*(1-exp(-t/tau)) )1()(
t
C eIRtu
C
Itu
RCdt
tduC
C )(1)(
![Page 79: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/79.jpg)
% RC верига – зареждане на кондензаторt0=0; % начално времеtfinal=0.003; % крайно времеuc0=0; % начално условие uc(t=0)=0I=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]')
![Page 80: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/80.jpg)
+
-
C uc(t)
0 0.5s
5V
R
E
Пример: Входното напрежение на RC веригата е правоъгълен импулс с амплитуда 5V и ширина 0.5s. Да се изчисли напрежението върху кондензатора за две стойности на R=2.5К и R=10К , ако C=10F. Да се начертае графиката на напрежението на кондензатора в зависимост от времето.
![Page 81: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/81.jpg)
Файл-функции1. Разреждане на кондензатор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)
2. Зареждане на кондензатор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))
RCt
mC eUtu
)(
RC
Etu
dt
tdu CC
)()(
)1()( RC
t
C eEtu
RC
tu
dt
tdu CC )()(
![Page 82: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/82.jpg)
% RC веригаt0=0; % начално времеtfinal=0.5; % крайно времеuc0=0; % начално условие uc(t=0)=0E=5; % амплитуда на правоъгълния импулсC=10e-6;
R=2.5e3;% Числено решение[t11,uc11]=ode45('RCdiff',[t0 tfinal],[uc0],[],E,R,C); % зареждане на CUm=uc11(end); % начално условие[t12,uc12]=ode45('RCDdiff',[t0 tfinal],[Um],[],Um,R,C); % разреждане на C
% Аналитично решениеu11=RC(R,C,E,t11); % зареждане на CUm=u11(end); % начално условиеu12=RCD(R,C,Um,t12); % разреждане на C
![Page 83: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/83.jpg)
R=10e3;% Числено решение[t21,uc21]=ode45('RCdiff',[t0 tfinal],[uc0],[],E,R,C); % зареждане на CUm=uc21(end); % начално условие[t22,uc22]=ode45('RCDdiff',[t0 tfinal],[Um],[],Um,R,C); % разреждане на C
% Аналитично решениеu21=RC(R,C,E,t21); % зареждане на CUm=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')
![Page 84: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/84.jpg)
2. RL верига
а) разсейване на енергия в бобина
– време константа
Ако е началната стойност на тока през бобината,аналитичното решение е:
+
-
R uR(t)
L
i(t)
RL
mI
t
meIti
)(
RLti
dt
tdiRLti
dt
tdi
tRidt
tdiL
tutu RL
)()(
0)()(
0)()(
0)(
![Page 85: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/85.jpg)
б) натрупване на енергия в бобина
Ако началната стойност на тока през бобината е 0, , решението е:
L
E
RLti
dt
tdi
L
E
RLti
dt
tdi
EtRidt
tdiL
Etutu RL
)()(
)()(
)()(
)(
+
-
R uR(t)E
L
i(t)
)1()( t
eR
Eti
0)(0
tti
![Page 86: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/86.jpg)
Пример: За схемата токът през бобината е 0. В момента t=0 ключът се затваря към позиция 1, където остава 1s. След това закъснение от 1s ключът се премества от позиция 1 в позиция 2, където остава неограничено време. Напрежението на постоянотоковия източник е E=40V. Елементите в схемата са: R1=50Ω, R2=50Ω, R3=150Ω, L=200H. Да се начертае графиката на тока през бобината спрямо времето.
1
E=40V
R1=50
R2=50R3=150
2
L=200
![Page 87: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/87.jpg)
Файл-функции
1. Разсейване на енергията в бобинаRLDdiff.m – диференциално уравнениеfunction diL=RLDdiff(t,iL,options,Im,R,L)tau=L/R;diL(1)=-iL(1)/tau;
RLD.m – числено решениеfunction i=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))
L
E
RLti
dt
tdi
)()(
)1()( t
eR
Eti
RLti
dt
tdi )()(
t
meIti
)(
![Page 88: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/88.jpg)
% RL веригаR1=50;R2=50;R3=150;L=200;E=40;R=R1+R2; % ключът е в позиция 1 – натрупване на енергия в Lt0=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 – разсейване на енергия в Lt0=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')
![Page 89: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/89.jpg)
3. RLC верига
+
-
R
uC(t)u(t)
L
iL(t)
C
)()()()(
)()(
)(1
)(
)()(
)()(
)()()()(
tutudt
tdiL
dt
tduRC
C
ti
dt
tdu
diC
tu
dt
tdiLtu
tRitu
tutututu
CLC
LC
t
LC
LL
LR
CLR
0)(
0)0(
)(1)(
)(1
)()(1)(
)()()(
)(
)()(
)()(
)()(
2
1
12
211
21
1
21
2
1
ty
ty
tyCdt
tdy
tyL
tyL
Rtu
Ldt
tdy
tutydt
tdyLtRy
dt
tdyCty
tuty
tity
C
L
![Page 90: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/90.jpg)
Пример: В момента t=0 ключът се затваря и RLC веригата се свързва към източник на напрежение.Да се изчисли напрежението върхукондензатора, ако R=10, L=10mH, C=100F и еприложен постоянен източник на напрежениеU=50V.
![Page 91: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/91.jpg)
Файл-функция 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)=0uC0=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)')
![Page 92: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/92.jpg)
b
a
dxxfq
quad('f',a,b) – изчислява определен интеграл от f(x) от a до b с относителна грешка 1е-3, като използва адаптивното правило на Simpson;'f' е символен низ, съдържащ името на функцията;връща вектор от изходните стойности, ако е даден вектор с входни стойности;връща q=inf, ако е достигнато крайно ниво на рекурсия.
II. Числено интегриране
Квадратура е числен метод за апроксимация на площта под графиката на функцията f(x), дефинирана върху интервала [a,b], т.е. определен интеграл:
![Page 93: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/93.jpg)
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 файл, чието име съвпада с името на функцията.
![Page 94: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/94.jpg)
» q=quad('sin',0,pi,[],1)q = 2.0000
1. Интегриране на . dxx
0
sin
![Page 95: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/95.jpg)
2. Интегриране на .
» q=quad('sin',0,2*pi,[],1)q = 0
dxx2
0
sin
![Page 96: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/96.jpg)
3. Апроксимация на числото чрез
Файл-функция p.m:
function y=p(x)y=4./(1.+x.^2);
» q=quad('p',0,1);» qq = 3.1416
dxx
1
021
4
![Page 97: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/97.jpg)
Полиноми
I. Нули на полином
r=roots(p)
p – вектор-ред, съдържа коефициентите на полинома в намаляващ ред
r – вектор-стълб, съдържа корените на полинома p
Пример:
» p=[1 -6 -72 -27];
» r=roots(p)r = 12.1229 -5.7345 -0.3884
27726 23 sssp
011
1 ... asasasap nn
nn
![Page 98: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/98.jpg)
II. Коефициенти на полином
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
27726 23 sssp
![Page 99: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/99.jpg)
III. Стойност на полином
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
27726 23 sssp
270)3(
187)2(
104)1(
sp
sp
sp
![Page 100: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/100.jpg)
IV. Апроксимиране с полином
p=polyfit(x,y,n)
x,y – данните, които се апроксимират
n – степен на полинома
p – вектор-ред с дължина n+1, съдържа коефициентите на полинома в намаляващ ред, който апроксимира p(x(i)) към y(i)
![Page 101: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/101.jpg)
Пример: Апроксимиране с полином от степен 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
tfi
0004.01064.11475.07440.04222.00985.00084.0 23456 ttttttp
![Page 102: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/102.jpg)
Променливотоков анализ
1. Променливотокова мощност
Ако и са периодични сигнали с период T:
u(t)Z
i(t)
Z - импеданс
)()()( titutp
)(tu )(ti
T
eff dttuT
U0
2 )(1
T
eff dttiT
I0
2 )(1
– ефективна стойност на напрежението
– ефективна стойност на тока
T
dttituT
P0
)()(1
– средна мощност
effeff IU
Ppf – фактор на мощността
![Page 103: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/103.jpg)
Ако и са синусоидални:
то:
)(tu )(ti
– реактивна мощност
im
um
tIti
tUtu
cos)(
cos)(
iu
iueffeff
meff
meff
pf
IUP
II
UU
cos
cos2
2
iueffeff IUQ sin
iuiueffeff jIUS
jQPS
sincos– комплексна мощност
rad180
T
2 – кръгова честота
– преобразуване на ъгъл от градуси в радиани
![Page 104: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/104.jpg)
Пример: Да се изчислят средната мощност, ефективните стойности на напрежението и тока, фактора на мощността (аналитично и числено), ако и .
Файл-функции
voltage.mfunction u2=voltage(t)u2=(10*cos(120*pi*t+60*pi/180)).^2;
current.mfunction i2=current(t)i2=(6*cos(120*pi*t+30*pi/180)).^2;
power_average.mfunction 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;
60120cos10)( ttu 30120cos6)( tti
22 60120cos10)( ttu
22 30120cos6)( tti
)()()( titutp
![Page 105: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/105.jpg)
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.0711Ieff 4.2426 4.2426P 25.9808 25.9808pf 0.8660 0.8660
![Page 106: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/106.jpg)
2. Комплексна форма на напреженията и токовете
Ако , то ,
– комплексно напрежение.
Ако е напълно синусоидално,
x
yarctg
yxA
zjzAejAAjyxz j
22
ImResincos
– амплитуда
– начална фаза
js
– комплексна амплитуда на напрежението
– комплексна честота
js
tjjm
tjtm
tm eeUeeUUteUtu cos
jmeUU
teUtu tm cos Utu Re
tUtu m cos
U
![Page 107: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/107.jpg)
3. Предавателна функция
01
11
011
1
...
...
asasasa
bsbsbsb
U
UsH
nn
nn
mm
mm
вх
изх
Комплексно честотно представяне
n
m
pspsps
zszszsksH
...
...
21
21
Линейна веригаuвх(t) uизх(t)
Линейна веригаUвх(s)est Uизх(s)est
skps
r
ps
r
ps
rsH
n
n
...2
2
1
1
– константа
– нули
– полюсиn
m
ppp
zzz
k
,...,,
,...,,
21
21
– предавателна функция
– разлагане на множители
– дробни части
![Page 108: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/108.jpg)
[r,p,k]=residue(num,den)
num – вектор-ред, съдържа коефициентите на полинома-числител в намаляващ ред
den – вектор-ред, съдържа коефициентите на полинома-знаменател в намаляващ ред
r – вектор-стълб, съдържа остатъците от частното на num и den
p – вектор-стълб, съдържа полюситеk – вектор-ред, съдържа директните изрази
![Page 109: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/109.jpg)
Пример: За RLC веригата намерете: – предавателната функция ;– нулите и полюсите на ;– , ако . 402cos10 3 tetu t
вх tuизх
sH
LCL
Rss
LR
ssH
LCssRC
sRC
sCsLR
RsH
tuZ
Rtu
tu
Rti
tu
tusH
вхекв
вх
вхвх
изх
1
11
2
2
+
-
uизх(t)uвх(t)
i(t)
C=100u
R=10
L=10m
sH
23 js 402cos10 3 tetu tвх
180
40
10
jj
вхmвх еeUU
jmjsвхизх eUsHUU 22
=> комплексна честота
– комплексна амплитуда на входното напрежение
– комплексна амплитуда на изходното напрежение
– предавателна функция
![Page 110: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/110.jpg)
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);
![Page 111: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/111.jpg)
Резултати:z 0p 1.0e+002 *
-5.0000 + 8.6603i -5.0000 - 8.6603ir 1.0e+002 * 5.0000 + 2.8868i 5.0000 - 2.8868ip 1.0e+002 *
-5.0000 + 8.6603i -5.0000 - 8.6603ikUm 0.0362fi -173.8043
66.8510066.85100 jsjs
ssH
66.85100
8868.25100
66.85100
8868.25100
js
j
js
jsH
8043.1732cos0362.0
;8043.173,0362.03 tetu
VUt
изх
m
![Page 112: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/112.jpg)
2. Честотен анализ
Честотна характеристика – отговорът на схемата при синусоидален входен сигнал
– амплитудно-честотна характеристика
– фазово-честотна характеристика
jjs eAsH
jHA
jъгълH
Пример: За RLC веригата начертайте амплитудно-честотната и фазово-честотната характеристика за две стойности на съпротивлението: R=10Ω и R=0.5Ω.
+
-
uизх(t)uвх(t)
i(t)
C=100u
R=10
L=10m
![Page 113: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/113.jpg)
Файл-функция 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]'); ,
LCL
Rss
LR
ssH
12 js
![Page 114: Интерактивна система за технически изчисления, визуализиране и програмиране ( MATLAB ) Приложение](https://reader033.vdocuments.site/reader033/viewer/2022061522/56814d20550346895dba5434/html5/thumbnails/114.jpg)
При намаляване стойността на R от 10 до 0.5Ω лентата на пропускане на амплитудно-честотната характеристика намалява и качественият фактор на схемата нараства.