💥💥💥💥💥💥💥💥💞💞💞💞💞💞💞💞💞Matlab武动乾坤博客之家💞💞💞💞💞💞💞💞💞💥💥💥💥💥💥💥💥
🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚤🚀🚀🚀🚀🚀🚀🚀🚀🚀🚀
🔊博主简介:985研究生,Matlab领域科研开发者;
🚅座右铭:行百里者,半于九十。
🏆代码获取方式:
优快云 Matlab武动乾坤—代码获取方式
更多Matlab信号处理仿真内容点击👇
①Matlab信号处理(进阶版)
⛳️关注优快云 Matlab武动乾坤,更多资源等你来!!
⛄一、PID控制算法船舶运动控制简介
1 PID算法简介
PID算法是一种控制算法,是 Proportional(比例)、Integral(积分)、Derivative(微分)的缩写。该控制算法广泛的应用于工业控制当中。应用场景:温度控制、流量控制、液位控制等。
2 PID算法历史简介
PID控制算法是基于控制理论发展起来,控制理论的历史可以追溯到古代,如我国古代的指南车、地动仪、水位仪等,都是用到了控制理论。
最早提出PID控制理念的是瑞典裔美国人奈奎斯特,他在一篇论文当中写到了采用图形的方法来判断系统的稳定性,在他的基础上,伯德等人建立了一整套在频域范围设计反馈放大器的方法,后被用于自动控制系统的分析和设计,直到1922年PID控制理论才首次由俄罗斯籍美国科学家尼古拉斯-米诺斯基使用在了船舶自动转向装置上的研究。
在1936年后,PID开始广泛的用于工业控制,从洗澡水的控制到神七上天,从空调控温到导弹制导,从能源、化工到家电、环保、制造、加工、军事、航天等等,都有它的影子,都可以看到它在发挥作用。
3 什么是算法?
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制(摘自百度百科)
我以为算法简单来说就是解决一个问题所采用的方法。举例:
百度地图搜索坐地铁去一个地方,这其实是一个图论中的最短路径问题。
(1)大象的重量
(2)地球的重量
4 PID原理
4.1 位式控制算法
工业上会有一些需求,比如将液体的温度加热控制在某个温度。传统的位式控制算法是这样做的。
特点:
(1)位式控制算法的输出信号只有H L 两种状态。
(2)算法输出信号out的依据是sv、pv,既用户设定值和传感器接受到的值的比较。当pv < sv 时 输出L ,当pv >= sv时输出H。
(3)只考察控制对象当前的状态。
开放回路控制系统
开环控制(Open Loop Control System):不将控制的结果反馈回来影响当前控制的系统。
闭环回路控制系统
闭环控制(Closed Loop Control System):需要将控制的结果反馈回来与希望值比较,并根据它们的误差调整控制作用的系统。
5 PID控制算法
为了解决位式控制算法的问题,于是我们就是用了PID控制算法,PID控制算法的原理如下:
位式控制算法当中,我们知识考虑当前值与观测到的值的偏差。 而在PID算法中,又引入了历史偏差和最近偏差。将3个值共同相加作用于控制对象。这是一个比较综合的算法,能够有效的解决上面所说的问题。
⛄二、部分源代码
clear all;
close all;
clc;
warning off
global T MM DD n Tu Tuu Bu MA MB nuship_d
global T_b Vc btac Vw btaw b
global QLQ RLQ gamma
global r w_o w_c lambda lambdani K11 K22 K2 K3 K4 Kw e1
T=0.5;%采样周期,采样周期的取值影响特别大
N=1000;
n=4;%推进器数量
%% 滤波初始噪声参数设定
surnoise=wgn(1,20000,0.1);
swanoise=wgn(1,20000,0.1);
yawnoise=wgn(1,20000,0.1)pi/180;
noise=[surnoise;swanoise;yawnoise];
meapos=[0;0;0];%船舶运动初始测量位置
%% %%%%%%%%%%
y1=meapos;%滤波器初始高低频叠加值 船舶滤波初值 船舶运动初值
%% %%%%%%%%%%5
yh=[zeros(3,1);0diag([0.001,0.001,0.0001])ones(3,1)];%滤波器初始高频相对阻尼
yhm=[zeros(3,1);0diag([0.001,0.001,0.0001])*ones(3,1)];
nufilter=[0;0;0];%滤波器初始低频速度
etafilter=y1;%滤波器初始低频位置
r=1;
T_b=5diag([100 100 100]);%时间偏差
w_o=0.8diag([1,1,1]);%波谱的峰值频率
w_c=1.1diag([1 1 1]);%滤波截断频率
lambda=0.3diag([1,1,1]);%% 阻尼取得过大,滤波效果不好,阻尼取得过小,滤波会发散
lambdani=1diag([1,1,1]);
K11=-2w_c.(lambdani-0.3diag([1,1,1]))/0.8;
K22=20.8.(lambdani-0.3diag([1,1,1]));
K2=w_c;
K4=10diag([0.5 1 1]);
K3=5diag([0.5 1 1]);
Kw=2diag([0.03;0.03;0.3]);%测量噪声的幅值
%% 环境力参数
b=0.0*[1;1;0];%固定环境力
Vc=0.00;%流速
btac=pi/3;
Vw=0;%风速
btaw=-pi/2;
bb=zeros(3,1);% 初始化
bfilter=zeros(3,1);
%% 控制器的一些参数
QLQ=1diag([1 1 1000 0.00001 0.00001 0.00001 0.01[1 1 1 1]]);
RLQ=0.1diag([1 1 1 1]);
gamma=0.1diag([1,1,5]);
e1=10000000;
Juu(1)=0;%初始化
Juu1(1)=0;%初始化
%% 船舶部分
% Tu=1diag(ones(1,n));
Tu=10diag([3 3 3 3]);
Tuu=1diag([1 1 1 1]);
Bu=[1,0,0,0;0,1,1,1;0,-1.25,1.3,1.5];
u=zeros(n,1);
u_c=zeros(n,1);
umax=10[1,0.4,0.4,0.4]‘;
umin=-10*[1,0.4,0.4,0.4]’;
%% 线性矩阵
MA=[49.67 0 0;0 490.07 128.12;0 128.12 155.36];
MB=[699 0 0; 0 699 -6990.091404;0 -6990.091404 505.0275];
MM=MA+MB;
DD=1000*[0.014 0 0;0 0.102 0.084;0 0.084 0.095];
etaship=y1;%船舶运动初始位置
nuship=[0;0;0];%船舶运动初始速度
nushipp_dot=[0;0;0];% 初始化
nuship_d=[0;0;0];% 初始化
u_1=[0;0;0;0];% 初始化
⛄三、运行结果
⛄四、matlab版本及参考文献
1 matlab版本
2014a
2 参考文献
[1] 门云阁.MATLAB物理计算与可视化[M].清华大学出版社,2013.
3 备注
简介此部分摘自互联网,仅供参考,若侵权,联系删除
🍅 仿真咨询
1 各类智能优化算法改进及应用
生产调度、经济调度、装配线调度、充电优化、车间调度、发车优化、水库调度、三维装箱、物流选址、货位优化、公交排班优化、充电桩布局优化、车间布局优化、集装箱船配载优化、水泵组合优化、解医疗资源分配优化、设施布局优化、可视域基站和无人机选址优化
2 机器学习和深度学习方面
卷积神经网络(CNN)、LSTM、支持向量机(SVM)、最小二乘支持向量机(LSSVM)、极限学习机(ELM)、核极限学习机(KELM)、BP、RBF、宽度学习、DBN、RF、RBF、DELM、XGBOOST、TCN实现风电预测、光伏预测、电池寿命预测、辐射源识别、交通流预测、负荷预测、股价预测、PM2.5浓度预测、电池健康状态预测、水体光学参数反演、NLOS信号识别、地铁停车精准预测、变压器故障诊断
3 图像处理方面
图像识别、图像分割、图像检测、图像隐藏、图像配准、图像拼接、图像融合、图像增强、图像压缩感知
4 路径规划方面
旅行商问题(TSP)、车辆路径问题(VRP、MVRP、CVRP、VRPTW等)、无人机三维路径规划、无人机协同、无人机编队、机器人路径规划、栅格地图路径规划、多式联运运输问题、车辆协同无人机路径规划、天线线性阵列分布优化、车间布局优化
5 无人机应用方面
无人机路径规划、无人机控制、无人机编队、无人机协同、无人机任务分配
6 无线传感器定位及布局方面
传感器部署优化、通信协议优化、路由优化、目标定位优化、Dv-Hop定位优化、Leach协议优化、WSN覆盖优化、组播优化、RSSI定位优化
7 信号处理方面
信号识别、信号加密、信号去噪、信号增强、雷达信号处理、信号水印嵌入提取、肌电信号、脑电信号、信号配时优化
8 电力系统方面
微电网优化、无功优化、配电网重构、储能配置
9 元胞自动机方面
交通流 人群疏散 病毒扩散 晶体生长
10 雷达方面
卡尔曼滤波跟踪、航迹关联、航迹融合