Hybrid系の計算アルゴリズム

1
上田研 ゼミ
Hybrid系の計算アルゴリズム
ーLEDホタルの結合系の解析にむけてー
川上 博
2014(H26).04.21
2
話の概要
oneStepMaps
現在の状態
次の状態
xk
xk+1
qk
qk+1
x0, q0
数値積分
oneStepMaps
xk ¦----> xk+1=f(xk, qk)
qk ¦----> qk+1=g(xk, qk)
event の処理
tk
h
t
系の解析など
tk+1=tk+1+h
アナログ状態 xk とディジタルモードqkを1キザミ進めること
3
イベントの処理
② キザミ h* を求め,arrival
border 上の点 xb を求める.
xk+1
x
xb
x=
arrival border
③ 点 xb から改めて
新しい xk+1 を求める.
xk
① t=tk で xk+1 を求めた.
xk+1 が border を越えた.
xk+1
h*
t=tk
h - h*
h
モード切換点
現在のモード
t
t=tk+1
次のモード
4
ディジタル部分系の扱い
D FF
信号入力
p
clock
D
Q
Cp
mode transition diagram
q
0
Q
0
qk
入力
pk
次のモード
qk+1
0
0
1
0
1
1
0
1
0
1
1
wave forms
mode transition table
現在のモード
0
clock
p
q
1
1
5
D Flip Flop
int oneStepMaps(int q, int p){!
!
switch (q) {!
case 0:!
if (p==1) { q=1; }!
break;!
case 1:!
if (p==0) { q=0; }!
break;!
default:!
break;!
}!
return q;!
}
int oneStepMaps(int q, int p){!
return p;!
}
6
Linear Feedback Shift Register
q[1]
q[0]
D
Cp
Q
Q
D
Cp
q[2]
Q
Q
D
Cp
q[3]
Q
Q
クロック入力
void nextMode(int q[]){!
int temp1,temp2;!
!
temp1=q[3]; temp2=q[2];!
q[3]=q[2]; q[2]=q[1]; q[1]=q[0];!
q[0]=temp1^temp2;!
}
D
Cp
Q
Q
7
RC Square Wave Oscillator
R2
vout
v+
v
C1
R3
R4
R5
E
8
void oneStepMaps(void){!
!
runge(1,h,x,tt, q);!
switch (q[0]) {
// define arrival border function!
case 0:!
bdrB[0]=betaOff;!
break;!
case 1:!
bdrA[0]=alphaOff;!
break;!
default:!
break;!
}!
switch (q[0]) {
// mode transition!
case 0:!
if (x[0]<bdrB[0]) { q[0]=1; }!
break;!
case 1:!
if (x[0]>bdrA[0]) { q[0]=0; }!
break;!
default:!
break;!
}!
}