gym 倒立擺學習

2021-08-19 22:40:07 字數 2225 閱讀 2092

參考資料

import gym //匯入模組

from policynet import policygradient

import matplotlib.pyplot as plt

import time

display_reward_threshold = 1000

render = false

#建立乙個環境

env = gym.make('cartpole-v0') //建立乙個小車倒立擺模型

env.seed(1)

print(env.action_space)

print(env.observation_space)

print(env.observation_space.high)

print(env.observation_space.low)

rl = policygradient(

n_actions=env.action_space.n,

n_features=env.observation_space.shape[0],

learning_rate=0.02,

reward_decay=0.99,

)#學習過程

for i_episode in range(85):

observation = env.reset()

while true:

if render: env.render()

#取樣動作,探索環境

# action = rl.choose_action(observation)

# observation_, reward, done, info = env.step(action)

action = rl.choose_action(observation)

observation_, reward, done, info = env.step(action)

#將觀測,動作和回報儲存起來

rl.store_transition(observation, action, reward)

if done:

ep_rs_sum = sum(rl.ep_rs)

if 'running_reward' not in globals():

running_reward = ep_rs_sum

else:

running_reward = running_reward * 0.99+ep_rs_sum * 0.01

if running_reward > display_reward_threshold: render = true

print("episode:", i_episode, "rewards:", int(running_reward))

#每個episode學習一次

vt = rl.learn()

if i_episode == 0:

plt.plot(vt)

plt.xlabel('episode steps')

plt.ylabel('normalized state-action value')

plt.show()

break

#智慧型體探索一步

observation = observation_

# #測試過程

for i in range(10):

observation = env.reset()

count = 0

while true:

# 取樣動作,探索環境

env.render()

action = rl.greedy(observation)

#action = rl.choose_action(observation)

#action = rl.sample_action(observation)

# print (action)

# print(action1)

observation_, reward, done, info = env.step(action)

if done:

print(count)

break

observation = observation_

count+=1

#time.sleep(0.001)

print (count)

一階倒立擺系統

一階倒立擺系統的控制問題就是通過計算給定直流電機電流大小,即小車運動所需力的大小 控制作用 使擺桿偏角和小車位置 系統輸出 能夠盡快達到乙個平衡點 注意這裡有多個控制目標 並使之沒有大的振盪和超調。進一步,當系統達到穩定後能克服各種隨機擾動 例如人為撥動擺桿使之突然偏離平衡點 而仍能保持穩定執行。倒...

現控倒立擺系統分析

變數賦值 m 0.1 m 1 g 10 len 0.5 a 0100 00 m g m 0 0 001 00 m m g m len 0 b 0 1 m 0 1 m len c 10 00 d 0 能控性分析 m ctrb a,b p rank m n size a,1 能觀性分析 mm ctrb ...

直線型一階倒立擺7 總結

直線型一階倒立擺系統在控制學術語描述下是乙個高階 不穩定 非線性的強耦合系統。倒立擺的實用意義明顯,在生活周圍中,關於受控穩定問題隨處可見。人類直立行走在工程上是乙個困難的問題,目前就我所知能夠做到很好的直立行走和運動,唯屬波斯頓動力。當然行走不限於兩肢,任何個數的行走方式都可以研究。隨處可見的平衡...