《基于双闭环PID控制的一阶倒立摆控制系统的设计.doc》由会员分享,可在线阅读全文,更多相关《基于双闭环PID控制的一阶倒立摆控制系统的设计(最终版)》请在www.woc88.com上搜索。

1、tlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,for循环(包括while循环)满天飞这不仅是暴殄天物(没有发挥matlab所长),还浪费了你宝贵的时间。八、结论()从理论上证明了所设计的“一阶倒立摆”双闭环控制的方案是可行的。()“一阶倒立摆”的控制问题是一个非常典型且具有明确物理意义的运动控制系统问题,对其深入的分析与应用研究,有助于我们分析问题与解决问题的能力。()不难得到所设计PID控制器可以是系统有较好的稳定性,抗干扰能力较强。我认为该控制器下的校正系统达到比较合适的动态和稳定性能,能够保证系统正常工作,取得较好的控制性能。通过该系统的设计,也说明了PID控制系统设计的一般步骤,提供了一套利用matlab进行控制器设计的有效方法,对PID控制系统设计具有借鉴意义。九、参考文献MATLAB精要、编程及高级应用程卫国机械工业出版社MATL数为'()DsKsK,为了抑制干扰,在前向通道上加上一个比例环节()DsK。设()Ds的增。

2、x(t)Resonsetoasteinut')gtext('\leftarrowx(t)'),gext('\theta(t)\uwrrow')同上可知,得出的波形图如图所示:图)编程求解系统性能指标:最大超调量(max_overshoot)、调节时间(settling_time)、上升时间(rise_time)。LoadPIDmatt=ans(,:);y=ans(:,:);figure()hf=line(t,q(:));gridonaxis([])ht=line(t,y,'color','r');C=;C=dcgain(y);max_overshoot=*(max_yC)C%超调量计算s=length(t);%调整时间计算whiley(s)gt*Camamy(s)lt*Cs=s;endsettling_time=t(s)r=;%上升时间计算,以从稳态值的%上升到%定义while(y(r)lt*C)r=r+;endr=;while(y(r)lt*C)r=r+;endrise_time=t(r)t(r)ste(sys)运行完原理图之后,打开程序PI。提出了要求整个过程下来,还是懵懵懂懂的,我想这些都需要的是时间,最终在终值的问题上为难了我,不过还是同学帮我解决了。七、心得体会在设计的过程中,遇到了很多问题,在经过一次次测试、认真思考和讨论的过程中得到了解答。总之一周的课设,让我觉得很累,但从中收获了很多,最终的成功让我觉得累也是值得的。在此,感谢同学们的帮助以及老师在此次实验中的指导。到大三下学期了,AB语言与程序设计高俊斌华中理工大学出版社控制系统数字仿真与cad张晓华哈尔滨工业大学已经做过很多课程设计,而且也都是跟软件有关系的,发现像工科的课程每一门都有一款软件与之关系。我们在平时的学习当中只是存在在教室里面,看着老师PPT上面的每个窗口,而没有亲身体验,我觉得是得不到知识,得不到动手自己实现输出结果的东西的。每天坐在教室里只会让我们纸上谈兵而已,以上我犯的错误我认为都是没有平时亲身体验的结果,导致了做课设的时候按照课本按部就班的操作着,而后才知道是错误的,有的也是多此一举的。matlab跟其他语言不一样(我用的比较多的编程语言,除了matlab就应该是c或c++了,VB和Delhi也接触过,我想版面(matlab版)大部分人也差不多),如果你抱着“把其他语言的思想运用在matlab里面”的话,那么我想,即使程序运行不出错,也很难把握matlab的精髓,也就很难发挥matlab的作用了。所以,如果你是希望matlab作为VC的附属品,即你不想在matlab上面花太多功夫,只纯粹想用matlab来完成VC做不了或很难做成的任务的话,那么,这篇文章你也不需要再阅读下去了;如果你是希望掌握一门语言、一个工具,使它更有效为你服务的话,那么,希望本文对你有所帮助。M。

3、('Angleevolution(rad)')axis([])title('Resonse\theta(t)and\theta''(t)inradtoaf(t)ulseofN')gtext('\leftarrowf(t)'),gext('\theta(t)\rightarrow'),gtext('\leftarrow\theta''(t)')在m文件里写入如上程序,在运行该程序之前,先运行系统。之后再运行此程序得出波形图如图所示。观察结果如图所示:图三、设计的内外环的PID控制器一阶倒立摆系统为“自不稳定的非最小相位系统”。将系统小车位置作为“外环”,将摆杆摆角作为“内环”,设计的内外环的PID控制器。其模型图如图所示:图内环控制器设计对系统内环采用反馈校正进行控制,其方框图如图所示。()sGs'()DsK()rs()Ds+图内环反馈校正方框图反馈校正采用PD控制器,设其传递函本科生课程设计题目:基于双闭环PID控制的一阶倒立摆控制系统设计姓名:学号:系别:电气工程系专业:电气工程与自动化年级:级指导教师:年月日目录、系统模型的建立、模型验。

4、信号qq=signals(,:);%读取简化模型中的倒立摆摆角信号%Drawingcontrolandx(t)resonsesignals%画出在控制力的作用下的系统响应曲线%定义曲线的纵坐标、标题、坐标范围和曲线的颜色等特征figure()%定义第一个图形hf=line(t,f(:));%连接时间作用力曲线gridon;xlabel('Time(s)')%定义横坐标ylabel('Force(N)')%定义纵坐标axis([])%定义坐标范围axet=axes('Position',get(gca,'Position'),'XAxisLocation','bottom','YAxisLocation','right','Color','None','XColor','k','YClor','k');%定义曲线属性ht=line(t,x,'color','r','arent',axet);%连接时间小车位置曲线ht=line(t,xx,'color','r','arent',axet);%连接时间小车速度曲线ylabel('Evolutiono。为:外环控制器也采用PD形式,其传递函数为为了使系统有较好的跟随性,采用单位反馈构成外环反馈通道,即D’'(s)=,则系统的开环传递函数为'()Dss()Wsss()()()()sWsGssss()Wss()Gss()()DsKs()()()()()()WsWsGsDsKsss采用第十章基于Bode图法的希望特性设计方法,得K=,τ=,取τ=,则外环控制器的传递函数为:一级倒立摆双闭环控制系统的方框图如图所示。图一级倒立摆双闭环控制系统的方框图()()Dss()s()Ws()Xs()s()Fs()rXs一级倒立摆sX调节器θ调节器四、在单位阶跃输入下,进行的SIMULINK仿真如下以及用示波器观察的结果:)用示波器现实结果如图所示:图)程序结果:loadPIDmatt=signals(,:);q=signals(,:);x=signals(,:);%drawingx(t)andtheta(t)resonsesignals%画小车位置和摆杆角度的响应曲线figure()hf=line(t(max_overshoot)、调节时间(settling_time)、上升时间(rise_time)。数据,把这些数据记录在报告书中。y_max_overshoot=y_rise_time=y_settling_time=q_max_overshoot=q_rise_time=q_settling_time=五、检验系统的鲁棒性将对象作如下变换后,同样在单位阶跃的输入下,检验所设计控制系统的鲁棒性能,列表比较系统地性能指标(最大超调量、调节时间、上升时间)。倒摆长度L不变,倒立。

5、才能自动跳出波形图。模型验证完之后,就是采用程序进行绘图,事先我糊里糊涂的桉书上程序照搬,可是发现程序好像有错。之后问同学才知道说要在封装的系统双击把“ans”改成“signals”才能把程序运行出来。做到PID内外环设计的时候,首先遇到的就是比例系数如何确定,这边也是在老师的提示下我才明白要用公式去推,其实真正的意义上是要懂得他代表什么。还有就是所用的函数快要的是精确的模型才是正确。在进行编程实现性能指标(超调量、上升时间、调整时间、终值)的要求上,对程序的编写以及理解能力提出了要求整个过程下来,还是懵懵懂懂的,我想这些都需要的是时间,最终在终值的问题上为难了我,不过还是同学帮我解决了。七、心得体会在设计的过程中,遇到了很多问题,在经过一次次测试、认真思考和讨论的过程中得到了解答。总之一周的课设,让我觉得很累,但从中收获了很多,最终的成功让我觉得累也是值得的。在此,感谢同学们的帮助以及老师在此次实验中的指导。到大三下学期了,AB语言与程序设计高俊斌华中理工大学出版社控制系统数字仿真与cad张晓华哈尔滨工业大学已经做过很多课程设计,而且也都是跟。

6、m文件运行。之后会出现波形,把波形图复制在word里,而在MATLAB中会出现x与theta的最大超调量)Fcn:(*u[]*m*u[])(+m)做完以上之后点击鼠标左键不放对图形进行选定,接着右击creatsubsystem如下图所示:图)模型的封装:倒立摆的振子质量m和倒摆长度L作为子系统的参数:图双击函数模块:图欲改变其中的任一个参数只要点击其中二者之一的函数方块就行,在其中的m,l改就行了。有两种实现的方法:一种是利用示波器观察如下图所示,另一种是采用绘图程序实现。)示波器实现如图:图示波器显示结果如图所示图)用程序实现:%Inertedendulum%Modeltestinoenloo%Signalsrecueration%将导入到xymat中的仿真试验数据读出loadxymatt=signals(,:);%读取时间信号f=signals(,:);%读取作用力F信号x=signals(,:);%读取精确模型中的小车位置信号q=signals(,:);%读取精确模型中的倒摆摆角信号xx=signals(,:);%读取简化模型中的小车位置。

7、K,则内环控制系统的闭环传递函数为:'()()()()ssKKGsWsKKGsDssKsKKKKK令则内环控制器的传递函数为内环控制系统的闭环传递函数为:外环控制器设计图外环系统结构图由图可知外环系统前向通道的传递函数为:可见,系统开环传递函数为一个高阶且带不稳定零点的“非最小相位系统”。因此,首先对系统外环模型进行降阶处理,若忽略W(s)的高次项,则可近似为一阶传递函数为:其次,对模型G(s)进行近似处理,则G(s)的传递函数为:外环控制器也采用PD形式,其传递函数为为了使系统有较好的跟随性,采用单位反馈构成外环反馈通道,即D’'(s)=,则系统的开环传递函数为'()Dss()Wsss()()()()sWsGssss()Wss()Gss()()DsKs()()()()()()WsWsGsDsKsss采用第十章基于Bode图法的希望特性设计方法,得K=,τ=,取τ=,则外环控制器的传递函数为:一级倒立摆双闭环控制系统的方框图如图所示。图一级倒立摆双闭环控。tlab是一个基于矩阵运算的软件,这恐怕是众所周知的事情了,但是,真正在运用的时候(就是在编程的时候),许多人(特别是初学者)往往没有注意到这个问题,因此,for循环(包括while循环)满天飞这不仅是暴殄天物(没有发挥matlab所长),还浪费了你宝贵的时间。八、结论()从理论上证明了所设计的“一阶倒立摆”双闭环控制的方案是可行的。()“一阶倒立摆”的控制问题是一个非常典型且具有明确物理意义的运动控制系统问题,对其深入的分析与应用研究,有助于我们分析问题与解决问题的能力。()不难得到所设计PID控制器可以是系统有较好的稳定性,抗干扰能力较强。我认为该控制器下的校正系统达到比较合适的动态和稳定性能,能够保证系统正常工作,取得较好的控制性能。通过该系统的设计,也说明了PID控制系统设计的一般步骤,提供了一套利用matlab进行控制器设计的有效方法,对PID控制系统设计具有借鉴意义。九、参考文献MATLAB精要、编程及高级应用程卫国机械工业出版社MATL数为'()DsKsK,为了抑制干扰,在前向通道上加上一个比例环节()DsK。设()Ds的增益K,则内环控制系统的闭环传递函数为:'()()()()ssKKGsWsKKGsDssKsKKKKK令则内环控制器的传递函数为内环控制系统的闭环传递函数为:外环控制器设计图外环系统结构图由图可知外环系统前向通道的传递函数为:可见,系统开环传递函数为一个高阶且带不稳定零点的“非最小相位系统”。因此,首先对系统外环模型进行降阶处理,若忽略W(s)的高次项,则可近似为一阶传递函数为:其次,对模型G(s)进行近似处理,则G(s)的传递函数。

8、制系统的方框图()()Dss()s()Ws()Xs()s()Fs()rXs一级倒立摆sX调节器θ调节器四、在单位阶跃输入下,进行的SIMULINK仿真如下以及用示波器观察的结果:)用示波器现实结果如图所示:图)程序结果:loadPIDmatt=signals(,:);q=signals(,:);x=signals(,:);%drawingx(t)andtheta(t)resonsesignals%画小车位置和摆杆角度的响应曲线figure()hf=line(t(max_overshoot)、调节时间(settling_time)、上升时间(rise_time)。数据,把这些数据记录在报告书中。y_max_overshoot=y_rise_time=y_settling_time=q_max_overshoot=q_rise_time=q_settling_time=五、检验系统的鲁棒性将对象作如下变换后,同样在单位阶跃的输入下,检验所设计控制系统的鲁棒性能,列表比较系统地性能指标(最大超调量、调节时间、上升时间)。倒摆长度L不变,倒立。

9、六、遇到的问题及解决函数表达式语法的错误。比如u[]^*cos(u[]),应该改为(u[]^)*cos(u[])在仿真之前应该对m和l的值进行相应的赋值,不然会出现错误。xymat文件中的variablename与程序中的变量取名要一直,比如xymat文件中的variablename的名字是ans而程序中的变量名是signals,则系统会提示找不到signals变量值。要查看空间变量可以用who命令。起先以为说是按照课本的要求画图就可以了,于是就按照课本画出模型的原理图与利用子系统封装后的框图。而且还按照课本要求把函数输入进去。可是运行的时候发现错误。提示说是函数输入有误,于是就很认真的对照课本跟自己输入的函数是否一致。发现算是粗心大意了,原来该模型的函数算是比较繁琐的,在输函数的时候一定要注意认真的对待每个括弧。在画模型图时,由于对SIMULINK有一点点的熟悉,所以画图比较快,但是却忘记在输出端加入示波器而按照课本里面的图形进行运行,发现运行出来不懂哪里去看波形,我百般不得起解,于是课余,我问同学,同学跟我说得在输出端加入示波器,运行的时候。的振子质量m从kg分别改变为kg、kg、kg、、kg。m=,L=m=,L=m=,L=m=,L=m=,L=m=,L=m=,L=m=,L=m=,L=m=,L=倒摆长度L不变,倒立摆的振子质量m从kg分别改变为kg、kg、kg、kg、kg;()质量m不变,倒摆长度L从m分别改变为m、m、、m。对象参数性能指标振子质量mkg倒摆长度Lm最大超调量调节时间上升时间XθXθXθ,q));gridon;xlabel('Time(s)')ylabel('Angleevolution(rad)')axis([])axet=axes('Position',get(gca,'Position'),'XAxisLocation','bottom','YAxisLocation','right','Color','None','XColor','k','YClor','k');ht=line(t,x,'color','r','arent',axet);ylabel('Evolutionofthexotion(m)')axis([])title('\theta(t)and\x(t)Resonsetoasteinut')gtext('\leftarrowx(t)'),gext('\theta(t)\uwrrow')同上可知,得出的波形图如图所示:图)编程求解系统性能指标:最大超调量(max_overshoot)、调节时间(settling_time)、上升时间(rise_time)。LoadPIDmatt=ans(,:);y=ans(:,:);figure()hf=line(t,q(:));gridonaxis([])ht=line(t,y,'。

10、件有关系的,发现像工科的课程每一门都有一款软件与之关系。我们在平时的学习当中只是存在在教室里面,看着老师PPT上面的每个窗口,而没有亲身体验,我觉得是得不到知识,得不到动手自己实现输出结果的东西的。每天坐在教室里只会让我们纸上谈兵而已,以上我犯的错误我认为都是没有平时亲身体验的结果,导致了做课设的时候按照课本按部就班的操作着,而后才知道是错误的,有的也是多此一举的。matlab跟其他语言不一样(我用的比较多的编程语言,除了matlab就应该是c或c++了,VB和Delhi也接触过,我想版面(matlab版)大部分人也差不多),如果你抱着“把其他语言的思想运用在matlab里面”的话,那么我想,即使程序运行不出错,也很难把握matlab的精髓,也就很难发挥matlab的作用了。所以,如果你是希望matlab作为VC的附属品,即你不想在matlab上面花太多功夫,只纯粹想用matlab来完成VC做不了或很难做成的任务的话,那么,这篇文章你也不需要再阅读下去了;如果你是希望掌握一门语言、一个工具,使它更有效为你服务的话,那么,希望本文对你有所帮助。M。

11、thexosition(m)')%定义坐标名称axis([])%定义坐标范围title('Resonsexandx''inmetertoaf(t)ulseofN')%定义曲线标题名称gtext('\leftarrowf(t)'),gext('x(t)\rightarrow'),gtext('\leftarrowx''(t)')%drawingcontrolandtheta(t)resonsesingalsfigure()hf=line(t,f(:));gridonxlabel('Time')ylabel('ForceinN')axet=axes('Position',get(gca,'Position'),'XAxisLocation','bottom','YAxisLocation','right','Color','None','XColor','k','YClor','k');ht=line(t,q,'color','r','arent',axet);ht=line(t,qq,'color','r','arent',axet);ylabe 。

12、的振子质量m从kg分别改变为kg、kg、kg、、kg。m=,L=m=,L=m=,L=m=,L=m=,L=m=,L=m=,L=m=,L=m=,L=m=,L=倒摆长度L不变,倒立摆的振子质量m从kg分别改变为kg、kg、kg、kg、kg;()质量m不变,倒摆长度L从m分别改变为m、m、、m。对象参数性能指标振子质量mkg倒摆长度Lm最大超调量调节时间上升时间XθXθXθ,q));gridon;xlabel('Time(s)')ylabel('Angleevolution(rad)')axis([])axet=axes('Position',get(gca,'Position'),'XAxisLocation','bottom','YAxisLocation','right','Color','None','XColor','k','YClor','k');ht=line(t,x,'color','r','arent',axet);ylabel('Evolutionofthexotion(m)')axis([])title('\theta(t)andolor','r');C=;C=dcgain(y);max_overshoot=*(max_yC)C%超调量计算s=length(t);%调整时间计算whiley(s)gt*Camamy(s)lt*Cs=s;endsettling_time=t(s)r=;%上升时间计算,以从稳态值的%上升到%定义while(y(r)lt*C)r=r+;endr=;while(y(r)lt*C)r=r+;endrise_time=t(r)t(r)ste(sys)运行完原理图之后,打开程序PIDm文件运行。之后会出现波形,把波形图复制在word里,而在MATLAB中会出现x与theta的最大超调量)Fcn:(*u[]*m*u[])(+m)做完以上之后点击鼠标左键不放对图形进行选定,接着右击creatsubsystem如下图所示:图)模型的封装:倒立摆的振子质量m和倒摆长度L作为子系统的参数:图双击函数模块:图欲改变其中的任一个参数只要点击其中二者之一的函数方块就行,在其中的m,l改就行了。有两种实现的方法:一种是利用示波器观察如下图所示,另一种是采用绘图程序实现。)示波器实现如图:图示波器显示结果如图所示图)用程序实现:%Inertedendulum%Modeltestinoenloo%Signalsrecueration%将导入到xymat中的仿真试验数据读出loadxymatt=signals(,:);%读取时间信号f=signals(,:);%读取作用力F信号x=signals(,:);%读取精确模型中的小车位置信号q=signals(,:);%读取精确模型中的倒摆摆角信号xx=signals(,:);%读取简化模型中的小车位置。

倒立摆C语言双闭环控制程序,基于双闭环PID控制的一阶倒立摆控制系统的设计(最终版)...相关推荐

  1. 电子秤c语言编程,基于AT89C51的数字电子秤的设计最终版(样例3)

    <基于AT89C51的数字电子秤的设计.doc>由会员分享,可免费在线阅读全文,更多与<基于AT89C51的数字电子秤的设计(最终版)>相关文档资源请在帮帮文库(www.woc ...

  2. c语言如何在1序号方编程,《基于ZG211使用C语言编程的电子钟显示设计最终版》...

    <基于ZG211使用C语言编程的电子钟显示设计.doc>由会员分享,可免费在线阅读全文,更多与<基于ZG211使用C语言编程的电子钟显示设计(最终版)>相关文档资源请在帮帮文库 ...

  3. 基于arduino +机智云物联网平台的阳台生态控制系统的设计

    基于arduino +机智云物联网平台的阳台生态控制系统的设计 李军辉 北京农业职业学院 摘要 以基质培养的绿色植物所在的半封闭阳台系统为研究对象,设计基于Arduino Uno WIFI +机智云物 ...

  4. 速算C语言程序设计,C语言速算24数据结构课程设计最终版(备份存档)

    <C语言速算24数据结构课程设计.doc>由会员分享,可免费在线阅读全文,更多与<C语言速算24数据结构课程设计(最终版)>相关文档资源请在帮帮文库(www.woc88.com ...

  5. 基于S7-300 PLC组态王组态的锅炉燃烧控制系统的设计

    基于S7-300 PLC组态王组态的锅炉燃烧控制系统的设计 ID:1369665542338711

  6. 神经网络和pid有什么区别,基于神经网络的pid控制

    PID控制的原理是什么? . PID回路是要自动实现一个操作人员用量具和控制旋钮进行的工作,这个操作人员会用量具测系统输出的结果,然后用控制旋钮来调整这个系统的输入:直到系统的输出在量具上显示稳定的需 ...

  7. 计算机控制直流电机闭环调速实验报告,PID控制电机实验报告

    PID控制电机实验报告 发布时间:2020-04-06 摘要 以电机控制平台为对象,利用51单片机和变频器,控制电机精确的定位和正反转运动,克服了常见的因高速而丢步和堵转的现象.电机实现闭环控制的基本 ...

  8. 物联网控制原理与技术--基于Matlab/PID控制仿真的应用(超详细/设计/实验/作业/练习)

    目录 课程名:物联网控制原理与技术 内容/作用:设计/实验/作业/练习 学习:PID控制仿真 一.前言 二.环境与设备 三.原理 四.内容 五.结果与分析 课程名:物联网控制原理与技术 内容/作用:设 ...

  9. matlab下pid控制仿真,基于MATLAB下PID控制仿真.PDF

    维普资讯 2004年第 4期 中 国 航 海 NO.4Dec.2004 塑 垒 垒 SerialNO.61 文章编号 :1000-4653(2004)04-0077-04 基于MATLAB下的PID控 ...

最新文章

  1. 广数系统u盘支持什么格式_支持转换50+种三维软件格式还能减面还是免费的,什么工具这么强大?...
  2. 怎么卸载apowerrec_如何删除windows10自带应用
  3. Android之复选框对话框
  4. 写论文中所需的EndNote x9下载、安装以及与wps相关联教程
  5. PostgreSQL在何处处理 sql查询之二十九
  6. STC学习:八位数码管动态扫描
  7. Android是如何绘制View的
  8. java ocr linux_linux (centos7)上装Tesseract-OCR最新版本(5.0)
  9. 用SpringBoot整合ES数据库基础
  10. 大火的扩散模型终于杀到了NLP领域
  11. Docker 书籍在线阅读(Docker 从入门到实践)
  12. 微信公众号花式排版技巧分享
  13. [Hive举例]-- hive获取今天、昨天、明天和前一个小时、后一个小时的日期
  14. springboot 佛祖保佑,永无bug
  15. 【字体】写代码编程字体展示推荐
  16. 【C语言】assert() 断言的作用
  17. 小明的字符串--牛客
  18. 带标签的infogan及其代码解析
  19. 疫情反弹,传统企业如何做好线上营销获客?
  20. 现代社会,各行各业的竞争越来越激烈

热门文章

  1. oracle 查看联合主键,Oracle 主键、联合主键的查询与创建
  2. dos2unix 目录下所有文件
  3. Tornado IOLoop
  4. Pattern类,Matcher类
  5. html手写vue多级选择框,vue + html 编写仿element select 多选组件
  6. 认证与授权协议对比:OAuth2、OpenID、SMAL
  7. 一看就会的自适应布局、响应式布局的基本概念
  8. 电子工程师计算机相关论文题目,电子工程师论文范文
  9. 二维数组的冒泡/选择排序(两种实现方法)
  10. 关于区块链技术应用于体育市场的想法