Simulation by Octave GNU
2230 단어 OctaveMathematics
Octave에서 시뮬레이션을 해보고 싶어요.
최초의 동기는 식물 생리학을 기초로 한 시뮬레이션을 시도하려는 것이다
작업 환경의 Octave 버전
Octave>> version
ans = 6.3.0
Octave 시뮬레이션을 사용한 기사를 참고해 봤습니다.
한편 이 기사에 나온 옥타브의 코드는 이 기사에서 인용됐다.
모의의 목적은 계산 출력을 통해 입력한 결과에 대한 결과를 얻는 것이기 때문에 먼저 전달 함수를 통해 간단한 모의를 한다.
나는 그 포장의 Control을 받았다.
Octave에 Control 패키지 설치
Octave>> pkg install -forge control
전달 함수는 공학에서 입력과 출력의 관계를 제어하는 함수로 이 입력과 출력 시스템의 행위와 안정성을 평가한다.
$P(s)$, $s는 복수로 표시됩니다.모든 입력에 대해 전달 함수를 사용하여 출력을 얻기 위해 변수는 시간 $t가 아니라 복수로 표시됩니다.
즉, (출력) = (전달 함수)×(입력) 형식입니다.
출력을 제어하기 위해 전달 함수는 간임을 알 수 있다.
기본 함수의 특성에 대해서는 동북대학교 장산 선생님의 다음 교재를 참고하십시오.
기본 전달 함수의 특성
1회 지연 + 시간 낭비 시스템의 모델 설명 공식은 다음과 같습니다.P(s)=\frac{K}{1+Ts} e^{-Ls}
각 문자의 의미는 다음과 같습니다.
문자
의향
$P$
전달 함수
$s$
s구역
$K$
이득
$T$
시간 상수(작을수록 출력이 빨라짐)
$L$
시간을 낭비하다
먼저 모델링을 진행하는 토대에서 상수를 다음과 같은 내용으로 설정한다
문자
값
$K$
0.5
$T$
40.0
$L$
8.0
Octave% 推定した制御対象のモデル
K = 2.0;
T = 40.0;
L = 8.0;
P = tf(K,[T,1])*tf([-L/2,1],[L/2,1]); % Octaveの場合(一次で近似)
설계 컨트롤러
불완전 미분 PID 컨트롤러는 다음과 같은 공식으로 표시한다
$$C(s)=k_p\left( 1+\frac{1}{{T_i}s}+\frac{T_ds}{1+0.125 {T_d}s}\right)$$
문자
의향
$C$
PID 제어 전달 함수
$s$
s구역
$k_p$
배율 이득($p:$Propotional)
$T_i$
적분 시간($i:$Integral)
$T_d$
미분 시간($d:$Differential)
PID 컨트롤러의 디자인 디테일은 일본 공업 뉴스의 다음과 같은 기사를 참고했다.
Octave 코드는 다음과 같습니다.
Octavekp = 0.6*T/K/L;
Ti = 1.2*T;
Td = 0.5*L;
C = kp*(1+tf(1,[1,0])/Ti+Td*tf([1,0],[0.125*Td,1]));
그림% 1개의 캡션을 편집했습니다.
Octave>> pkg load control
% 推定した制御対象のモデル
K = 2.0;
T = 40.0;
L = 8.0;
P = tf(K,[T,1])*tf([-L/2,1],[L/2,1]); % Octaveの場合(一次で近似)
% PIDコントローラの設計
kp = 0.6*T/K/L;
Ti = 1.2*T;
Td = 0.5*L;
C = kp * ( 1+tf(1,[1,0])/Ti + Td * tf([1,0],[0.125*Td,1]))
margin(P*C);
step(P*C/(1+P*C));
step(1/(1+P*C));
차트가 표시됩니다.
Reference
이 문제에 관하여(Simulation by Octave GNU), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mathayuki/items/c1bafe607976e1164301
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
>> version
ans = 6.3.0
>> pkg install -forge control
P(s)=\frac{K}{1+Ts} e^{-Ls}
% 推定した制御対象のモデル
K = 2.0;
T = 40.0;
L = 8.0;
P = tf(K,[T,1])*tf([-L/2,1],[L/2,1]); % Octaveの場合(一次で近似)
kp = 0.6*T/K/L;
Ti = 1.2*T;
Td = 0.5*L;
C = kp*(1+tf(1,[1,0])/Ti+Td*tf([1,0],[0.125*Td,1]));
>> pkg load control
% 推定した制御対象のモデル
K = 2.0;
T = 40.0;
L = 8.0;
P = tf(K,[T,1])*tf([-L/2,1],[L/2,1]); % Octaveの場合(一次で近似)
% PIDコントローラの設計
kp = 0.6*T/K/L;
Ti = 1.2*T;
Td = 0.5*L;
C = kp * ( 1+tf(1,[1,0])/Ti + Td * tf([1,0],[0.125*Td,1]))
margin(P*C);
step(P*C/(1+P*C));
step(1/(1+P*C));
Reference
이 문제에 관하여(Simulation by Octave GNU), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mathayuki/items/c1bafe607976e1164301텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)