【Matlab】simulink에서 생성한 입출력 신호로부터 시스템 동정을 실시했다.
개요
simulink에 의한 1차 지연 시스템의 시뮬레이션 결과를 이용하여 시스템 동정을 실시하였다.
구체적인 흐름을 보여줍니다.
1:1차 지연계 전달 함수 생성
2: 작성한 전달 함수의 시정수로부터 시스템 동정하기 위한 M계열 신호를 생성
3:M계열 신호를 입력(input)으로서 simulink에 의해 전달 함수의 출력(output)을 보존
4: input과 output을 이용한 System Identification에 의한 시스템 식별
5: 시스템 식별 결과와 1에서 작성한 전달 함수를 비교
시스템 동정한 전달 함수와 1에서 작성한 전달 함수를 비교한 결과 거의 일치하고 있는 것을 확인했다.
상세를 이하에 나타낸다.
사용 소프트웨어
MATLAB 버전 9.9 (R2020b)
Simulink 버전 10.2 (R2020b)
System Identification Toolbox 버전 9.13 (R2020b)
1:1차 지연계 전달 함수 생성
기계적 모델을 기초로 이하 1차 지연 전달 함수를 설정했다
G(s) = \frac{1}{\frac{J}{D}s+1}
그러나
D = 0.0005
J = 0.001
시정수는 tau = J/D보다
2s가 된다
실제로 시뮬레이션 해 보면 확실히 시정수는 2s인 것을 확인할 수 있다
이번, 본 전달 함수가 동정 대상이 된다
2: 작성한 전달 함수의 시정수로부터 시스템 동정하기 위한 M계열 신호를 생성
동정 대상의 전달 함수의 시정수는 2s이므로 M 계열 신호의 조건은 이하에 설정했다
n = 9; % 시프트 레지스터 수
N = 2^n; %M 계열 신호 1주기당 데이터 수
Ts = 0.1; % 데이터 샘플링 주기[s]
p = 10; %M 클럭 주기의 배수:
Tm = Ts * p; %M 계열 샘플링 주기[s]
조건 결정에 있어서의 방향성은 이하 2개의 제약에 근거하고 있다
제약 1:
M 계열 신호의 입력에 의해 동정 대상의 응답은 정상치가 될 필요가 있다.
즉, 다음 관계를 만족해야합니다.
nTm > tau
tau: 시정수
※nTm은 M 계열 신호가 최대로 같은 값을 취하는 시간이 된다.
제약 2:
식별 대상의 스텝 응답 사이에 5 ~ 8 샘플 포인트가 들어갈 정도의 간격을 샘플링주기 Ts로한다.
동정 대상의 시정수는 2s이기 때문에 데이터 샘플링 주기 Ts는 0.1로 했다.
※20샘플도 들어가 버린다고 하는 돌입은 있지만. . .
시프트 레지스터 수 n = 9는 결정됩니다.
※참고문헌이 9였다.
제약 1에서 Tm을 1로 설정
보충
Tm=1이므로 샘플링 주기를 10배(p)시킨 값이다. 10 이하로하면 M 계열 신호가
곧바로 전환되어 정상치가 되지 않았다.
M 계열 신호 생성 코드를 이하에 나타낸다.
matlab.cn = 9; %シフトレジスタ数
N = 2^n; %M系列信号1周期当たりのデータ数
Ts = 0.1; %データサンプリング周期[s]
p = 10; %Mクロック周期の倍数
Tm = Ts * p; %M系列サンプリング周期[s]
u = idinput(N,'prbs',[n,1/p],[-1,1]);
t =0:Tm:( length (u) -1) *Tm;
subplot(311)
stairs(t,u), axis([t(1) t(end) -1.2 1.2]);
xlabel('time[sec]')
ylabel('信号')
title('M系列信号');
subplot(312),plot(covf(u, N)); axis([0 N -0.5 1]);
xlabel('ラグ')
ylabel('相関')
title('自己相関関数');
subplot(313), periodogram(u);
title('パワースペクトル');
%ary_m_signal = [t,transpose(u)]; %配列生
m_signal = timeseries(transpose(u),t);
save('mat_m_signal','m_signal','-v7.3'); %matファイル生成
3:M계열 신호 입력(input)과 전달 함수의 출력(output)을 보존
simulink (아래 그림)에서 input과 output 저장
Ts는 0.1이므로 zoh는 Ts입니다.
작업 공간 저장 블록을 사용했다.
※작업 공간 저장 블록 설정 화면
보존 형식은 2차원 배열로 함으로써 다음과 같이 작업 공간에 보존된다
위 화면은 output만이지만 input도 마찬가지로 저장할 수 있다.
또한 입력과 출력의 파형은 다음과 같습니다.
4: input과 output을 이용한 System Identification에 의한 시스템 식별
input 및 output 데이터를 System Identification으로 읽어들입니다.
systemIdentification
input과 output은 simulink로 출력한 변수명을 넣을 수 있다
시작은 0
SampleTime은 0.1
전달 함수에 의한 추정 선택
Estimate->Transfer function
식별 대상의 전달 함수는 1 차 지연 시스템이므로
영점의 수는 0
극의 수는 1
에서 설정하고 식별 시작
5: 시스템 식별 결과와 1에서 작성한 전달 함수를 비교
동정 결과를 나타낸다.
이번 1에서 설정한 전달 함수는
G(s) = \frac{1}{\frac{J}{D}s+1}
J/D = 2이므로
G(s) = \frac{0.5}{s+0.5}
1에서 설정한 전달 함수와 거의 일치하는 것을 알 수 있다.
참고
도서: Matlab에 의한 제어를 위한 시스템 식별
책 : htps : // 보오 th. PM / 그럼 / MS / 1180601
미래
일단 시스템 식별 시스템은 여기에서 끝납니다.
Reference
이 문제에 관하여(【Matlab】simulink에서 생성한 입출력 신호로부터 시스템 동정을 실시했다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asahi4549/items/0fd92eb94a0e78f51e14
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
MATLAB 버전 9.9 (R2020b)
Simulink 버전 10.2 (R2020b)
System Identification Toolbox 버전 9.13 (R2020b)
1:1차 지연계 전달 함수 생성
기계적 모델을 기초로 이하 1차 지연 전달 함수를 설정했다
G(s) = \frac{1}{\frac{J}{D}s+1}
그러나
D = 0.0005
J = 0.001
시정수는 tau = J/D보다
2s가 된다
실제로 시뮬레이션 해 보면 확실히 시정수는 2s인 것을 확인할 수 있다
이번, 본 전달 함수가 동정 대상이 된다
2: 작성한 전달 함수의 시정수로부터 시스템 동정하기 위한 M계열 신호를 생성
동정 대상의 전달 함수의 시정수는 2s이므로 M 계열 신호의 조건은 이하에 설정했다
n = 9; % 시프트 레지스터 수
N = 2^n; %M 계열 신호 1주기당 데이터 수
Ts = 0.1; % 데이터 샘플링 주기[s]
p = 10; %M 클럭 주기의 배수:
Tm = Ts * p; %M 계열 샘플링 주기[s]
조건 결정에 있어서의 방향성은 이하 2개의 제약에 근거하고 있다
제약 1:
M 계열 신호의 입력에 의해 동정 대상의 응답은 정상치가 될 필요가 있다.
즉, 다음 관계를 만족해야합니다.
nTm > tau
tau: 시정수
※nTm은 M 계열 신호가 최대로 같은 값을 취하는 시간이 된다.
제약 2:
식별 대상의 스텝 응답 사이에 5 ~ 8 샘플 포인트가 들어갈 정도의 간격을 샘플링주기 Ts로한다.
동정 대상의 시정수는 2s이기 때문에 데이터 샘플링 주기 Ts는 0.1로 했다.
※20샘플도 들어가 버린다고 하는 돌입은 있지만. . .
시프트 레지스터 수 n = 9는 결정됩니다.
※참고문헌이 9였다.
제약 1에서 Tm을 1로 설정
보충
Tm=1이므로 샘플링 주기를 10배(p)시킨 값이다. 10 이하로하면 M 계열 신호가
곧바로 전환되어 정상치가 되지 않았다.
M 계열 신호 생성 코드를 이하에 나타낸다.
matlab.cn = 9; %シフトレジスタ数
N = 2^n; %M系列信号1周期当たりのデータ数
Ts = 0.1; %データサンプリング周期[s]
p = 10; %Mクロック周期の倍数
Tm = Ts * p; %M系列サンプリング周期[s]
u = idinput(N,'prbs',[n,1/p],[-1,1]);
t =0:Tm:( length (u) -1) *Tm;
subplot(311)
stairs(t,u), axis([t(1) t(end) -1.2 1.2]);
xlabel('time[sec]')
ylabel('信号')
title('M系列信号');
subplot(312),plot(covf(u, N)); axis([0 N -0.5 1]);
xlabel('ラグ')
ylabel('相関')
title('自己相関関数');
subplot(313), periodogram(u);
title('パワースペクトル');
%ary_m_signal = [t,transpose(u)]; %配列生
m_signal = timeseries(transpose(u),t);
save('mat_m_signal','m_signal','-v7.3'); %matファイル生成
3:M계열 신호 입력(input)과 전달 함수의 출력(output)을 보존
simulink (아래 그림)에서 input과 output 저장
Ts는 0.1이므로 zoh는 Ts입니다.
작업 공간 저장 블록을 사용했다.
※작업 공간 저장 블록 설정 화면
보존 형식은 2차원 배열로 함으로써 다음과 같이 작업 공간에 보존된다
위 화면은 output만이지만 input도 마찬가지로 저장할 수 있다.
또한 입력과 출력의 파형은 다음과 같습니다.
4: input과 output을 이용한 System Identification에 의한 시스템 식별
input 및 output 데이터를 System Identification으로 읽어들입니다.
systemIdentification
input과 output은 simulink로 출력한 변수명을 넣을 수 있다
시작은 0
SampleTime은 0.1
전달 함수에 의한 추정 선택
Estimate->Transfer function
식별 대상의 전달 함수는 1 차 지연 시스템이므로
영점의 수는 0
극의 수는 1
에서 설정하고 식별 시작
5: 시스템 식별 결과와 1에서 작성한 전달 함수를 비교
동정 결과를 나타낸다.
이번 1에서 설정한 전달 함수는
G(s) = \frac{1}{\frac{J}{D}s+1}
J/D = 2이므로
G(s) = \frac{0.5}{s+0.5}
1에서 설정한 전달 함수와 거의 일치하는 것을 알 수 있다.
참고
도서: Matlab에 의한 제어를 위한 시스템 식별
책 : htps : // 보오 th. PM / 그럼 / MS / 1180601
미래
일단 시스템 식별 시스템은 여기에서 끝납니다.
Reference
이 문제에 관하여(【Matlab】simulink에서 생성한 입출력 신호로부터 시스템 동정을 실시했다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asahi4549/items/0fd92eb94a0e78f51e14
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
G(s) = \frac{1}{\frac{J}{D}s+1}
동정 대상의 전달 함수의 시정수는 2s이므로 M 계열 신호의 조건은 이하에 설정했다
n = 9; % 시프트 레지스터 수
N = 2^n; %M 계열 신호 1주기당 데이터 수
Ts = 0.1; % 데이터 샘플링 주기[s]
p = 10; %M 클럭 주기의 배수:
Tm = Ts * p; %M 계열 샘플링 주기[s]
조건 결정에 있어서의 방향성은 이하 2개의 제약에 근거하고 있다
제약 1:
M 계열 신호의 입력에 의해 동정 대상의 응답은 정상치가 될 필요가 있다.
즉, 다음 관계를 만족해야합니다.
nTm > tau
tau: 시정수
※nTm은 M 계열 신호가 최대로 같은 값을 취하는 시간이 된다.
제약 2:
식별 대상의 스텝 응답 사이에 5 ~ 8 샘플 포인트가 들어갈 정도의 간격을 샘플링주기 Ts로한다.
동정 대상의 시정수는 2s이기 때문에 데이터 샘플링 주기 Ts는 0.1로 했다.
※20샘플도 들어가 버린다고 하는 돌입은 있지만. . .
시프트 레지스터 수 n = 9는 결정됩니다.
※참고문헌이 9였다.
제약 1에서 Tm을 1로 설정
보충
Tm=1이므로 샘플링 주기를 10배(p)시킨 값이다. 10 이하로하면 M 계열 신호가
곧바로 전환되어 정상치가 되지 않았다.
M 계열 신호 생성 코드를 이하에 나타낸다.
matlab.c
n = 9; %シフトレジスタ数
N = 2^n; %M系列信号1周期当たりのデータ数
Ts = 0.1; %データサンプリング周期[s]
p = 10; %Mクロック周期の倍数
Tm = Ts * p; %M系列サンプリング周期[s]
u = idinput(N,'prbs',[n,1/p],[-1,1]);
t =0:Tm:( length (u) -1) *Tm;
subplot(311)
stairs(t,u), axis([t(1) t(end) -1.2 1.2]);
xlabel('time[sec]')
ylabel('信号')
title('M系列信号');
subplot(312),plot(covf(u, N)); axis([0 N -0.5 1]);
xlabel('ラグ')
ylabel('相関')
title('自己相関関数');
subplot(313), periodogram(u);
title('パワースペクトル');
%ary_m_signal = [t,transpose(u)]; %配列生
m_signal = timeseries(transpose(u),t);
save('mat_m_signal','m_signal','-v7.3'); %matファイル生成
3:M계열 신호 입력(input)과 전달 함수의 출력(output)을 보존
simulink (아래 그림)에서 input과 output 저장
Ts는 0.1이므로 zoh는 Ts입니다.
작업 공간 저장 블록을 사용했다.
※작업 공간 저장 블록 설정 화면
보존 형식은 2차원 배열로 함으로써 다음과 같이 작업 공간에 보존된다
위 화면은 output만이지만 input도 마찬가지로 저장할 수 있다.
또한 입력과 출력의 파형은 다음과 같습니다.
4: input과 output을 이용한 System Identification에 의한 시스템 식별
input 및 output 데이터를 System Identification으로 읽어들입니다.
systemIdentification
input과 output은 simulink로 출력한 변수명을 넣을 수 있다
시작은 0
SampleTime은 0.1
전달 함수에 의한 추정 선택
Estimate->Transfer function
식별 대상의 전달 함수는 1 차 지연 시스템이므로
영점의 수는 0
극의 수는 1
에서 설정하고 식별 시작
5: 시스템 식별 결과와 1에서 작성한 전달 함수를 비교
동정 결과를 나타낸다.
이번 1에서 설정한 전달 함수는
G(s) = \frac{1}{\frac{J}{D}s+1}
J/D = 2이므로
G(s) = \frac{0.5}{s+0.5}
1에서 설정한 전달 함수와 거의 일치하는 것을 알 수 있다.
참고
도서: Matlab에 의한 제어를 위한 시스템 식별
책 : htps : // 보오 th. PM / 그럼 / MS / 1180601
미래
일단 시스템 식별 시스템은 여기에서 끝납니다.
Reference
이 문제에 관하여(【Matlab】simulink에서 생성한 입출력 신호로부터 시스템 동정을 실시했다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asahi4549/items/0fd92eb94a0e78f51e14
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
input 및 output 데이터를 System Identification으로 읽어들입니다.
systemIdentification
input과 output은 simulink로 출력한 변수명을 넣을 수 있다
시작은 0
SampleTime은 0.1
전달 함수에 의한 추정 선택
Estimate->Transfer function
식별 대상의 전달 함수는 1 차 지연 시스템이므로
영점의 수는 0
극의 수는 1
에서 설정하고 식별 시작
5: 시스템 식별 결과와 1에서 작성한 전달 함수를 비교
동정 결과를 나타낸다.
이번 1에서 설정한 전달 함수는
G(s) = \frac{1}{\frac{J}{D}s+1}
J/D = 2이므로
G(s) = \frac{0.5}{s+0.5}
1에서 설정한 전달 함수와 거의 일치하는 것을 알 수 있다.
참고
도서: Matlab에 의한 제어를 위한 시스템 식별
책 : htps : // 보오 th. PM / 그럼 / MS / 1180601
미래
일단 시스템 식별 시스템은 여기에서 끝납니다.
Reference
이 문제에 관하여(【Matlab】simulink에서 생성한 입출력 신호로부터 시스템 동정을 실시했다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asahi4549/items/0fd92eb94a0e78f51e14
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
G(s) = \frac{1}{\frac{J}{D}s+1}
G(s) = \frac{0.5}{s+0.5}
도서: Matlab에 의한 제어를 위한 시스템 식별
책 : htps : // 보오 th. PM / 그럼 / MS / 1180601
미래
일단 시스템 식별 시스템은 여기에서 끝납니다.
Reference
이 문제에 관하여(【Matlab】simulink에서 생성한 입출력 신호로부터 시스템 동정을 실시했다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/asahi4549/items/0fd92eb94a0e78f51e14
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【Matlab】simulink에서 생성한 입출력 신호로부터 시스템 동정을 실시했다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/asahi4549/items/0fd92eb94a0e78f51e14텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)