목차
MATLAB의 기초
Ⅰ. MATLAB의 소개
1. MATLAB에서 자주 이용되는 명령 및 함수
2. 명령구동방식(Command-driven mode)
3. who, clear
4. 주석문(%)
5. 세미콜론(;)
6. 콜론(:)
7. ...
8. 한 줄에 여러 문장 쓰기
9. 고정소수점 표현
10. 데이터 출력방식
11. save, load
12. M-file의 작성
Ⅱ. 결과 그래프의 출력
1. plot
2. hold
3. grid
4. title
5. xlabel, ylabel
6. text(x,y,'text')
7. plot
8. 출력그래프의 형식
9. 그래프의 Scaling
Ⅲ. 행렬의 연산
1. norm
2. Eigenvalues and Eigenvectors
3. Generalized eigenvalues and generalized eigenvectors
4. 특성방정식(Characteristic Equation)
5. 다항식의 곱셈 및 나눗셈
6. 함수값의 계산
7. 행렬의 원소에 대한 연산
8. abs(A), angle(A)
9. expm(A)
10. 행렬의 생성
11. diag
Ⅳ. 수치 적분과 미분방정식
1. function
2. 수치적분(quad)
3. 미분방정식의 풀이
Ⅴ. 선형시스템의 수학적 모델 표현
1. [A,B,C,D]=tf2ss(num,den)
2. [num,den]=ss2tf(A,B,C,D)
3. [r,p,k]=residue(num,den)
4. [G,H]=c2d(A,B,Ts)
Ⅰ. MATLAB의 소개
1. MATLAB에서 자주 이용되는 명령 및 함수
2. 명령구동방식(Command-driven mode)
3. who, clear
4. 주석문(%)
5. 세미콜론(;)
6. 콜론(:)
7. ...
8. 한 줄에 여러 문장 쓰기
9. 고정소수점 표현
10. 데이터 출력방식
11. save, load
12. M-file의 작성
Ⅱ. 결과 그래프의 출력
1. plot
2. hold
3. grid
4. title
5. xlabel, ylabel
6. text(x,y,'text')
7. plot
8. 출력그래프의 형식
9. 그래프의 Scaling
Ⅲ. 행렬의 연산
1. norm
2. Eigenvalues and Eigenvectors
3. Generalized eigenvalues and generalized eigenvectors
4. 특성방정식(Characteristic Equation)
5. 다항식의 곱셈 및 나눗셈
6. 함수값의 계산
7. 행렬의 원소에 대한 연산
8. abs(A), angle(A)
9. expm(A)
10. 행렬의 생성
11. diag
Ⅳ. 수치 적분과 미분방정식
1. function
2. 수치적분(quad)
3. 미분방정식의 풀이
Ⅴ. 선형시스템의 수학적 모델 표현
1. [A,B,C,D]=tf2ss(num,den)
2. [num,den]=ss2tf(A,B,C,D)
3. [r,p,k]=residue(num,den)
4. [G,H]=c2d(A,B,Ts)
본문내용
연산이 된다.
1) A.^2 : 행렬 A의 각각의 원소들을 제곱한다.
A=[1 2;3 4];
A.^2
ans =
1 4
9 16
8. abs(A), angle(A)
1) abs(A) : 행렬 A의 각 원소의 절대값을 계산한다.
2) angle(A) : 행렬 A의 각 원소의 위상각을 계산한다(라디안).
A =
2.0000 + 2.0000i 1.0000 + 3.0000i
4.0000 + 5.0000i 6.0000 - 1.0000i
abs(A)
ans =
2.8284 3.1623
6.4031 6.0828
angle(A)
ans =
0.7854 1.2490
0.8961 -0.1651
9. expm(A)
행렬 A의 exponential 함수값을 구한다().
A=[1 2;3 4];
expm(A)
ans =
51.9690 74.7366
112.1048 164.0738
10. 행렬의 생성
1) ones(n) : 모든 원소가 1인 n*n 행렬
2) ones(m,n) : 모든 원소가 1인 m*n 행렬
3) ones(A) : 모든 원소가 1이며 A와 차원이 같은 행렬
4) zeros() : 모든 원소가 0인 행렬
5) eye(n) : n차원의 항등행렬
11. diag
1) diag(X) : 벡터 X의 원소를 대각항에 가지는 대각행렬을 생성한다.
X=[1 2 3 4]; diag(X)
ans =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
2) diag(A) : 행렬 A의 대각항만을 뽑아낸다.
A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
diag(A)
ans =
1
5
9
diag(diag(A))
ans =
1 0 0
0 5 0
0 0 9
Ⅳ. 수치 적분과 미분방정식
1. function
새로운 함수를 정의할 때 쓰인다.
< Example >
를 M-file로 표현하고 그 그래프를 구하는 법을 알아보자.
우선 다음의 M-file은 위의 함수를 표현한 것이다.
function y=funct(x)
y=1./((x-0.25).^2 + 0.025) + 1./((x-0.75).^2 +0.05) -5;
이 함수의 이름은 ‘funct.m'이며, 아래의 예는 x가 -2.5에서부터 2.5까지 0.02씩 변할 때의 함수값을 그래프로 나타낸 것이다.
x=-2.5:0.02:2.5;
plot(x,funct(x))
2. 수치적분(quad)
임의의 함수 f(x)의 아래 부분의 면적은 구적법(quadrature)을 사용하여 f(x)를 수치 적분함으로써 구할 수 있다. 앞에서 M-file ‘funct.m'을 사용하여 정의한 함수를 0부터 1까지 적분하고자 할 때에는 다음과 같이 입력하면 된다.
quad('funct',0,1)
ans =
19.4788
구적법과 관련하여 MATLAB에서 제공하는 함수에는 두 가지가 있다.
quad : Adaptive Simpson Rule 사용
quad8 : Adaptive Newton Cotes 8 Panel Rule 사용
3. 미분방정식의 풀이
상미분방정식을 풀기 위하여 MATLAB에서 제공하는 함수들에는 다음과 같은 것들이 있다.
ode23 : 2차 및 3차 Runge-Kutta Method
ode45 : 4차 및 5차 Runge-Kutta Method
< Example >
다음의 미분방정식을 고려해 보자.
이 방정식은 다음과 같은 2개의 1차 미분 방정식으로 나타낼 수 있다.
이 방정식을 풀기 위해서 먼저 vdpol.m이라는 M-file을 작성해 보자.
function deriv = vdpol(t,x);
deriv = zeros(2,1) ;
deriv(1)= x(1) .*(1-x(2) .^2)-x(2);
deriv(2)=x(1);
이제는 작성한 vdpol.m을 에 걸쳐서 적분해 보자.
t0=0;
tf=50;
x0=[-2.5 2.5]';
[t x]=ode23('vdpol',t0,tf,x0);
plot(t,x)
다음의 그림은 위의 입력에 대한 결과이다.
Ⅴ. 선형시스템의 수학적 모델 표현
1. [A,B,C,D]=tf2ss(num,den)
형태로 되어 있는 시스템의 전달함수로부터 상태방정식의 행렬 A, B, C, D를 이끌어 낸다.
2. [num,den]=ss2tf(A,B,C,D)
A, B, C, D로 이루어져 있는 상태방정식으로부터 전달함수
를 이끌어 낸다.
를 상태방정식으로 바꿔보자.
num=[0 1 3];
den=[1 3 2];
[A,B,C,D]=tf2ss(num,den)
A =
-3 -2
1 0
B =
1
0
C =
1 3
D =
0
[num,den]=ss2tf(A,B,C,D)
num =
0 1 3
den =
1 3 2
3. [r,p,k]=residue(num,den)
전달함수를 부분분수로 분해할 때 사용한다.
→
num=[2 5 3 6];
den=[1 6 11 6];
[r,p,k]=residue(num,den)
r =
-6.0000
-4.0000
3.0000
p =
-3.0000
-2.0000
-1.0000
k =
2
즉, 이다.
4. [G,H]=c2d(A,B,Ts)
연속시간시스템을 이산시간시스템으로 변환한다(Ts는 샘플링주기).
→
A=[0 1;-25 -4];
B=[0;1]
[G,H]=c2d(A,B,0.05)
G =
0.9709 0.0448
-1.1212 0.7915
H =
0.0012
0.0448
< Example >
아래와 같이 구성된 선형시스템을 상태방정식으로 구성하고 그 시스템의 특성을 살펴보도록 하자.
먼저 전달함수를 구해보자.
num=10;
den=[1 2 10];
printsys(num,den)
num/den =
10
--------------
s^2 + 2 s + 10
이제 전달함수를 상태방정식으로 변환시키면,
[A,B,C,D]=tf2ss(num,den)
A =
-2 -10
1 0
B =
1
0
C =
0 10
D =
0
이 시스템의 Step Response를 보려면 다음과 같이 입력한다.
step(num,den) or step(A,B,C,D)
이 시스템의 Bode Plot을 보려면 다음과 같이 입력한다.
bode(num,den) or bode(A,B,C,D)
1) A.^2 : 행렬 A의 각각의 원소들을 제곱한다.
A=[1 2;3 4];
A.^2
ans =
1 4
9 16
8. abs(A), angle(A)
1) abs(A) : 행렬 A의 각 원소의 절대값을 계산한다.
2) angle(A) : 행렬 A의 각 원소의 위상각을 계산한다(라디안).
A =
2.0000 + 2.0000i 1.0000 + 3.0000i
4.0000 + 5.0000i 6.0000 - 1.0000i
abs(A)
ans =
2.8284 3.1623
6.4031 6.0828
angle(A)
ans =
0.7854 1.2490
0.8961 -0.1651
9. expm(A)
행렬 A의 exponential 함수값을 구한다().
A=[1 2;3 4];
expm(A)
ans =
51.9690 74.7366
112.1048 164.0738
10. 행렬의 생성
1) ones(n) : 모든 원소가 1인 n*n 행렬
2) ones(m,n) : 모든 원소가 1인 m*n 행렬
3) ones(A) : 모든 원소가 1이며 A와 차원이 같은 행렬
4) zeros() : 모든 원소가 0인 행렬
5) eye(n) : n차원의 항등행렬
11. diag
1) diag(X) : 벡터 X의 원소를 대각항에 가지는 대각행렬을 생성한다.
X=[1 2 3 4]; diag(X)
ans =
1 0 0 0
0 2 0 0
0 0 3 0
0 0 0 4
2) diag(A) : 행렬 A의 대각항만을 뽑아낸다.
A=[1 2 3;4 5 6;7 8 9]
A =
1 2 3
4 5 6
7 8 9
diag(A)
ans =
1
5
9
diag(diag(A))
ans =
1 0 0
0 5 0
0 0 9
Ⅳ. 수치 적분과 미분방정식
1. function
새로운 함수를 정의할 때 쓰인다.
< Example >
를 M-file로 표현하고 그 그래프를 구하는 법을 알아보자.
우선 다음의 M-file은 위의 함수를 표현한 것이다.
function y=funct(x)
y=1./((x-0.25).^2 + 0.025) + 1./((x-0.75).^2 +0.05) -5;
이 함수의 이름은 ‘funct.m'이며, 아래의 예는 x가 -2.5에서부터 2.5까지 0.02씩 변할 때의 함수값을 그래프로 나타낸 것이다.
x=-2.5:0.02:2.5;
plot(x,funct(x))
2. 수치적분(quad)
임의의 함수 f(x)의 아래 부분의 면적은 구적법(quadrature)을 사용하여 f(x)를 수치 적분함으로써 구할 수 있다. 앞에서 M-file ‘funct.m'을 사용하여 정의한 함수를 0부터 1까지 적분하고자 할 때에는 다음과 같이 입력하면 된다.
quad('funct',0,1)
ans =
19.4788
구적법과 관련하여 MATLAB에서 제공하는 함수에는 두 가지가 있다.
quad : Adaptive Simpson Rule 사용
quad8 : Adaptive Newton Cotes 8 Panel Rule 사용
3. 미분방정식의 풀이
상미분방정식을 풀기 위하여 MATLAB에서 제공하는 함수들에는 다음과 같은 것들이 있다.
ode23 : 2차 및 3차 Runge-Kutta Method
ode45 : 4차 및 5차 Runge-Kutta Method
< Example >
다음의 미분방정식을 고려해 보자.
이 방정식은 다음과 같은 2개의 1차 미분 방정식으로 나타낼 수 있다.
이 방정식을 풀기 위해서 먼저 vdpol.m이라는 M-file을 작성해 보자.
function deriv = vdpol(t,x);
deriv = zeros(2,1) ;
deriv(1)= x(1) .*(1-x(2) .^2)-x(2);
deriv(2)=x(1);
이제는 작성한 vdpol.m을 에 걸쳐서 적분해 보자.
t0=0;
tf=50;
x0=[-2.5 2.5]';
[t x]=ode23('vdpol',t0,tf,x0);
plot(t,x)
다음의 그림은 위의 입력에 대한 결과이다.
Ⅴ. 선형시스템의 수학적 모델 표현
1. [A,B,C,D]=tf2ss(num,den)
형태로 되어 있는 시스템의 전달함수로부터 상태방정식의 행렬 A, B, C, D를 이끌어 낸다.
2. [num,den]=ss2tf(A,B,C,D)
A, B, C, D로 이루어져 있는 상태방정식으로부터 전달함수
를 이끌어 낸다.
를 상태방정식으로 바꿔보자.
num=[0 1 3];
den=[1 3 2];
[A,B,C,D]=tf2ss(num,den)
A =
-3 -2
1 0
B =
1
0
C =
1 3
D =
0
[num,den]=ss2tf(A,B,C,D)
num =
0 1 3
den =
1 3 2
3. [r,p,k]=residue(num,den)
전달함수를 부분분수로 분해할 때 사용한다.
→
num=[2 5 3 6];
den=[1 6 11 6];
[r,p,k]=residue(num,den)
r =
-6.0000
-4.0000
3.0000
p =
-3.0000
-2.0000
-1.0000
k =
2
즉, 이다.
4. [G,H]=c2d(A,B,Ts)
연속시간시스템을 이산시간시스템으로 변환한다(Ts는 샘플링주기).
→
A=[0 1;-25 -4];
B=[0;1]
[G,H]=c2d(A,B,0.05)
G =
0.9709 0.0448
-1.1212 0.7915
H =
0.0012
0.0448
< Example >
아래와 같이 구성된 선형시스템을 상태방정식으로 구성하고 그 시스템의 특성을 살펴보도록 하자.
먼저 전달함수를 구해보자.
num=10;
den=[1 2 10];
printsys(num,den)
num/den =
10
--------------
s^2 + 2 s + 10
이제 전달함수를 상태방정식으로 변환시키면,
[A,B,C,D]=tf2ss(num,den)
A =
-2 -10
1 0
B =
1
0
C =
0 10
D =
0
이 시스템의 Step Response를 보려면 다음과 같이 입력한다.
step(num,den) or step(A,B,C,D)
이 시스템의 Bode Plot을 보려면 다음과 같이 입력한다.
bode(num,den) or bode(A,B,C,D)
키워드
추천자료
[A+ 레포트] MATLAB 공학 컴퓨터 프로그래밍 연습문제 4단원 5단원 6단원
Digital Signal Processing using matlab ED2/Ingle,Proakis/2장 연습문제 solution
Digital Signal Processing using matlab ED2/Ingle,Proakis/3장 연습문제 solution
통신시스템 프로젝트 - MATLAB을 이용한 DSBSC 변복조 구현
[디지털 영상 처리] Matlab을 이용한 히스토그램 명세화, 평활화
정규화된 안테나의 방사패턴 & MATLAB CODE
[수치해석]Matlab을 이용한 2계 정상 열전도 방정식의 수치해석(라플라스 방정식)
3상 PWM인버터 설계(Matlab 시뮬링크)
BLDC모터 설계(matlab 시뮬링크)
QAM 방식의 통신시스템 MATLAB 코딩 M-file
SOLUTIONS MANUAL FOR DSP USING MATLAB
공학프로그래밍 설계과제 - C와 MATLAB을 사용한 B-mode 영상
디지털신호처리및설계(DSP)_MATLAB 프로젝트 - Final Report of Design Project
시스템해석 - 랜딩기어 설계 및 matlab 실습
소개글