基于MATLAB的倒立摆控制实现方案

news/2025/10/17 11:59:51/文章来源:https://www.cnblogs.com/yang520/p/19147463

基于MATLAB的倒立摆控制实现方案,包含PID控制与神经网络(DQN)控制的双重实现


一、系统建模与基础参数

%% 倒立摆动力学参数
m = 0.1;    % 摆杆质量 (kg)
M = 1.0;    % 小车质量 (kg)
l = 0.5;    % 摆杆长度 (m)
g = 9.81;   % 重力加速度 (m/s²)
J = m*l²/3; % 摆杆转动惯量%% 状态空间模型
A = [0 1 0 0;0 (m+M)*g/(M*l) 0 -(m+M)*g/M;0 0 0 1;0 -m*g*l/(J+M*l²) 0 m*g*l/(J+M*l²)];
B = [0; 1/(M*l); 0; -1/(J+M*l²)];
C = eye(4);
sys = ss(A,B,C,0);

二、PID控制实现

1. 双闭环PID控制器设计

%% PID参数(经遗传算法优化)
Kp_angle = 45.12;   % 角度环比例增益
Ki_angle = 0.0;     % 角度环积分增益
Kd_angle = 215.2;   % 角度环微分增益Kp_pos = 1.134;     % 位置环比例增益
Ki_pos = 0.0;       % 位置环积分增益
Kd_pos = 58.45;     % 位置环微分增益%% 控制仿真
dt = 0.025;  % 采样时间
t_end = 10;  % 仿真时长
N = t_end/dt;% 初始状态:小车位置1m,摆杆角度30°
x0 = [1; 0; deg2rad(30); 0];% 存储轨迹
x_hist = zeros(4,N);
u_hist = zeros(1,N);%% 控制循环
sys = ss(A,B,C,0);
for k = 1:N% 当前状态x = x_hist(:,k);% 位置环控制e_pos = 0 - x(1);u_pos = Kp_pos*e_pos + Kd_pos*(0 - x(2));% 角度环控制e_angle = 0 - x(3);u_angle = Kp_angle*e_angle + Kd_angle*(0 - x(4));% 总控制量u = u_pos + u_angle;u = max(min(u, 10), -10);  % 限幅% 系统响应[~,x_next] = lsim(sys, u, dt, x);% 存储数据x_hist(:,k+1) = x_next;u_hist(k) = u;
end

2. 结果可视化

figure;
subplot(2,1,1);
plot(0:dt:t_end, rad2deg(x_hist(3,:)), 'r', 'LineWidth',1.5);
hold on;
plot(0:dt:t_end, zeros(size(x_hist(3,:))), 'k--');
title('摆杆角度控制');
xlabel('时间(s)'); ylabel('角度(°)');
legend('实际角度', '目标角度');subplot(2,1,2);
stem(0:dt:t_end, u_hist, 'b', 'LineWidth',1.5);
title('控制输入');
xlabel('时间(s)'); ylabel('力(N)');

三、神经网络控制(DQN)实现

1. 环境建模

%% 创建倒立摆环境
env = rlPredefinedEnv('CartPole-Discrete');% 状态空间离散化
stateInfo = getObservationInfo(env);
actionInfo = getActionInfo(env);% 神经网络结构
criticOpts = rlRepresentationOptions('LearnRate',1e-3,'GradientThreshold',1);
critic = rlQValueFunction([64 64], stateInfo, actionInfo, 'full', criticOpts);

2. DQN智能体构建

%% DQN代理配置
agentOpts = rlDQNAgentOptions(...'TargetUpdateMethod','soft',...'TargetUpdateRate',0.005,...'ExperienceBufferLength',1e6,...'DiscountFactor',0.99,...'SampleTime',env.Ts);agent = rlDQNAgent(critic, agentOpts);

3. 训练过程

%% 训练参数
trainOpts = rlTrainingOptions(...'MaxEpisodes',5000,...'MaxStepsPerEpisode',500,...'Verbose',false,...'Plots','training-progress',...'StopTrainingCriteria','AverageReward',...'StopTrainingValue',480);% 开始训练
trainingStats = train(agent, env, trainOpts);

4. 测试与仿真

%% 测试控制
simOpts = rlSimulationOptions('MaxSteps',500);
experience = sim(env, agent, simOpts);% 绘制测试结果
plot(experience.Observation(:,1), 'r', 'LineWidth',1.5);
hold on;
plot(experience.Observation(:,3), 'b', 'LineWidth',1.5);
legend('小车位置','摆杆角度');

四、关键参数整定方法

1. PID参数整定(Ziegler-Nichols法)

% 步骤1:断开积分和微分项
Ku = 80;  % 临界增益
Tu = 0.5; % 临界周期% 步骤2:计算参数
Kp = 0.6*Ku;
Ki = 1.2*Kp/Tu;
Kd = 0.075*Ku*Tu;% 步骤3:仿真验证并微调

2. DQN超参数优化

参数 初始值 调整策略
学习率(lr) 1e-3 Adam优化器自动调整
折扣因子(γ) 0.99 0.95-0.99范围网格搜索
经验回放容量 1e6 根据内存限制调整
批量大小(Batch) 64 32-256范围性能测试

参考代码 倒立摆控制,包含了神经网络控制,PID控制的matlab代码 www.youwenfan.com/contentcnj/63857.html

五、扩展应用

1. 混合控制策略

% 前馈+反馈控制
u = Kp*e + Kd*de + Kff*ref;  % 前馈补偿
u = agent.chooseAction([x; u]);  % DQN修正

2. 多智能体协作

% 创建多个DQN代理
agents = rlDQNAgent(critic, agentOpts, 4);% 协作训练
for i = 1:numAgentstrainingStats(i) = train(agents(i), env, trainOpts);
end

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/938796.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025 年展会服务商最新推荐排行榜:聚焦一站式服务与高效执行能力的优质企业榜单瓷砖/暖通/照明/门窗/玻璃/厨卫/卫浴/灯饰展会厂家推荐

在全球化商务交流不断深化的当下,展会已成为建材、石材、瓷砖、暖通等建筑装饰领域企业展示品牌、拓展市场、达成合作的核心平台。然而,当前展会服务市场中,部分服务商存在经验匮乏、资源薄弱、服务模式滞后等问题,…

数据迁移mysql--sr

mysql-docker安装docker run -itd \-p 3306:3306 \-v /home/mysql/conf:/etc/mysql/conf.d \-v /home/mysql/data:/var/lib/mysql \-v /home/mysql/log:/var/log/mysql \-e MYSQL_ROOT_PASSWORD=root \-e TZ=Asia/Shan…

iOS 26 App 开发阶段性能优化全流程,从监控到调优的多工具协作实践

本文聚焦iOS 26 App 开发阶段性能优化,构建从监控、剖析到调优的完整闭环。通过 Instruments、KeyMob(克魔)、iMazing、Energy Diagnostics 等多工具协作, 实现 CPU/GPU/内存/能耗多维监控与优化,让开发阶段提前完…

MATLAB实现语音去混响与去噪

一、概念噪声:通常指加性背景噪声,如风扇声、人群嘈杂声、电流声等。其特点是与原始语音信号是相加关系。 混响:由声音在封闭空间内经墙壁、天花板等表面多次反射形成。它使语音听起来有“回音”,导致发音模糊、清…

风险评估的流程和各阶段的工作内容

风险评估的流程和各阶段的工作内容请简述一下风险评估流程及各阶段工作内容 确定风险评估的目标 明确风险评估要达到的目的 确定风险评估的范围 明确评估对象如某信息系统,明确评估边界,明确不在评估范围内的内容 组…

无穷小和无穷大

无穷小量 \(\lim_{x\rightarrow \infty} f(x) = 0\),\(f(x)\) 为当 \(x\rightarrow \infty\) 的无穷小。 \(\lim_{n \rightarrow \infty} x_n = 0\),\({x_n}\) 当 \(n\rightarrow \infty\),\(x_n\)为当 \(n \righta…

Adobe Media Encoder 2025 免费版一键安装包完整安装教程(含下载安装包)

很多做影视后期、自媒体的朋友,在用到 Premiere Pro 2025 剪视频后,都会需要 Adobe Media Encoder 2025 来处理音视频编码、导出不同格式文件,但不少人会卡在下载找不到安全渠道、安装时缺失文件或启动报错的问题上…

2025 年最新推荐船用气囊源头厂家权威排行榜:聚焦专业生产与可靠供应,助力精准选购优质产品橡胶/船舶/防撞/山东/港口用船用气囊厂家推荐

在船舶制造、维修及水上工程领域,船用气囊的质量与性能直接关系到工程安全、效率及成本控制。当前市场上,船用气囊源头厂家数量繁杂,部分厂家存在生产工艺落后、技术实力薄弱、产品质量不稳定等问题,导致气囊耐磨性…

【隐语SecretFlow用户案例】亚信科技构建统一隐私计算框架探索实践

作者:亚信科技高级研发工程师 阳仔 蚂蚁密算技术专家 操顺德 排版整理:社区贡献者 曾辉📖 本文整理自亚信科技高级研发工程师阳仔与隐语社区 Maintainer 操顺德的技术对话。 他们围绕隐语(SecretFlow)在隐私计算…

2025 西安楼盘最新推荐排行榜:聚焦优质教育配套的品质楼盘精选高端/刚需/品牌/现房/优质楼盘推荐

2025 年西安楼市供需两旺,但购房者仍面临多重抉择难题:“伪低密” 项目充斥市场,高容积率导致居住压抑;教育资源分配不均,“名校 +” 概念泛滥,直管与合作校区界限模糊;部分新区配套滞后,交通与生活设施难以同…

稀疏离散分数阶傅里叶变换的MATLAB实现

稀疏离散分数阶傅里叶变换(Sparse Discrete Fractional Fourier Transform, SDFRFT)的MATLAB实现一、核心算法实现 1. 稀疏FRFT矩阵构造 function F = sparse_frft_matrix(N, alpha)% 构造稀疏分数阶傅里叶变换矩阵%…

2025 年导轨丝杆源头厂家最新推荐榜,技术实力与市场口碑深度解析的优质企业榜单东莞/直线/滚珠/孚雷导轨丝杆厂家推荐

随着工业自动化与智能制造领域的持续升级,导轨丝杆作为精密传动核心部件,其品质直接决定设备运行精度与生产效率。当前市场上厂家数量繁杂,部分企业存在货源不稳定、品控缺失、售后滞后等问题,导致下游企业采购时面…

Linux-简单命令 - 实践

Linux-简单命令 - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

far的数据类型

map map 的key 只能是int或者string类型,在底层int 转为了string存储,但不代表在far层面可以用string去索引 number x=1; map t = ({}); t[x] = 100; println(t["1"]);//错误,拿不到值 println(t[1]);//正…

Zemax 2019下载地址与安装教程

软件介绍 Zemax 2019是一款功能强大的光学机械设计软件,由美国Ansys公司(原Radiant Zemax公司)开发,集光学设计、分析、优化及公差分析等功能于一体。该软件支持成像系统、照明系统及激光系统的设计与模拟,可精准…

WSL+Ubuntu + AI (Claude, SpecKit, iFlow) 常用命令

WSL+Ubuntu + AI (Claude, SpecKit, iFlow) 常用命令目录WSL 命令升级并查看 WSL 版本Ubuntu 命令系统升级挂载fstab常用rsync同步命令常用npm命令nrm命令 (npm加速镜像管理)Claude 命令Claude 配置 APIAdd MCPChrome …

2025 年隔音门优质厂家最新推荐排行榜:覆盖剧院 /ktv/ 防火 / 实验室等多场景,解析实力口碑助您选对产品

在城市化快速发展的当下,无论是商业场所如剧院、KTV、演播室,还是民生场景像医院、学校、家庭卧室,对隔音门的需求都在持续攀升。然而当前隔音门市场乱象频发,部分厂家为压缩成本偷工减料,导致产品隔音效果与宣传…

Android-MVX工艺总结

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

2024ICPC(济南站)

I 签。有一个序列,每次你可以选择 恰 \(k\) 个数乘起来,并将这 \(k\) 个数删掉后替换成他们的乘积。 求最终序列最大值的最大可能值对 \(998244353\) 取模的结果。 \(n\le 2\times 10^5,k\le n,0\le V\le 10^9\)。直…