본문 바로가기
반응형

전체 글214

[CMake] CMake란 CMake는 빌드 파일을 생성 및 배포를 위한 패키지 생성에 이르는 과정을 모두 해주는 프로그램을 의미합니다. 즉, CMake를 통해서 프로젝트를 빌드하는 것이 아닌, CMake를 통해서 빌드 파일을 생성하는 단계까지 해주는 프로그램을 의미합니다. 빌드 파일을 만든다면 그 후 빌드 프로그램을 이용하여 프로젝트를 빌드하게 됩니다. 좀 더 히스토리를 보겠습니다. Compile & Linking (컴파일과 링킹) 컴파일은 소스코드를 어셈블리어로 바꿔주는 과정이며 소스파일 (.c)에서 목적파일 (.o)를 생성하는 과정을 의미합니다. 그리고 링킹은 서로 다른 파일에 있는 목적파일들을 한 군데 묶어서 하나의 실행파일로 만드는 과정을 의미합니다. 하지만 프로젝트가 커져서 만약 컴파일을 수행해야 할 파일들이 많아지게 .. 2023. 1. 14.
[CMake] 윈도우 (Window)에 CMake 설치 CMake는 대표적인 C/C++ 프로젝트 빌드 도구입니다. 리눅스에서도 사용하기도 하며 윈도우에서 설치하는 방법은 다음과 같습니다. 설치를 위해서 우선 CMake 공식 홈페이지의 다운로드 페이지로 이동합니다. 주소: https://cmake.org/download/ Download | CMake Current development distribution Each night binaries are created as part of the testing process. Other than passing all of the tests in CMake, this version of CMake should not be expected to work in a production environment. It is b.. 2023. 1. 14.
애자일 & 스크럼 프로젝트 관리 애자일과 스크럼은 소프트웨어 업계에서 정말 많이 나오는 프로젝트 관리 방법들입니다. 먼저 애자일 스크럼 이전의 전통적 프로젝트 수행 방식에는 어떤 한계가 있었는지 살펴보겠습니다. 전통적인 수행 방식은 크게 규격화된 틀조차 없이 제조업에서 일하는 문화로 진행되었으며 이러한 수행 방식에는 다음과 같은 한계들이 존재하였습니다. 1. 프로젝트 초기에 구체적인 요구사항을 도출하기 어렵다. 분석, 설계, 구현, 테스트를 순차적으로 진행하는 폭포수 개발 방식은 분석단계에서 충분한 시간 투자를 진행하여 요구사항을 구체화시키지 않는다면 다음 단계로 못 나아가는 한계가 존재하였습니다. 이렇기에 일정 예측도 불가능하였습니다. 왜 도출이 어려운거냐? 라고 질문이 생긴다면 프로젝트 초반에는 concept과 같은 상세한 요구사항.. 2023. 1. 13.
메타인지란 메타인지는 `자신의 인지 과정에 대한 인지`를 의미한다. 즉, 스스로가 어떤 것을 고민할 때의 과정이 과연 올바른지를 아는 것이며 이때 내가 무엇을 모르고 무엇을 제대로 알고 있는지를 파악하는 중요한 능력이다. 객관화를 잘 한다는 의미이며 자기 계발을 할 때 반드시 필요한 부분이기도 하면서 일을 할 때도 업무의 목적, 절차, 현재의 상황, 맥락등을 잘 파악하는 능력이다. 연구를 진행하면 할수록 정말 기초가 중요해지는 것을 느낀다. 여기서 기초란 수식까지는 아니더라도 이 현상이 일어나면 다른 연관된 곳에는 어떠한 영향들을 미칠 수 있는지를 아는 것이다. 그리고 좀 더 정제된 지식들을 외부로 표출하려면 많은 연습이 필요하다는 것을 느낀다. 마찬가지로 하루중에 얼마나 외부 요인들에 유혹을 당하여 시간 소비를 .. 2023. 1. 4.
제어공학 - PID 제어 PID 제어는 매우 막강한 제어 방법 중 하나입니다. 보통 시스템에서 출력이 아래와 같을 때 Overshoot가 지나치게 발생할 수도 있으며, 목표치가까지 Settling time이 길 수도 있으며, 또한 최종 도달 값이 목표치와 차이가 존재하는 Steady-State Error가 존재할 수도 있습니다. 이전의 글에서 우리는 System Type이 증가할수록 오차를 효과적으로 제거할 수 있다는 것을 보았습니다. 수많은 제어기 설계를 진행하면서 시행착오를 겪은 결과 사람들은 `Integral Control (적분 제어)`가 상당히 잔존하는 에러 (bias offset)를 잘 제거할수있다는 것을 보았습니다. 또한 Overshoot와 같은 dynamic 한 신호의 response에 대처하기 위해 `Deriva.. 2023. 1. 1.
제어공학 - Poles and Zeros (극점과 영점) Recap 시스템의 전달 함수 (Transfer function)를 라플라스 변환을 통해서 얻을 수가 있었습니다. 그리고 전달 함수의 분모, 분자를 우리는 다항식 및 인수분해 형태로 표현을 할 수가 있습니다. 이때 z_i는 영점이라고 부르며, p_i는 극점이라고 부릅니다. Zeros 만약 s의 값이 영점값들중 하나와 동일하게 된다면 전달 함수의 분자는 0이 되어버려서 G(s) = 0이 되어버립니다. 즉, 영점에 도달하게 되면 신호 전달이 막혀버리는 (Signal transmission blocking) 현상이 발생하게 되며 주파수가 사라지게 됩니다 (Transmission zeros of the system) Poles 반대로 s의 값이 극점값들중 하나와 동일하게 된다면 분모가 0이 되어버려서 전달 함수.. 2022. 12. 29.
제어공학 - Stability (안정성) Stability 제어 시스템에서 일반적으로 `안정하다 (stable)`라는 의미는 전달 함수의 분모의 다항식 근의 실수 부분이 모두 음수 영역에 있을 때 (또는 Left Half Plane, LHP)입니다. 반대의 경우인 실수 부분이 RHP에 있을 때는 `불안정하다 (unstable)`라고 판단합니다. σ > 0, s의 실수부분이 LHP에 위치하므로 Stable (수렴) σ Unstable (발산) σ = 0, s의 실수부분이 0을 가지며 허수 축에 위치함 (중근이 아닐 경우) -> Neutrally stable (or unstable), 진동함 각.. 2022. 12. 29.
제어공학 - 제어 (Control)와 관련한 기타 지식 해석 함수 (Analytic Function) 정의: 어떤 함수와 그 함수의 모든 도함수가 s평면의 어떤 영역에서 존재할 시, 그 함수는 그 영역에서 해석 함수이며 해석적 (Analytic)이라고 한다. 좀 더 들어가 보면 해석 함수는 무한히 미분이 가능하며 임의의 함수 F의 테일러급수 (Tayler Series) 값이 결국 F에 수렴할 때를 의미합니다. 만약 그렇지 않다면 `비 해석적` 함수라고 부릅니다. 우리가 무엇인가의 현상의 변화를 예측하거나 해석을 위해서는 현상을 설명하는 함수가 반드시 미분가능하며 연속적이어야만 가능합니다. 때문에 제어의 영역에서도 최적제어를 위해서는 반드시 smooth 하다는 Analysis가 되어야 하며 이때 analytic 했는지 아닌지를 판별합니다. 전달 함수 (Tran.. 2022. 12. 29.
반응형