본문 바로가기

전체 글

(49)
[필터] 평균 필터 0. 정의 평균 필터는 쉽게 말해 N개의 sample이 있으면 다 더해서 N으로 나누는 것이다. 흔히들 실생활에서 구하는 평균과 같다. 1. 수식 if) N = {1,2,3} Avg_N = (1+2+3) / 3 위와 같은 수식으로 표현됨. But, 코드 구현 시 매번 데이터를 다 더하고 나눠야하는 문제점이 있다. 그래서 아래와 같은 "재귀" 형태로 생각을 할 수 있다. (수식은 아래 링크 참고) ① x_k = K-1/K * x_k-1 + 1/K*x_k ①에서 α = K-1/K라 할때 ② x_k = (1-α)*x_k + α*xk 라는 수식이 나온다. ①,②에서는 x_k-1(이전평균값)과 k(데이터 수), x_k(새로운데이터) 만 있으면 된다. 참고 https://limitsinx.tistory.com/69..
[배터리] SOC 추정 방법 0. 개요 SOC는 전지의 사용 용량에 관한 이야기이다. 핸드폰을 사용할때 '배터리 몇% 남았나' 할때 그 몇%라는 표현이 SOC를 말하는거다. - 그러면 이 SOC는 왜그렇게 중요하냐? → 2차 전지를 가지고 전기차를 만들면서 배터리를 얼마나 더 효율적으로 뽕을 뽑아 쓸수 있는가에 대한 문제가 화두 인것 같다. - 그냥 갖다 쓰면되지 않냐? 왜 그 %가 뭐가 중요하냐 대충 전압대 마다 만들면 되지 않나? → 앞뒤 마진을 주지 않으면 셀이 금방 죽는다. 운전자도 주..ㄱ... (..) 암튼, 셀을 과충/방전을 하게 되면 오래 사용하지 못한다. 비싼 돈주고 차 샀으면 오래 타야지 2년마다 차 바꿀일 있나? 과충/방전을 반복하면 셀 내부의 분리막에 손상이 발생하여 Short의 여지가 있다. 불이 날 수 있단..
[SW] AutoSAR 0. 개요 전장용 임베디드 시스템에서 사용하는 SW 플랫폼이다. 쉽게 말해 여러 MCU에 대응되는 드라이버 SW인 것 같다. (물론 지원하는 MCU가 한정적임) (많이들 사용하는 STM MCU의 HAL드라이버 같이 .. STM 마이컴 또한 종류에 구애 받지 않고 HAL, LL 드라이버를 지원함과 일맥상통하는 것같다.) 1. 구조 그림과 같이 "MicroController"와 "Application Layer"를 제외한 나머지 부분을 AutoSAR 플랫폼이라 칭한다. 주요 드라이버 단의 기능들을 지원한다. 통신, 입출력 등등 대략정인 동작은 이렇다. HW → AUTOSAR Platform → RTE → App 으로 동작을 한다. HAL을 사용 할때를 생각해보면 HAL_xxx 기능에 포트 혹은 데이터를 입력..
[배터리] LFP 리튬인산철 배터리 (LiFePO4 battery) - 리튬 이온의 일종이다. - LFP 배터리 라고 불리운다. - 가장 큰 특징으로 3원계 배터리와 비교해서 수급에 문제가 되는 니켈, 코발트가 필요없다. - 상대적으로 가격이 저렴하다. - 산화철을 양극재로 사용한다. - 과열, 과충전 상황에서 폭발 가능성이 적다. 참고 http://wiki.hash.kr/index.php/%EB%A6%AC%ED%8A%AC_%EC%9D%B8%EC%82%B0%EC%B2%A0_%EB%B0%B0%ED%84%B0%EB%A6%AC 리튬 인산철 배터리 - 해시넷 리튬인산철 배터리 리튬인산철 배터리 각형 리튬 인산철 배터리(LiFePO₄ battery, LFP battery, lithium iron phosphate battery, ..
[Diagram] Diagram 그리기 Vscode 에서 아래 Extension을 이용해 Diagram 자동생성이 가능하다. 참고 https://snowdeer.github.io/tips/2019/10/04/visual-studio-code-how-to-use-uml/ Visual Studio Code 에서 UML 사용하기 · snowdeer's Code Holic Visual Studio Code 에서 UML 사용하기 04 Oct 2019 | IDE vscode PlantUML 설치 VSCode의 EXTENSIONS: MARKETPLACE에서 PlantUML 플러그인을 설치합니다. Sequence Diagram 빈 텍스트를 만들어서 아래와 같은 내용을 입력합니다. snowdeer.github.io
[용어] Offset의 의미 센서를 통해 받는 ADC 값은 어느정도의 오차를 포함 값으로 정상 값과의 차이가 발생 할 수 밖에 없다. 이러한 오차들은 외부 요인이나, 센서 자체의 요인 등 여러 변수에 의해 발생 할 수 있다. 센서를 통해 읽은 값을 변환하여 사용하기 위해서는 Raw Data 형태로 사용 하지 않고, 어느 정도 오차 보정을 한다. 여러 방법들이 있지만 간단한 방법 중 하나는 "OffSet"을 조정하는 방법이다. Offset이란 용어를 많이 들어 봤지만 명확한 이해가 없었기에 글을 남긴다. Off + Set → "Off"의 의미는 일정 정도 떨어져 있다. + "Set" 값을 정하다. 즉, '값이 일정 정도로 멀어진 값으로 보인다' 정도의 의미로 볼 수 있을 것같다. 참고 https://sites.google.com/si..
[UDS] Unified Diagnostic Service (진단 통신) ● UDS 개요 ISO-14229 표준에 따른 진단 서비스. ECU 등 제어기와 통신하기 위해 사용하는 프로토콜이다. 오류를 진단하고 프로그래밍을 새로 쓰는데 사용된다. ISO-14229에 따라 표준은 있지만 각 차량 제조사 혹은 OEM들이 표준에 맞춰 Spec을 명시 할 수 있다. 통신에 대한 기본 스펙은 CAN 통신 스펙을 요구한다. ● UDS Massage Format 위 그림과 같이 MSG Format이 정의 되어 있다. - PCI, Protocol Control Information으로 프레임에 데이터 길이나 어떤 프레임인지 등의 정보(information)을 표시하는 바이트로 보인다. - SID, Service Identifier는 Diagnostic Service에 대해 구분되는 ID이다. ..
[VSCode] include Path 설정 VSCode Include Path 설정이다. 검색창에 C/C++ : Edit .. 라고 검색하여 "구성편집(JSON)"을 클릭한다. 아래와 같이 나타난다. 중간에 browse 부분 부터 원하는 경로를 추가하면된다. 윈도우 기준 경로 복사 할때 "\(역슬래쉬)"를 "/(슬래쉬)"로 변경해줘야한다. 이상 끝. 참고 https://jhnyang.tistory.com/440 [VSCode] C/C++ 개발환경 세팅하기, 비주얼코드 c_cpp_properties.json, tasks.json 설정 안녕하세요 양햄찌 블로그 주인장입니다. 오늘은 VSCode에서 C/C++ 개발환경 세팅하는 방법에 대해 알아볼거예요. Visual Studio Code 윈도우 C/C++개발을 위한 설정 세팅 1. 필요한 익스텐션 2...