๐งช Simulink ๋?
Simulink(์๋ฎฌ๋งํฌ)์ MATLAB์ ํ์ฅ ๊ธฐ๋ฅ์ผ๋ก, ๋์ ์์คํ
(์๊ฐ์ ๋ฐ๋ผ ๋ณํํ๋ ์์คํ
)์ ๋ณด๊ธฐ ์ฝ๊ฒ ๊ทธ๋ฆผ์ผ๋ก ํํํ๊ณ ํด๋น ์์คํ
๋์์ ๋ถ์ํ๋ ๋ฐ ์์ด ๋์์ ์ฃผ๋ ๊ทธ๋ํฝ ๋ค์ด์ด๊ทธ๋จ ํ๊ฒฝ์ด๋ค.
์๋ฅผ ๋ค๋ฉด ์ ๊ธฐ ๋ชจํฐ๋ฅผ ์ฌ์ฉํด ๋ฌผ์ ํํํ๋ ์์คํ
์ ๋ง๋ ๋ค๊ณ ํ๋ฉด simulink๋ฅผ ์ฌ์ฉํด ์ ๊ธฐ ๋ชจํฐ ๋์์ ํ์ํ ๋ธ๋ก(๋ถํ)๊ณผ ํํ ๋์์ ํ์ํ ๋ธ๋ก(๋ถํ)์ ์ถ๊ฐํ๊ณ ์ ๊ธฐ ๋ชจํฐ๊ฐ ์๋ ์ ํํ๊ฐ ๋ฌผ์ ํํํ๋๋ก ์๋ก ์ฐ๊ฒฐํ๋ค.
(โป ์ด ๊ณผ์ ์ ๋ชจ๋ธ๋ง์ด๋ผ๊ณ ๋ถ๋ฅธ๋ค.)
ํด๋น ๋ชจ๋ธ์ ์๋ฎฌ๋ ์ด์
์ ์์ํ๊ณ , ์ฌ์ฉ์๋ ์ ๊ธฐ ๋ชจํฐ์ ๋ฐ๋ผ ๋ฌผ์ด ํํ ๋๋๋ฐ ์์ด ํ์ํ ์ ๋ณด๋ค์ ์ป์ ์ ์๋ค.
Simulink ํน์ง
- ์ง๊ด์ ์ธ ๊ทธ๋ํฝ ์์คํ
๊ทธ๋ํฝ ๋ค์ด์ด๊ทธ๋จ์ ํตํด ๋ด๊ฐ ๋ง๋ค ์์คํ ์ ํํํ ์ ์์ผ๋ฏ๋ก ์ง๊ด์ ์ด๋ค. - ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ธ๋ก
MATLAB์์ ๋ค์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ ๊ณตํ๊ณ ์ฌ์ฉ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ค์ด๋ฐ์ ์์ ์๋ ํ์ํ ๋ธ๋ก๋ค์
์ฌ์ฉํ ์ ์๋ค. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ธ๋ก ์ ๋ณด๋ ์๋ ๋งํฌ์์ ํ์ธ ๊ฐ๋ฅํ๊ณ MATLAB์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค์ ์ค์น ํ์ผ์์ ๋ค์ด๋ก๋๊ฐ ๊ฐ๋ฅํ๋ค.
https://kr.mathworks.com/help/simulink/referencelist.html?type=block&listtype=cat&category=block-libraries&blocktype=all&capability=&s_tid=CRUX_topnav - ์๋ฎฌ๋ ์ด์
๋ฐ ๊ฒฐ๊ณผ ๋ถ์
๋ชจ๋ธ์ ๋ง๋ค์๋ค๋ฉด Simulink๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ ์ ๋์์ ์๋ฎฌ๋ ์ด์ ํ ์ ์์ผ๋ฉฐ, ์๋ฎฌ๋ ์ด์ ๊ฒฐ๊ณผ๋ ๋ง์ฐฌ๊ฐ์ง๋ก
์ง๊ด์ ์ธ ๊ทธ๋ํฝ์ผ๋ก ์ ๊ณต๋์ด, ์ค๊ณํ ์์คํ ์ ๋์์ ์ค์ ๋ก ํ์ธํ ์ ์๋ค. - ์๋ ์ฝ๋ ์์ฑ
Simulink ๋ชจ๋ธ์ MATLAB ์ฝ๋๋ก ์๋ ๋ณํ๋ ์ ์๋ค. ์ด๋ ํ๋กํ ํ์ ์ค๊ณ์์ ์์ํ์ฌ ์ค์ ์์คํ ์ ํตํฉ ๊ฐ๋ฅํ ์ฝ๋๋ก์ ์๋ ์ ํ์ ๊ฐ๋ฅ์ผ ํ๋ค.
Simulink ๊ตฌ์ฑ ์์
- ๋ธ๋ก(Block)
ํน์ ๋์์ด๋ ๊ธฐ๋ฅ์ ์ํํ๋ ์์คํ ์ ๊ตฌ์ฑ ์์๋ฅผ ๋ํ๋ธ๋ค. - ๋ผ์ธ(Line)
๋ธ๋ก ๊ฐ์ ์๊ทธ๋ ํ๋ฆ์ ๋ํ๋ธ๋ค. ์์คํ ์์ ๋ฐ์ดํฐ์ ํ๋ฆ์ ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ค๋๋ค. - ์ค์ฝํ(Scope)
์๋ฎฌ๋ ์ด์ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋ํฝ ํํ๋ก ํ์ํ์ฌ ๋์ ์์คํ ์ ๋์์ ํ์ธํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. - ํจ๋ ๋ฐ์ค(Terminator)
์๋ฎฌ๋ ์ด์ ์์ ๋ฌดํ ๋ฃจํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ฉฐ, ์์คํ ์ ๋์ ๋ํ๋ธ๋ค.
๐งช ์ฃผ์ ๋ธ๋ก ์ ๋ฆฌ
์ ํธ ์์ฑ ๋ฐ ์ ๋ ฅ ๋ธ๋ก
- Sine Wave ๋ธ๋ก: ์ฌ์ธ ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ฃผ๊ธฐ์ ์ธ ์ฌ์ธํ๋ฅผ ์์ฑ
- Cosine Wave ๋ธ๋ก: ์ฝ์ฌ์ธ ํจ์๋ฅผ ์ด์ฉํ์ฌ ์ฃผ๊ธฐ์ ์ธ ์ฝ์ฌ์ธํ๋ฅผ ์์ฑ
- Clock ๋ธ๋ก: ์ ํด์ง ์ฃผ๊ธฐ์ ํ์ค ํญ์ผ๋ก ์ ํธ๋ฅผ ์์ฑํ์ฌ ์์คํ ์ ๋๊ธฐํ
- Constant ๋ธ๋ก: ์ฌ์ฉ์๊ฐ ์ ์ํ ์์ ๊ฐ์ ์ถ๋ ฅํ๋ ๋ธ๋ก
- Step ๋ธ๋ก: ํน์ ์๊ฐ์์์ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ ๊ณ๋จ ํํ์ ์ ํธ๋ฅผ ์์ฑ
- Ramp ๋ธ๋ก: ์ผ์ ํ ๊ธฐ์ธ๊ธฐ๋ก ์ ํ์ ์ผ๋ก ์ฆ๊ฐํ๋ ์ ํธ๋ฅผ ์์ฑ
- Random Number ๋ธ๋ก: ์ ๊ท ๋ถํฌ ๋๋ ๊ท ์ผ ๋ถํฌ์์ ๋ฌด์์ ์๋ฅผ ์์ฑ
- Zero-Order Hold ๋ธ๋ก: ์ด์ ์๊ฐ ๋จ๊ณ์ ๊ฐ์ ํ์ฌ ์๊ฐ ๋จ๊ณ์์ ์ ์งํ๋ ๋ธ๋ก
์๊ฐํ ๋ฐ ์ถ๋ ฅ ๋ธ๋ก
- Scope ๋ธ๋ก: ์๋ฎฌ๋ ์ด์ ์ค์ ์๊ฐ์ ๋ฐ๋ฅธ ์ ํธ๋ฅผ ๊ทธ๋ํฝ์ผ๋ก ํ์
- Display ๋ธ๋ก: ์๋ฎฌ๋ ์ด์ ๊ฒฐ๊ณผ๋ ์ค๊ฐ๊ฐ์ ๋ช ๋ น ์ฐฝ์ ํ์ํ๋ ๋ธ๋ก
- To Workspace ๋ธ๋ก: ์๋ฎฌ๋ ์ด์ ๊ฒฐ๊ณผ๋ฅผ MATLAB ์์ ๊ณต๊ฐ์ผ๋ก ๋ณด๋ ๋๋ค.
- To File ๋ธ๋ก: ์๋ฎฌ๋ ์ด์ ๊ฒฐ๊ณผ๋ฅผ ํ์ผ๋ก ์ ์ฅํฉ๋๋ค.
- Bode Plot ๋ธ๋ก: ์ฃผ์ด์ง ์์คํ ์ ์ฃผํ์ ์๋ต์ Bode ํ๋กฏ์ผ๋ก ์๊ฐํํฉ๋๋ค.
- Nichols Plot ๋ธ๋ก: ์ฃผ์ด์ง ์์คํ ์ ์ฃผํ์ ์๋ต์ Nichols ํ๋กฏ์ผ๋ก ์๊ฐํํฉ๋๋ค.
- Spectrum Analyzer ๋ธ๋ก: ์ฃผ์ด์ง ์ ํธ์ ์ฃผํ์ ๋ด์ญ์ ๋ถ์ํ์ฌ ์คํํธ๋ผ์ ํ์ํฉ๋๋ค.
์ฐ์ฐ ๋ธ๋ก
- Sum ๋ธ๋ก: ์ฌ๋ฌ ์ ๋ ฅ์ ํฉํ์ฌ ์ถ๋ ฅํ๋ ๋ธ๋ก์ผ๋ก, ๋ง์ ์ฐ์ฐ์ ์ํ
- Product ๋ธ๋ก: ์ฌ๋ฌ ์ ๋ ฅ์ ๊ณฑํ์ฌ ์ถ๋ ฅํ๋ ๋ธ๋ก์ผ๋ก, ๊ณฑ์ ์ฐ์ฐ์ ์ํ
- Divide ๋ธ๋ก: ๋ ์ ๋ ฅ์ ๋๋์ด ์ถ๋ ฅํ๋ ๋ธ๋ก์ผ๋ก, ๋๋์ ์ฐ์ฐ์ ์ํ
- Add ๋ธ๋ก: ๋ง์ ์ ์ํํ๋ ๋ธ๋ก์ผ๋ก, ์ฌ๋ฌ ์ ๋ ฅ์ ๋ํ์ฌ ์ถ๋ ฅ
- Subtract ๋ธ๋ก: ๋บ์ ์ ์ํํ๋ ๋ธ๋ก์ผ๋ก, ์ฌ๋ฌ ์ ๋ ฅ์ ๋นผ์ ์ถ๋ ฅ
- Gain ๋ธ๋ก: ์ ๋ ฅ์ ์์๋ฅผ ๊ณฑํ์ฌ ์ถ๋ ฅ์ ์์ฑํ๋ ๋ธ๋ก
- Math Function ๋ธ๋ก: ๋ค์ํ ์ํ ํจ์๋ฅผ ํฌํจํ์ฌ ๋ณต์กํ ๊ณ์ฐ์ ์ํ
- Determinant ๋ธ๋ก: ํ๋ ฌ์ ํ๋ ฌ์(ํ๋ ฌ determinant)์ ๊ณ์ฐํ๋ ๋ธ๋ก
- Invert ๋ธ๋ก: ํ๋ ฌ์ ์ญํ๋ ฌ์ ๊ณ์ฐํ๋ ๋ธ๋ก
- Logical Operator ๋ธ๋ก: ๋ ผ๋ฆฌ ์ฐ์ฐ์ ์ํํ์ฌ ์ถ๋ ฅ์ ์์ฑํ๋ ๋ธ๋ก
- Matrix Concatenate ๋ธ๋ก: ํ๋ ฌ์ ๊ฒฐํฉํ์ฌ ์ถ๋ ฅ์ ์์ฑํ๋ ๋ธ๋ก
- Dot Product ๋ธ๋ก: ๋ ๋ฒกํฐ์ ๋ด์ ์ ๊ณ์ฐํ๋ ๋ธ๋ก
- Cross Product ๋ธ๋ก: ๋ ๋ฒกํฐ์ ์ธ์ ์ ๊ณ์ฐํ๋ ๋ธ๋ก
- Rounding Function ๋ธ๋ก: ์ ๋ ฅ์ ๊ฐ์ฅ ๊ฐ๊น์ด ์ ์๋ก ๋ฐ์ฌ๋ฆผํ๋ ๋ธ๋ก
- MinMax ๋ธ๋ก: ์ ๋ ฅ ๊ฐ ์ค ์ต์ ๋๋ ์ต๋ ๊ฐ์ ์ ํํ์ฌ ์ถ๋ ฅํ๋ ๋ธ๋ก
- Trigonometric Function ๋ธ๋ก: ์ผ๊ฐ ํจ์๋ฅผ ๊ณ์ฐํ์ฌ ์ถ๋ ฅ์ ์์ฑํ๋ ๋ธ๋ก
์ ์ด ์์คํ ๋ธ๋ก
- PID Controller ๋ธ๋ก: PID ์ ์ด ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์์คํ ์ ์ ์ดํ๋ ๋ธ๋ก
- State-Space ๋ธ๋ก: ์์คํ ์ ์ํ-๊ณต๊ฐ ํํ์ ์ฌ์ฉํ์ฌ ๋์ ์์คํ ์ ๋ชจ๋ธ๋งํ๋ ๋ธ๋ก
- Transfer Fcn ๋ธ๋ก: ์ ๋ฌ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์คํ ์ ๋ชจ๋ธ๋งํ๋ ๋ธ๋ก
์ ๊ธฐ ๋ฐ ์ ์ ๋ธ๋ก
- DC Voltage Source ๋ธ๋ก: ์ง๋ฅ ์ ์ ์์ค๋ฅผ ๋ํ๋ด๋ฉฐ, ์๋ฎฌ๋ ์ด์ ์ ์ง๋ฅ ์ ์์ ์ฃผ์
- AC Voltage Source ๋ธ๋ก: ๊ต๋ฅ ์ ์ ์์ค๋ฅผ ๋ํ๋ด๋ฉฐ, ์๋ฎฌ๋ ์ด์ ์ ๊ต๋ฅ ์ ์์ ์ฃผ์
- Series RLC Branch ๋ธ๋ก: RLC ํ๋ก์ ์ผ๋ถ๋ก ์๋ฎฌ๋ ์ด์ ์ ์ฌ์ฉ๋๋ ๋ธ๋ก
- Voltage Measurement ๋ธ๋ก: ํน์ ์์น์ ์ ์์ ์ธก์ ํ์ฌ ํ์ํ๋ ๋ธ๋ก
- Current Measurement ๋ธ๋ก: ํน์ ์์น์ ์ ๋ฅ๋ฅผ ์ธก์ ํ์ฌ ํ์ํ๋ ๋ธ๋ก
- Op-Amp ๋ธ๋ก: ์คํผ์ฐํ(Operational Amplifier)๋ฅผ ๋ํ๋ด๋ฉฐ, ๋ค์ํ ํ๋ก์์ ์ฌ์ฉ
- Electrical Reference ๋ธ๋ก: ์ ๊ธฐ ์์คํ ์์์ ๊ธฐ์ค์ ์ ์ค์ ํ๋ ๋ธ๋ก
- Solver Configuration ๋ธ๋ก: ์๋ฎฌ๋ ์ด์ ์๋ฒ์ ์ค์ ์ ์ ์ดํ๋ ๋ธ๋ก
- Voltage Sensor ๋ธ๋ก: ํน์ ์์น์์์ ์ ์์ ์ธก์ ํ๋ ๋ธ๋ก
- PS-Simulink Converter ๋ธ๋ก: Simulink์ PowerSimulator ๊ฐ์ ์ํธ ๋ณํ์ ์ฒ๋ฆฌํ๋ ๋ธ๋ก
๐งช ์์ ์ค์ต
- ์งํญ์ด 3์ธ ์ฌ์ธ ํํ ๋ชจ๋ธ์ ์ค๊ณ, ์๋ฎฌ๋ ์ด์
๊ฒฐ๊ณผ๋ฅผ ์ค์ฝํ์ฐฝ๊ณผ ๊ทธ๋ฆผ์ฐฝ์ 0์ด ๋ถํฐ 20์ด ๊น์ง ์ถ๋ ฅํ๋ผ
- ๋ธ๋ก ์ค๊ณ ๊ฒฐ๊ณผ
Sine Wave์ 3์ Gain์ ์ถ๊ฐํ์ฌ ์งํญ 3์ ํํ์ ๋ง๋ค๊ณ Scope๋ฅผ ๋ฌ์ ํ์ธ
1์ด์ ๊ฐ๊ฒฉ์ ๊ฐ์ง๋ timeVector์ ๊ฐ์ด ์ ๋ฌํ๊ธฐ ์ํด Clock ๋ธ๋ก์ Mux ๋ธ๋ก์ ํตํด ๊ฐ์ด Workspace ๋ธ๋ก์ ์ฐ๊ฒฐ ํ์๋ค. - ์๋ฎฌ๋ ์ด์
๊ฒฐ๊ณผ
Mux๋ก ๋ถํฐ ์ด๋ป๊ฒ ๋ฐ์ดํฐ๊ฐ ์ถ๋ ฅ๋๋์ง ๋ชฐ๋ผ whos๋ฅผ ํตํด out์ด๋ผ๋ ๊ฐ์ฒด ์์ res์ tout ํ๋๋ก
์ถ๋ ฅ๋จ ํ์ธ ํ ๊ฒฐ๊ณผ๋ฅผ ํ๋กํ ํ์๋ค.
๋ค๋ง ์ฒ์ ํ๋กํ ํ์์ ๋ sin ๊ทธ๋ํ ์ธ์๋ y = x ๊ทธ๋ํ๊ฐ ๋ ๋ฒ์งธ ์ด์ ๋ํ ๊ทธ๋ํ๋ก ๊ฐ์ด ์ถ๋ ฅ์ด ๋์๋ค.
์๋ฎฌ๋ ์ด์ ๋ชจ๋ธ์ ์ถ๋ ฅ ๋๊ฒ๋ ์ค์ ์ด ๋์ด์๋ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.
๋ฐ๋ผ์ ์ฒซ ๋ฒ์งธ ์ด์ ๋ํ ๊ทธ๋ํ๋ง ํ๋กํ ํ๋๋ก ์๋์ ๊ฐ์ด ์์ ํ์๋ค.
% out ๋ณ์์์ ๋ฐ์ดํฐ ์ถ์ถ simData = out.res; timeVector = out.tout; % ๊ฒฐ๊ณผ ํ๋กํ - ์ฒซ ๋ฒ์งธ ์ด์ ๋ํ ๊ทธ๋ํ๋ง figure; plot(timeVector, simData(:, 1)); hold on; xlabel('x_value'); ylabel('y_value'); title('Sin Graph'); grid on; % Legend ์ถ๊ฐ legend('Column 1 (sin)');
- ๋ธ๋ก ์ค๊ณ ๊ฒฐ๊ณผ
- 3๊ฐ์ 2x2์ ํ๋ ฌ์ด ์๋ค. ๊ฐ์ ์ฌ์ฉ์๊ฐ ๋ฌด์์๋ก ์
๋ ฅํ๊ณ res = (a + b) *c ์ฐ์ฐ ๋ชจ๋ธ์ ์ค๊ณํ๋ผ
- ๋ธ๋ก ์ค๊ณ ๋ฐ ๊ฒฐ๊ณผ
Constant ๋ธ๋ก์ ํ๋ ฌ๊ฐ์ ์ ๋ ฅํด ํ๋ ฌ์ ๋ง๋ค๊ณ . sum ๋ธ๋ก, product ๋ธ๋ก์ ์ด์ฉํด ์ฐ์ฐ, display ๋ธ๋ก์ ํตํด
๋ฐ๋ก ๊ฐ์ ํ์ธํ ์ ์๊ฒ ์ค๊ณํ์์ต๋๋ค.
- ๋ธ๋ก ์ค๊ณ ๋ฐ ๊ฒฐ๊ณผ
- ํ๊ท ์ด 10, ๋ถ์ฐ์ด 9์ธ ์ ๊ท๋ถํฌ์ ํ๋ฅ 2000๊ฐ๋ฅผ ์์ฑํ๋ ๋ชจ๋ธ์ ์ค๊ณํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ํ์คํ ๊ทธ๋จ์ผ๋ก ๋ํ๋ด๊ธฐ
- ๋ธ๋ก ์ค๊ณ ๊ฒฐ๊ณผ
x์ด ๋์ y์ด์ ์ํ ์๊ฐ์ ๊ฐ์ง๊ณ 2000๊ฐ์ ์ํ์ ์์ฑํด์ผ ํ๋ 20์ด / 0.01 ์ด ์ฆ 0.01์ด์ 1๊ฐ์ฉ 20์ด ๋์
์ํ์ ์์ฑํ๋๋ก ์ค์ ํ๋ฉด ๋๋ค.
min ๊ฐ๊ณผ max ๊ฐ์ rounding(์ ์ํ) ํ์ฌ ํ์คํ ๊ทธ๋จ์ ๊ทธ๋ฆด ๋ ํ์ฉํ๋ ๋ฐฉ๋ฒ๋ ์์ผ๋ ํ์ฉํ์ง ์์๋ค.
ํ์คํ ๊ทธ๋จ์ ๋ํ๋ด๊ธฐ ์ํด ์ฐ์ ์ํ๊ฐ ์๋ ์ด์ฐ ์๋ฒ๋ฅผ ์ ํํด ์ฃผ๊ณ ์ ํ์ ๊ณ ์ ์คํญ์ผ๋ก ๋ณ๊ฒฝํด ์ฃผ์๋ค.
- ์๋ฎฌ๋ ์ด์
์คํ ๊ฒฐ๊ณผ
์คํ ๊ฒฐ๊ณผ ํ๊ท ๊ฐ๊ณผ ๋ถ์ฐ ๊ฐ์ด 10๊ณผ 9์ ๊ฐ๊น์ด ๊ฐ์ด ์ ๋์์ผ๋ฉฐ ์ํ๋ง ๊ฐ์๊ฐ ์ฆ๊ฐํ ์๋ก ๋ ๊ทผ์ฌ๊ฐ์ด ๋์ฌ ๊ฒ์ผ๋ก ๋ณด์๋ค.% ๋ฐ์ดํฐ ์ถ์ถ randomValues = out.x.Data; % ํ์คํ ๊ทธ๋จ ๊ทธ๋ฆฌ๊ธฐ figure; hist(randomValues, 0:20); xlabel('Random Values'); ylabel('Absolute Frequency'); title('Histogram of Random Numbers'); % ํ๊ท ๊ณผ ๋ถ์ฐ ๊ณ์ฐ meanValue = mean(randomValues); varianceValue = var(randomValues); % ํ์คํ ๊ทธ๋จ ์์ ํ๊ท ๊ณผ ๋ถ์ฐ ํ์ hold on; line([meanValue, meanValue], ylim, 'Color', 'r', 'LineWidth', 2, 'LineStyle', '--'); line([meanValue - sqrt(varianceValue), meanValue - sqrt(varianceValue)], ylim, 'Color', 'b', 'LineWidth', 2, 'LineStyle', '--'); line([meanValue + sqrt(varianceValue), meanValue + sqrt(varianceValue)], ylim, 'Color', 'b', 'LineWidth', 2, 'LineStyle', '--'); legend('Histogram', 'Mean', 'Mean - Std Dev', 'Mean + Std Dev'); hold off; % ๊ฒฐ๊ณผ ์ถ๋ ฅ disp(['ํ๊ท : ', num2str(meanValue)]); disp(['๋ถ์ฐ: ', num2str(varianceValue)]);
- ๋ธ๋ก ์ค๊ณ ๊ฒฐ๊ณผ
- Vs = 5V, R1 = 3โฆ, R2 = 2โฆ ์ด ์ง๋ ฌ ์ฐ๊ฒฐ๋ ํ๋ก๊ฐ ์๋ค. V1, V2 ์ ์์ ๊ตฌํ๋ ๋ชจ๋ธ์ ์ค๊ณํ๋ผ
- ๋ธ๋ก ์ค๊ณ ๋ฐ ์๋ฎฌ๋ ์ด์
๊ฒฐ๊ณผ
DC voltage ์ด๊ธฐ ๋๋ฌธ์ powergui๋ฅผ phasor๊ฐ ์๋ Continuous ๋ชจ๋๋ก ์ค์ ํ์ฌ ์ ๋ฅ๊ฐ ์ฐ์์ ์ผ๋ก ํ๋ฌ
์ ์์ ๋ณํ ๋ฑ์ ๊ด์ธกํ ์ ์๊ฒ ์ค์ ํ์๋ค.
(โป ํ์ฌ ํ๋ก์์ ์๊ฐ์ ๋ฐ๋ผ ๋ณํ๋ ๊ฒ ๊ฐ์ ์์ด powergui๋ฅผ ์ฌ์ฉํ์ง ์์๋ ๋ฌด๋ฐฉํ๋ค.)
voltage measure ment ๋ธ๋ก์ powergui๊ฐ phasor ์ผ ๋, ์ฆ AC voltage source ์ผ ๋์๋ง
์ ์ ํ์ธ์ด ๋ฐ๋ก ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ scope๋ฅผ ์ถ๊ฐ ์ฐ๊ฒฐ ํ Display ๋ธ๋ก์ ๊ฐ์ ํ์ํ์๋ค.
- ๋ธ๋ก ์ค๊ณ ๋ฐ ์๋ฎฌ๋ ์ด์
๊ฒฐ๊ณผ
- R = 5 โฆ, C = 0.25[F], L = 1[H]์ผ ๋, ์ธ๋ํฐ์ ํ๋ฅด๋ ์ ๋ฅ iL(t)๋ฅผ ๊ตฌํ๋ ์๋ฎฌ๋งํฌ ๋ชจ๋ธ์ ์ค๊ณํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ค์ฝํ ์ฐฝ์ ๋ํ๋ด๋ผ. ๋จ, ์ ์์์ Vs = 10sin(2πt)[V] ์ด๊ณ ์ด๊ธฐ ์กฐ๊ฑด์ iL(0) = 1[A], Vc(0) = 5[V] ์ด๋ค.
- ๋ธ๋ก ์ค๊ณ ๊ฒฐ๊ณผ
Vs = 10sin(2πt)[V] ์ด๋ฏ๋ก ์งํญ(Peak amplitude)๋ 10V์ด๊ณ ์ฃผํ์๋ 1/2pi ์ด๋ค.
๋ฐ๋ผ์ Vs๋ฅผ ์๋์ ๊ฐ์ด ์ค์ ํ๊ณ , ์ธ๋ํฐ์ ์ปคํจ์ํฐ์ ๊ฐ์ ์ฃผ์ด์ง ์กฐ๊ฑด๋๋ก ์ค์ ํ์๋ค.
์ง๋ ฌ ์ฐ๊ฒฐ์ด๊ณ ์ธ๋ํฐ์ ํ๋ฅด๋ ์ ๋ฅ๋ฅผ ๊ตฌํ๊ธฐ ๋๋ฌธ์ ์ธ๋ํฐ ๋ค์ ์ ๋ฅ ์ธก์ ๊ณ๋ฅผ ๋ฌ์๋ค.
- ์๋ฎฌ๋ ์ด์
๊ฒฐ๊ณผ
์ฌ์ธํ ์ ์์์ ์ฌ์ฉํ์๊ธฐ ๋๋ฌธ์, ํ๋ก์ ์๊ฐ ์๋ต์ผ๋ก ๋ํ๋๋ ์ ๋ฅ ๊ทธ๋ํ ๋ํ ์ฌ์ธํ๋ก ๋ํ๋จ
์ฃผํ์, ์งํญ, ์ฃผ๊ธฐ ๊ฐ์ ์๋ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ถ๋ ฅ๋์๋ค. ์ง์ ๊ณ์ฐํ ๊ฐ๊ณผ ๋น๊ตํด ๋ณผ ์ ์งํญ์ ์ ์ธํ๊ณ ๋
์ผ์นํ๋ค. (์งํญ์ ๊ฒฝ์ฐ MATLAB์์ ๊ฐ์ด๋์ค ๋ฐฉ๋ฒ ์ธ์ ์ฝ๋๊ฐ ์๋์ง ์ฐพ์๋ด์ผ๊ฒ ๋ค.)
f = 1 / (2 * pi * L * C) = 1 / (2 * pi * 1 * 0.25) = 0.20943
T = 1/ f = 1 / 0.20943 = 4.77
A = Vs / R = 2
% ์๊ฐ ๋ฐ ๋ฐ์ดํฐ ์ถ์ถ time = out.res.Time; current_data = out.res.Data; % ์ฃผํ์ ๊ณ์ฐ fs = 1 / (time(2) - time(1)); % ์ํ๋ง ์ฃผํ์ n = length(current_data); frequencies = (0:n-1) * fs / n; % ์ฃผํ์ ๋ฒกํฐ amplitudes = abs(fft(current_data)); % ์ฃผํ์ ์์ญ์์์ ์งํญ % ์ฃผํ์ ์์ญ์์์ ์ฃผํ์, ์งํญ [~, index] = max(amplitudes(1:n/2)); peak_frequency = frequencies(index); peak_amplitude = amplitudes(index); % ์ฃผ๊ธฐ ๊ณ์ฐ period = 1 / peak_frequency; % ๊ฒฐ๊ณผ ์ถ๋ ฅ fprintf('์ฃผํ์: %.4f Hz\n', peak_frequency); fprintf('์งํญ: %.4f\n', peak_amplitude); fprintf('์ฃผ๊ธฐ: %.4f ์ด\n', period);
- ๋ธ๋ก ์ค๊ณ ๊ฒฐ๊ณผ
- ๋น๋ฐ์ ์ฐ์ฐ ์ฆํญ๊ธฐ ํ๋ก์ ์ถ๋ ฅ ์ ์ Vo๋ฅผ ๊ตฌํ๋ ์๋ฎฌ๋งํฌ ๋ชจ๋ธ์ ์ค๊ณํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ผ
- ๋ธ๋ก ์ค๊ณ ๋ฐ ์๋ฎฌ๋ ์ด์
๊ฒฐ๊ณผ
SImscape์ Simulink์ ๋ธ๋ก์ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ก ์ฐ๊ฒฐ์ด ๋ถ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์
๋๋ฌธ์ Voltage measurement ๋ธ๋ก ๋์ ์ ์์ ์ธก์ ํ๊ธฐ ์ํด์ V Sensor ๋ธ๋ก์ ์ฌ์ฉํ๋ค.
์ ์๋ฌ๊ฐ ๋ฐ์ํ์ฌ Solver Configuration ๋ธ๋ก์ ์ถ๊ฐํ์๋ค. opamp ํ๋ก์ ๋ณต์ก์ฑ๊ณผ ๋ค์ํ ๋ฌผ๋ฆฌ ๋๋ฉ์ธ์ ๋ชจ๋ธ๋งํ๊ธฐ ์ํด์๋ Solver Configuration ๋ธ๋ก์ด ํ์ํ ๊ฒ์ผ๋ก ๋ณด์ธ๋ค.['op_amp/GND', 'op_amp/OpAmp', 'op_amp/PS--Simulink Converter', 'op_amp/R1(5kΩ)', 'op_amp/R2(20kΩ)', 'op_amp/V Sensor', 'op_amp/Vs(3V)']: ๊ฐ ๋ฌผ๋ฆฌ ๋คํธ์ํฌ๋ ์ ํํ ํ๋์ Solver Configuration ๋ธ๋ก์ ์ฐ๊ฒฐ๋์ด์ผ ํฉ๋๋ค. ๋ค์ ๋ธ๋ก์ ํฌํจํ๋ ๋ฌผ๋ฆฌ ๋คํธ์ํฌ์ ์ฐ๊ฒฐ๋ Solver Configuration ๋ธ๋ก์ด ์์: 'op_amp/GND'โ
Simscape์์ Simulink๋ก ์ ํธ๋ฅผ ๋ณํํ์ฌ Scope์ ์ฐ๊ฒฐํ๊ธฐ ์ํด์ PS-Simulink Converter์ ์ฌ์ฉํ์๋ค.
์ด๋ก ๊ฐ Vo = (1 + 20/5)*3 = 15[V]๊ณผ ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋์๋ค.
- ๋ธ๋ก ์ค๊ณ ๋ฐ ์๋ฎฌ๋ ์ด์
๊ฒฐ๊ณผ
- 5์ด ๋์ ์ ์ v(t) = 165cos(10t+20°)[V]์ ์๊ฐ ์ ๋ฅ i(t) = 20 sin(10t+60 °)[A]์ ์ํด ์์ฑ๋๋ ํ๊ท ์ ๋ ฅ์ ๋ณด์ฌ์ฃผ๋ ๋ชจ๋ธ์ ์ค๊ณํ๊ณ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ํ๋ด๋ผ. ํ๋ณธ ์๊ฐ์ 0.01[s]๋ก ์ค์ ํ๋ค.
- ๋ธ๋ก ์ค๊ณ ๋ฐ ์๋ฎฌ๋ ์ด์
๊ฒฐ๊ณผ
1.1 simpcase ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๊ฒฝ์ฐ cosine wave๊ฐ ์์ด sineํ๋ฅผ ์ฌ์ฉํ๊ณ ์์์ pi/2๋ฅผ ๋ํ์ฌ ์ฌ์ฉํ์๋ค.
1.2 v(t)์ i(t)๋ฅผ ๊ณฑํด ์ ๋ ฅ๊ฐ์ ๊ตฌํ๋ค. P = VI
1.3 ์ ๋ ฅ๊ฐ์ ์ ๋ถํ์ฌ t์๊ฐ ๊น์ง์ ๋์ ์๋์ง๊ฐ์ ๊ตฌํ๋ค. E(t)=∫0tโp(τ)dτ (โป p(τ) -> 1.2์์ ๊ตฌํ ์ ๋ ฅ๊ฐ)
1.4 ๋์ ์๋์ง๊ฐ์ ์ด์๊ฐ์ธ 5์ด๋ก ๋๋์ด ํ๊ท ์๋์ง ์ฆ ํ๊ท ์ ๋ ฅ ๊ฐ์ ๊ตฌํ๋ค.
์ด๋ก ์ ์ผ๋ก ๊ณ์ฐํ ํ๊ท ์ ๋ ฅ๊ฐ๊ณผ ์ฝ 7[W]์ ์ค์ฐจ๊ฐ ์์๋ค.
(โป์ด๋ก ๊ณ์ฐ : Pavgโ=51โ∫05โ165cos(10t+20°)⋅20sin(10t+60°)dt = 1060[W])
- ๋ธ๋ก ์ค๊ณ ๋ฐ ์๋ฎฌ๋ ์ด์
๊ฒฐ๊ณผ
'embedded' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
SOC(FPGA/ASIC) ์ ๋ฆฌ (0) | 2024.03.12 |
---|---|
AutoSAR ์ ๋ฆฌ (0) | 2024.01.16 |
MATLAB ์ ๋ฆฌ (0) | 2024.01.08 |
[ubuntu] MySQL ํ์ฉ IoT ๋ฐ์ดํฐ ์ ์ด ์ค์ต (0) | 2023.11.23 |
[ubuntu] ์์ผ ํต์ ์ฑํ ์๋ฒ (0) | 2023.11.23 |