首页 星云 工具 资源 星选 资讯 热门工具
:

PDF转图片 完全免费 小红书视频下载 无水印 抖音视频下载 无水印 数字星空

自动控制原理学习自动控制原理学习自动控制原理学习

前端 73.11KB 29 需要积分: 1
立即下载

资源介绍:

自动控制原理学习自动控制原理学习自动控制原理学习
% 位置式pid,增加了积分分离的机制(积分分离单独的函数参考intergral_separation_PID.m函数)。重点在于积分分离最大误差数值确定、输出限制的最大误差确定 % 设一被控对象G(s)=523500/(s^3+87.35s^2+10470S) %采样时间为1ms,采用z变换进行离散化 clc clear ts=0.001; %采样时间 sys=tf(523500,[1 87.35 10470 0]); %tf是传递函数 即被控对象函数G; dsys=c2d(sys,ts,'z'); %把控制函数离散化取Z变换n阶定常离散系统差分方程 %在零初始条件下取Z变换: %dsys即Y(z)/U(z) [num,den]=tfdata(dsys,'v');% 离散化后提取分子、分母,‘v'的作用是输出向量的形式,若没有v的话则输出类型为cell形式 [num1,den1] = tfdata(dsys);% 离散化后提取分子、分母 u_1=0.0; u_2=0.0; u_3=0.0; %z变换之后的系数 y_1=0.0; y_2=0.0; y_3=0.0; x=[0,0,0]'; %分别误差e,误差e的差分,误差e的积分 error_1=0; %上一时刻误差 time=zeros(1,1000); %预分配内存 yd=zeros(1,1000); u=zeros(1,1000); y=zeros(1,1000); error=zeros(1,1000); gain_output = zeros(1, 1000); diffiential_output = zeros(1, 1000); intergral_output = zeros(1, 1000); test_variable = zeros(1, 1000); index = 1; errorsum = 0; errorsumMax = 1; errorSingle = 0; errorsingle_max = 0.5; for k=1:1:1000 time(k)=k*ts;%离散化的时间代表连续时间 yd(k)=1.0; %目标量 kp=0.6; ki=0.006; kd=0.0; u(k)=kp*x(1)+kd*x(2)+index * ki*errorsum; %PID输出 gain_output(k) = kp*x(1); diffiential_output(k) = kd*x(2); intergral_output(k) = index * ki * errorsum; % 控制器输出限幅 if u(k)>=10 u(k)=10; end if u(k)<=-10 u(k)=-10; end %Linear model 难点就是把传递函数转化为差分方程,以实现PID控制。 y(k)=-den(2)*y_1-den(3)*y_2-den(4)*y_3+num(2)*u_1+num(3)*u_2+num(4)*u_3; %实际输出 num为dsys分子多项式系数,den为dsys分母多项式系数,从n阶定常离散系统差分方程变化来的。 error(k)=yd(k)-y(k); % 误差=输入-输出 u_3=u_2; u_2=u_1; %保存上上次输入 为下次计算 u_1=u(k); %保存上一次控制系数 为下次计算 y_3=y_2; y_2=y_1; %保存上上次次输出 为下次计算 y_1=y(k); %保存上一次输出 为下次计算 x(1)=error(k); %KP的系数 errorSingle = error(k); x(2)=(error(k)-error_1)/ts; %KD的系数 % x(3)=x(3)+error(k)*ts; %KI的系数,总的误差累积 error_1=error(k); % errorsum = x(3); if errorsum > errorsumMax if errorSingle > errorsingle_max index = 0; elseif errorSingle < 0 errorsum = errorsum + errorSingle*ts; end elseif errorsum < (-1*errorsumMax) if errorSingle < (-1*errorsingle_max) index = 0; elseif errorSingle > 0 errorsum = errorsum + errorSingle*ts; end else errorsum = errorsum + errorSingle*ts; end test_variable(k) = errorsum; end figure(1); plot(time,yd,'b',time,y,'r'); %输入和实际控制输出 xlabel('time(s)'),ylabel('y,yd'); title('输入/输出图像对比') figure(2); plot(time,error,'r') %时间误差输出曲线 xlabel('time(s)');ylabel('error'); title('误差变化') figure(3); plot(time, test_variable,'r') %时间误差输出曲线 xlabel('time(s)');ylabel('errorsum'); title('误差总的累积') figure(4); plot(time, intergral_output,'r') % PID中积分项输出 xlabel('time(s)');ylabel('intergral_output'); title('PID中积分项输出') figure(5); plot(time, gain_output,'r') % PID中比例项输出 xlabel('time(s)');ylabel('gain_output'); title('PID中比例项输出'); figure(6); plot(time, diffiential_output,'r') % PID中微分项输出 xlabel('time(s)');ylabel('diffiential_output'); title('PID中微分项输出');

资源文件列表:

自动控制原理习题学习.zip 大约有21个文件
  1. 自动控制原理习题学习/
  2. 自动控制原理习题学习/bd_asymp.m 3.86KB
  3. 自动控制原理习题学习/discrete_system_analyse.m 381B
  4. 自动控制原理习题学习/exe0519.m 410B
  5. 自动控制原理习题学习/FOC.slx 38.49KB
  6. 自动控制原理习题学习/FOC_svpwm.m 170B
  7. 自动控制原理习题学习/frequency_line.m 557B
  8. 自动控制原理习题学习/important.m 2.59KB
  9. 自动控制原理习题学习/Important222.m 4.44KB
  10. 自动控制原理习题学习/intergral_separation_PID.m 1.31KB
  11. 自动控制原理习题学习/PID_practice.m 315B
  12. 自动控制原理习题学习/PID_test.m 172B
  13. 自动控制原理习题学习/pos_pid.m 1.54KB
  14. 自动控制原理习题学习/practice4_chapter.m 2.19KB
  15. 自动控制原理习题学习/practice5_chapter.m 1.44KB
  16. 自动控制原理习题学习/practice6_chapter.m 783B
  17. 自动控制原理习题学习/three_method_discrete.m 1.37KB
  18. 自动控制原理习题学习/two_order_bode.m 30B
  19. 自动控制原理习题学习/untitled.slx.autosave 21.56KB
  20. 自动控制原理习题学习/upper_pid.m 3.25KB
  21. 自动控制原理习题学习/use_of_freqresp.m 817B
0评论
提交 加载更多评论
其他资源 c语言实现类似弹力球效果.zip
c语言实现类似弹力球效果.zip
c语言实现如果cmd中的ping.zip
c语言实现如果cmd中的ping.zip
Visual Basic 6.0精简版.zip
Visual Basic 6.0精简版.zip
MX Player Pro 1.36.10.zip
MX Player Pro 1.36.10.zip
MATLAB水果草莓检测(完美运行,GUI界面)
在MATLAB中进行水果草莓检测,可以采用图像处理技术和机器学习算法来实现。 首先,可以使用图像处理技术来提取草莓的特征。可以尝试以下步骤: 1. 读取原始图像并将其转换为HSV颜色空间。HSV颜色空间可以更好地区分草莓的颜色。 2. 使用颜色阈值将图像转换为二值图像。可以通过调整阈值来选择草莓的颜色范围。 3. 对二值图像进行形态学操作,如腐蚀和膨胀,以去除噪声或填充空洞。 4. 使用区域标记算法找到图像中的草莓区域。可以使用连通组件分析或边界跟踪算法来实现。 5. 根据草莓区域的大小、形状或其他特征,可以进一步筛选出可能是草莓的区域。 接下来,可以使用机器学习算法来训练一个分类器来识别草莓。可以采用以下步骤: 1. 为了训练分类器,需要准备一组标记好的草莓图像和非草莓图像。可以从图像库中手动标记图像,或者使用现有的草莓图像数据库。 2. 提取草莓和非草莓图像的特征。可以使用颜色直方图、形状、纹理等特征。 3. 使用草莓和非草莓图像的特征作为输入,标记作为输出,来训练分类器。常用的分类器包括支持向量机、决策树、随机森林等。 4. 使用训练好的分类器来对新的图像进
基于swing考试管理系统 开发框架:eclipse + java + jdk + mysql 数据库:mysql 不能有
基于swing考试管理系统 开发框架:eclipse + java + jdk + mysql 数据库:mysql 不能有中文路径 角色介绍 管理员 admins 123456 学生用户 qqq 123456 模块介绍 管理员 登录模块 考题管理 用户管理 考试管理 退出系统 学生用户 登录模块 注册模块 考试系统 查看成绩 密码修改 关于系统 退出系统 数据库介绍 数据库名称 db_exam tb_grade id userName
python 计算机毕业程序设计 今天吃什么代码
python 计算机毕业程序设计 今天吃什么代码.
python 计算机毕业程序设计 今天吃什么代码
python计算机毕业设计 微信机器人
python计算机毕业设计 微信机器人