news 2026/4/18 17:10:27

Actor网络负责生成动作

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Actor网络负责生成动作

基于深度强化学习的混合动力汽车能量管理策略,包含DQN和DDPG两个算法。 基于Python编程。

混合动力汽车的能量管理就像在玩即时战略游戏——得实时分配油和电的使用比例,还得考虑电池寿命、油耗和驾驶体验。这活儿交给深度强化学习再合适不过了,毕竟人类工程师很难实时处理这么多动态参数。

咱们先看DQN(深度Q网络)这个经典算法。它特别适合处理离散动作空间,比如当我们需要在"纯电模式"、"混动模式"、"充电模式"这几个选项之间做选择时。用Python实现起来可以这么搞:

class DQNAgent: def __init__(self, state_size, action_size): self.q_net = tf.keras.Sequential([ layers.Dense(64, activation='relu', input_shape=(state_size,)), layers.Dense(64, activation='relu'), layers.Dense(action_size) ]) self.memory = deque(maxlen=2000) # 经验回放池 self.epsilon = 1.0 # 探索率 def choose_action(self, state): if np.random.rand() < self.epsilon: return random.randrange(action_size) # 随机探索 q_values = self.q_net.predict(state[np.newaxis], verbose=0) return np.argmax(q_values[0]) # 选择最大Q值动作

这段代码里的经验回放池就像驾驶员的"错题本",把之前遇到的状态转换都存起来反复学习。ε-greedy策略则模仿人类司机的决策习惯——大部分时间按经验开车,偶尔尝试新路线。

不过当需要更精细的控制时,比如油门开度要精确到百分比,DDPG(深度确定性策略梯度)就派上用场了。它可以直接输出连续的控制量:

class DDPG: def __init__(self, state_dim, action_dim): self.actor = self._build_actor() # Critic网络评估动作价值 self.critic = self._build_critic() def _build_actor(self): inputs = layers.Input(shape=(state_dim,)) x = layers.Dense(256, activation='relu')(inputs) x = layers.Dense(256, activation='relu')(x) outputs = layers.Dense(action_dim, activation='tanh')(x) # 输出[-1,1]范围 return tf.keras.Model(inputs, outputs)

这里有个细节:Actor网络的输出层用tanh激活函数,把动作值压缩到[-1,1]区间,对应实际控制中的油门开度范围。训练时Critic网络会评估这个动作的质量,就像驾校教练实时反馈操作是否合理。

实际部署时,混合动力系统的状态空间需要包含车速、电池SOC、发动机转速等参数。举个状态向量的例子:

state = np.array([ current_speed / 120, # 归一化车速(假设最高120km/h) battery_soc / 100, # 电池电量百分比 engine_temp / 150, # 发动机温度 accelerator_pedal # 油门踏板开度(0-1) ])

训练过程中有个坑要注意:电池SOC的变化具有滞后性。就像手机快充时温度会慢慢上升,得给模型足够长的episode来学习这种延迟效应。这时候可以引入LSTM层来处理时间序列特征:

class TemporalDQN(DQNAgent): def __init__(self, state_size, action_size): super().__init__(state_size, action_size) # 在原有网络中加入LSTM层 self.q_net = tf.keras.Sequential([ layers.Reshape((5, state_size//5)), # 假设取5个时间步 layers.LSTM(64), layers.Dense(action_size) ])

实验对比两个算法时发现,DQN在模式切换场景下响应更快(0.2秒内完成决策),但DDPG在持续控制任务中能耗降低8%。就像手动挡和自动挡的区别——前者换挡果断,后者操作平顺。

最后给个实用建议:先用DQN快速验证算法可行性,当需要精细控制时再上DDPG。代码里记得加实时可视化,毕竟看着电池曲线和油耗数字实时变化,比盯着损失函数下降有趣多了。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 6:24:39

COMSOL光栅的BIC合并

comsol光栅merging BIC。咱们今天聊点硬核但有趣的东西——如何在COMSOL里玩转光栅结构里的merging BIC&#xff08;连续谱束缚态&#xff09;。这玩意儿在微纳光学里火得不行&#xff0c;但实际操作时总有几个坑能让你在实验室通宵改参数。先别急着翻手册&#xff0c;咱们直接…

作者头像 李华
网站建设 2026/4/17 19:30:03

2025年12月数字人厂商综合实力榜单发布,揭示产业三大演进方向

2025 年 12 月&#xff0c;国内权威机构联合行业协会发布《2025 年中国数字人企业厂商综合竞争力排名榜》&#xff0c;榜单基于技术实力、场景落地、商业价值、生态布局四大核心维度&#xff0c;对全国数千家数字人相关企业进行全面评估。结果显示&#xff0c;数字人产业已告别…

作者头像 李华
网站建设 2026/4/18 7:50:18

数字卡尺与几何魔法:聊聊那些藏在代码里的测量艺术

直线拟合&#xff0c;圆拟合&#xff0c;尺寸测量&#xff0c;卡尺工具工业相机镜头下的金属零件边缘泛着冷光&#xff0c;工程师老张盯着屏幕上的十字标线&#xff1a;"这倒角尺寸怎么测不准呢&#xff1f;"此刻&#xff0c;电脑后台正上演着一场像素世界的几何博弈…

作者头像 李华
网站建设 2026/4/18 7:49:51

水塔液位控制系统实战手记

水塔液位控制系统西门子S7-1200PLC和TP700博途V15&#xff0c;带io表和PLC电路图CAD厂区西北角那个老水塔改造项目终于交到我手上了。领导撂下一句"用新PLC做&#xff0c;带触摸屏"&#xff0c;我默默打开TIA Portal V15&#xff0c;开始盘算S7-1214C的IO分配。这套系…

作者头像 李华
网站建设 2026/4/18 1:22:12

全能小微企业报告API接口调用代码流程、接入方法以及应用场景

一、一站式解决小微企业“信贷盲区” 在小微企业信贷&#xff08;SME Lending&#xff09;和供应链金融场景中&#xff0c;核心难点在于“公私难分”。评估一家小微企业的风险&#xff0c;不仅要看企业本身的经营状况&#xff0c;更要深度穿透企业主&#xff08;法入/实控人&am…

作者头像 李华