Main Content

gyroparams

자이로스코프 센서 파라미터

설명

gyroparams 클래스는 자이로스코프 센서 파라미터 객체를 만듭니다. imuSensor로 IMU를 시뮬레이션할 때 이 객체를 사용하여 자이로스코프를 모델링할 수 있습니다. gyroparams 모델링에 대한 자세한 내용은 imuSensorAlgorithms 섹션을 참조하십시오.

생성

설명

params = gyroparams는 디폴트 값으로 이루어진 이상적인 자이로스코프 센서 파라미터 객체를 반환합니다.

params = gyroparams(Name,Value)는 하나 이상의 Name,Value 쌍 인수를 사용하여 gyroparams 객체의 속성을 구성합니다. 여기서 Name은 속성 이름이고 Value는 대응하는 값입니다. Name은 작은따옴표('')로 묶어야 합니다. Name1,Value1,...,NameN,ValueN과 같이 여러 개의 이름-값 쌍 인수를 임의의 순서로 지정할 수 있습니다. 지정되지 않은 속성은 디폴트 값을 가집니다.

속성

모두 확장

최대 센서 측정값(단위: rad/s)으로, 양의 실수형 스칼라로 지정됩니다.

데이터형: single | double

센서 측정값의 분해능(단위: (rad/s)/LSB)으로, 음이 아닌 실수형 스칼라로 지정됩니다. 여기서 LSB는 Least Significant Bit(최하위 비트)의 머리글자어입니다.

데이터형: single | double

상수 센서 오프셋 편향(단위: rad/s)으로, 실수형 스칼라 또는 요소를 3개 가진 행 벡터로 지정됩니다. 스칼라 입력값은 요소를 3개 가진 실수형 행 벡터(각 요소가 입력된 스칼라 값을 가짐)로 변환됩니다.

데이터형: single | double

센서 축 왜도(단위: 백분율)로, 스칼라, 요소를 3개 가진 행 벡터 또는 3×3 행렬로 지정됩니다. 행렬의 대각선 요소는 각 축의 오정렬 영향을 설명합니다. 비대각선 요소는 교차 축의 오정렬 영향을 설명합니다. 측정된 상태 vmeasure는 다음과 같이 오정렬 행렬을 통해 true 상태 vtrue에서 구합니다.

vmeasure=1100Mvtrue=1100[m11m12m13m21m22m23m31m32m33]vtrue

  • 속성을 스칼라로 지정하면, 행렬의 모든 비대각선 요소는 지정된 스칼라의 값을 취하며 모든 대각선 요소는 100이 됩니다.

  • 속성을 벡터 [a b c]로 지정하면 m21 = m31 = a, m12 = m32 = b, 그리고 m13 = m23 = c입니다. 모든 대각선 요소는 100이 됩니다.

데이터형: single | double

센서 잡음의 파워 스펙트럼 밀도(단위: (rad/s)/√Hz)로, 실수형 스칼라 또는 요소를 3개 가진 행 벡터로 지정됩니다. 이 속성은 ARW(각도 무작위 행보)에 해당합니다. 스칼라 입력값은 요소를 3개 가진 실수형 행 벡터(각 요소가 입력된 스칼라 값을 가짐)로 변환됩니다.

데이터형: single | double

편향 불안정성 잡음 생성을 위한 필터 계수로, 구조체로 지정됩니다. 구조체에는 다음 필드가 있습니다.

  • Numerator - 분자 계수로, 실수 값 벡터로 지정됩니다.

  • Denominator - 분모 계수로, 실수 값 벡터로 지정됩니다.

프랙털 잡음의 계수를 지정하려면 fractalcoef 함수를 사용합니다.

예: struct(Numerator=1,Denominator=[1 -0.5])

데이터형: struct

편향 오프셋의 불안정성(단위: rad/s)으로, 실수형 스칼라 또는 요소를 3개 가진 행 벡터로 지정됩니다. 스칼라 입력값은 요소를 3개 가진 실수형 행 벡터(각 요소가 입력된 스칼라 값을 가짐)로 변환됩니다.

데이터형: single | double

센서의 적분된 백색 잡음(단위: (rad/s)(√Hz))으로, 실수형 스칼라 또는 요소를 3개 가진 행 벡터로 지정됩니다. 스칼라 입력값은 요소를 3개 가진 실수형 행 벡터(각 요소가 입력된 스칼라 값을 가짐)로 변환됩니다.

데이터형: single | double

랜덤 잡음 유형으로, 다음으로 지정됩니다.

  • "double-sided" — 랜덤 잡음 계수의 스케일링 인자가 2입니다.

  • "single-sided" — 랜덤 잡음 계수의 스케일링 인자가 1입니다.

데이터형: char | string

온도에 의한 센서 편향(단위: (rad/s)/℃)으로, 실수형 스칼라 또는 요소를 3개 가진 행 벡터로 지정됩니다. 스칼라 입력값은 요소를 3개 가진 실수형 행 벡터(각 요소가 입력된 스칼라 값을 가짐)로 변환됩니다.

데이터형: single | double

온도에 의한 스케일링 인자 오차(단위: %/℃)로, 0에서 100까지의 범위에 있는 값을 갖는 실수형 스칼라 또는 요소를 3개 가진 행 벡터로 지정됩니다. 스칼라 입력값은 요소를 3개 가진 실수형 행 벡터(각 요소가 입력된 스칼라 값을 가짐)로 변환됩니다.

데이터형: single | double

선형 가속에 의한 센서 편향(단위: (rad/s)/(m/s2))으로, 실수형 스칼라 또는 요소를 3개 가진 행 벡터로 지정됩니다. 스칼라 입력값은 요소를 3개 가진 실수형 행 벡터(각 요소가 입력된 스칼라 값을 가짐)로 변환됩니다.

데이터형: single | double

예제

모두 축소

정상 입력값에서 imuSensor 객체에 대한 자이로스코프 데이터를 생성합니다.

4.363rad/s의 최대 센서 측정값과 1.332e-4(rad/s)/LSB의 분해능으로 자이로스코프 파라미터 객체를 생성합니다. 상수 오프셋 편향은 0.349rad/s입니다. 센서는 8.727e-4rad/s/Hz의 파워 스펙트럼 밀도를 가집니다. 온도에 의한 편향은 0.349(rad/s2)/0C입니다. 온도에 의한 스케일링 인자 오차는 0.02%/0C입니다. 센서 축 왜도는 2%입니다. 선형 가속에 의한 센서 편향은 0.178e-3 (rad/s)/(m/s2)입니다.

params = gyroparams('MeasurementRange',4.363,'Resolution',1.332e-04,'ConstantBias',0.349,'NoiseDensity',8.727e-4,'TemperatureBias',0.349,'TemperatureScaleFactor',0.02,'AxesMisalignment',2,'AccelerationBias',0.178e-3);

1000개 샘플에 100Hz의 샘플 레이트를 사용합니다. 자이로스코프 파라미터 객체를 사용하여 imuSensor 객체를 만듭니다.

Fs = 100;
numSamples = 1000;
t = 0:1/Fs:(numSamples-1)/Fs;

imu = imuSensor('accel-gyro','SampleRate', Fs, 'Gyroscope', params);

imuSensor 객체에서 자이로스코프 데이터를 생성합니다.

orient = quaternion.ones(numSamples, 1);
acc = zeros(numSamples, 3);
angvel = zeros(numSamples, 3);
 
[~, gyroData] = imu(acc, angvel, orient);

결과로 생성된 자이로스코프 데이터를 플로팅합니다.

plot(t, gyroData)
title('Gyroscope')
xlabel('s')
ylabel('rad/s')

Figure contains an axes object. The axes object with title Gyroscope, xlabel s, ylabel rad/s contains 3 objects of type line.

확장 기능

C/C++ 코드 생성
MATLAB® Coder™를 사용하여 C 코드나 C++ 코드를 생성할 수 있습니다.

버전 내역

R2018b에 개발됨

모두 확장