분류 전체보기 766

Nyquist Plot 이란? (파이썬으로 그리기 예제 포함)

Nyquist Plot 이란? (파이썬으로 그리기 예제 포함) Nyquist Plot (나이퀴스트, 나이키스트) ? Nyquist plot 은 선형(linear) 시스템의 주파수 함수 응답을 극좌표(Polar) 선도(plot)으로 표현한 것이다. 일반적으로 제어 시스템의 안정성과 성능을 예측할 때 사용한다. 그리고 진동(vibration) 분석에서는 모달(modal) 파라미터를 얻기 위해도 사용한다. 그림1은 임팩트 해머를 시편에 가하고 측정한 FRF(Frequency response function)을 Nyquist plot 으로 전개한 화면이다. x축은 Real 값이고 Y축은 Imaginary 값이다. FRF에 대해 더 자세히 알고 싶다면 아래 링크를 참조하길 바란다. scribblinganythin..

여러가지공부 2021.05.11

Bode Plot 이란? 사용 방법과 그리는 방법, 파이썬을 사용하여 그래프 검증

Bode Plot (보드선도) 란? 회로나 기계장치 등 선형적인 성질을 가진 제품에 대해 입력을 넣으면 그에 따른 응답이 나온다. 그림1은 어떤 시스템에 입력 X 를 넣고 Y라는 응답을 얻어서 H라는 전달 함수를 가져왔다. 여기서 전달함수 H 를 계산할 수 있다. 그리고 위 그림1에서 알 수 있는 점은 X, Y 입력 값을 s를 사용하였는데 이는 시간 함수를 라플라스 변환하여 주파수 성분 변경한 것이다. 주파수 변경을 위해서 전제되어야 하는 점은 시스템이 LTI (Linear Time Invariant) 라는 것이다. 즉, 시간에 관계없이 동일한 주파수 특성을 가지는 것이다. 보드선도는 x축을 주파수 축으로 y축은 전달함수의 크기(amplitude) 가 된다. 크기는 일반적으로 dB로 표기한다. 전달함수는..

여러가지공부 2021.05.10

Jinja2 조건문, 반복문 예제로 익혀보기 (if문, for문, flask)

Jinja2 란? 간단히 설명하면 HTML과 같은 웹페이지에서 파이썬과 유사한 문법을 사용해서 페이지 프로그램을 지원하는 템플릿임. 예를 들어 파이선(python) flask에서 어떤 값을 보내주면 웹페이지에서 해당 값을 프로그램해서 상황에 맞게 동작시킬 수있다. jinja2 사용 양식>> {{ 입력받은 값 }} {% 프로그램 언어 %} 위 코드처럼 HTML 문서에서 jinja2를 사용할 경우 일반 변수만을 화면에 출력할 경우 {{ }} 에 넣어주면된다. if나 for와 같은 프로그램을 작성할 경우 {% %} 안에서 작성하여야 한다. Jinja2 조건문 예제 (if문) 예제 동작을 간단하게 설명하면, http://localhost:9999/jinja_test 에 접속하면 var1, var2 변수를 넣는 ..

사인 스윕파(Sine Sweep)의 사이클(Cycle) 계산 방법(Calculation)

사인 스윕이란? 그리고 사이클 갯수가 필요한 이유 Sinusoidal Sweep wave, 사이파는 그림1처럼 시간이 흐름에 따라서 사인파의 주파수가 변경된다. 즉, 주파수가 시간에 연계되어 변하는 것이다. 주파수 변경 방법은 아래와 같이 2가지 방법이 있다. 선형적(Linear) 사인 sweep wave : 주파수가 시간에 비례해서 증가한다. 대수적(Logarithmic) 사인 sweep wave : 주파수가 시간에 지수적으로 비례해서 증가한다. Sine sweep 파형은 시험 규격에서 종종 나오는데 Sine sweep으로 진동이나 시험을 진행하여 몇 번의 싸이클(Cycle)로 시편에 힘을 가했는지에 따라 피로도(Fatigue)나 내구성(Durability)를 확인할 수 있다. 일반 사인파의 경우 사이..

여러가지공부 2021.05.06

파이썬 flask에서 render_template 함수 예제로 이해해보기

render_template 란? render_template 함수는 flask에서 제공하는 함수로 templates에 저장된 html을 불러올 때 사용하는 함수 이다. 아래 예제를 통해 이해해보자. render_template 실습 예제 a_page.html >> a_page goto_b_page b_page.html>> b_page test.py>> from flask import Flask, render_template app = Flask(__name__) @app.route('/goto_a_page') def goto_a_page(): return render_template('a_page.html') @app.route('/b_page') def goto_b_page(): return rend..

랜덤 진동 이란? (Random Vibration Testing)?

Random Vibration (랜덤진동) 도로 위의 차량, 로켓 발사, 터뷸런스 중에 비행기 날개 등에서 발생하는 진동은 반복적이지 않고 예측이 어렵다(Not repetitive, Unpredictable). 그림1은 운전중에 대시보드에 가속도 센서를 부착하고 측정한 가속도 값이다. 그래프에서 볼수 있듯이 예측이 어렵고 반복적이지 않다. 그러므로 현실을 반영하기 위해서 Random vibration 시험이 필요하다. Random (랜덤) vs Sine (사인) 사인파 진동 시험은 특정 주파수에 맞추어 진동을 일으킨다. 하지만 랜덤 진동 시험의 경우 규정된 스펙트럼(Spectrum)의 모든 주파수에서 가진 시켜준다. Tustin의 랜덤파형 정의에 따르면 "사람들은 10~2000Hz의 범위가 있다면 199..

여러가지공부 2021.05.04

진동에서 변위,속도,가속도의 관계 (Vibration, Displacement, Velocity, Acceleration)

진동에서 변위,속도,가속도의 관계 그림1과 같이 고정된 축이 흔들릴 경우 y축의 시간에 따른 움직임은 사인파(Sine wave)이다. 즉, 변위(Displacement)에 대한 파형을 알 수 있으면 시간에 따른 미분으로 속도(Velocity), 가속도(Acceleration)의 파형도 그릴 수 있다. 반대로 가속도를 알 수 있으면 적분으로 나머지 변위와 속도에 대한 정보를 얻을 수 있다. 사인파에서 가속도, 속도, 변위의 차이는 위상(Phase)이다. 진동(vibration)에서 가속도, 속도, 변위의 위상 관계는 중요하지 않다. 주파수 영역에서 가속도, 속도, 변위의 진폭(amplitude)가 변하는 데 이 점을 유의 해야한다. 예제를 통해 진동에서 변위,속도,가속도의 관계 이해하기 가속도센서(Acce..

여러가지공부 2021.05.04

Visual studio, HTML 자동 완성 설정하는 방법(HTML:5)

Visual studio, HTML 자동 완성 설정하는 방법 1. Extensions 에서 HTML Snippets 설치 위 그림과 같이 HTML Snippets을 설치한다. 2. View - Command Palette 실행 또는 Ctrl+Shift+P 실행 그림처럼 팔레트를 실행한다. 3. Extension: HTML Snippets 을 아래 그림처럼 실행 4. 아래 그림처럼 오른쪽 하단(파란색에 흰색글)에 값을 HTML로 변경 (만일 HTML이면 변경 필요 없음, 다른 값일 경우 클릭해서 HTML로 변경) 5. 프로그램 종료후 다시 실행 후 html 파일을 만들고 html을 천천히치면 아래 화면처럼 html:5 가 나옴 6. 아래 그림처럼 자동 완성됨

파이썬(Python) 2021.05.03

REST API란? flask를 통해 예제 실습하기

REST API 개념 REST 는 REpresentational State Transfer 의 줄임말이다. 검색을 통해 찾아보면 일반적으로 자원(resource)을 이름으로 구분해서 자원의 정보를 주고 받는 것을 의미한다라고 나와 있다. 위처럼 정의로 의미를 알기는 어려워서 내가 사용하는 환경(파이썬)의 예를 통해 설명하려고 한다. flask를 통해서 인구 정보를 가진 웹을 구축하였다고 예를 들어 보자. 그리고 해당 인구 정보는 DB에서 관리된다. 인구 정보를 DB에서 가져오려고 하는데 해당 웹페이지를 모두 로딩할 필요없이 사전에 약속된 주소로 DB값만 요청이 가능하게 만들 수 있다. 여기서 약속된 주소를 자원(resource)을 표현(representation)하였다고 한다. 한마디로 (flask에서 ..

파이썬 *args, **kwargs 의미와 예제를 통해 이해하기

파이썬 *args, **kwargs 의미와 예제를 통해 이해하기 예제 코드>> def a_func(*args, **kwargs): print(args) print("###########") for key, value in kwargs.items(): print(key) print(value) print("1번 예제") a_func(name='kc') print("") print("2번 예제") a_func("hi", name='kc') print("") print("3번 예제") a_func("hi", {"myname",'kc'}) print("") print("4번 예제") a_func(1,2,3) print("") 코드 결과>> 1번 예제 () ########### name kc 2번 예제 ('hi'..