擺錘¶
此環境是經典控制環境的一部分,其中包含有關該環境的一般資訊。
動作空間 |
|
觀測空間 |
|
匯入 |
|
描述¶
倒立擺上擺問題基於控制理論中的經典問題。該系統由一個擺錘組成,一端連線到固定點,另一端自由。擺錘從隨機位置開始,目標是對自由端施加扭矩,使其擺動到直立位置,重心恰好位於固定點正上方。
下圖詳細說明了用於實現擺錘動力學方程的座標系。

x-y:擺錘末端以米為單位的笛卡爾座標。theta:以弧度表示的角度。tau:以牛頓米(N m)表示的扭矩。定義為正值表示逆時針方向。
動作空間¶
動作是一個形狀為 (1,) 的 ndarray,表示施加到擺錘自由端的扭矩。
編號 |
動作 |
最小值 |
最大值 |
|---|---|---|---|
0 |
扭矩 |
-2.0 |
2.0 |
觀測空間¶
觀測值是一個形狀為 (3,) 的 ndarray,表示擺錘自由端的 x-y 座標及其角速度。
編號 |
觀測值 |
最小值 |
最大值 |
|---|---|---|---|
0 |
x = cos(theta) |
-1.0 |
1.0 |
1 |
y = sin(theta) |
-1.0 |
1.0 |
2 |
角速度 |
-8.0 |
8.0 |
獎勵¶
獎勵函式定義為
r = -(theta2 + 0.1 * theta_dt2 + 0.001 * torque2)
其中 theta 是擺錘在 [-pi, pi] 之間歸一化後的角度(0 表示直立位置)。根據上述方程,可以獲得的最小獎勵為 -(pi2 + 0.1 * 82 + 0.001 * 22) = -16.2736044,而最大獎勵為零(擺錘直立,速度為零,未施加扭矩)。
初始狀態¶
初始狀態是 [-pi, pi] 範圍內的隨機角度和 [-1,1] 範圍內的隨機角速度。
劇集截斷¶
劇集在 200 個時間步後截斷。
引數¶
g: .
擺錘在 gymnasium.make 中有兩個引數:render_mode 和 g,其中 g 表示用於計算擺錘動力學的重力加速度(單位為 m s-2)。預設值為 g = 10.0。在重置時,options 引數允許使用者更改用於確定新隨機狀態的邊界。
>>> import gymnasium as gym
>>> env = gym.make("Pendulum-v1", render_mode="rgb_array", g=9.81) # default g=10.0
>>> env
<TimeLimit<OrderEnforcing<PassiveEnvChecker<PendulumEnv<Pendulum-v1>>>>>
>>> env.reset(seed=123, options={"low": -0.7, "high": 0.5}) # default low=-0.6, high=-0.5
(array([ 0.4123625 , 0.91101986, -0.89235795], dtype=float32), {})
版本歷史¶
v1: 簡化數學方程,行為無差異。
v0: 初始版本釋出