项目四任务6:转向角度闭环控制功能开发-教学课件_第1页
项目四任务6:转向角度闭环控制功能开发-教学课件_第2页
项目四任务6:转向角度闭环控制功能开发-教学课件_第3页
项目四任务6:转向角度闭环控制功能开发-教学课件_第4页
项目四任务6:转向角度闭环控制功能开发-教学课件_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲老师:汪俊东转向角度闭环控制功能开发项目4:线控转向技术任务4.6《智能汽车线控底盘装调与测试》目录任务导入AssignmentINTRO学习目标LearningobjectivesCONTENTS0102知识准备Backgroundknowledge03任务实施Assignmentimplement课堂总结Classroomsummary0506课堂小测Classroomquiz04PART01任务导入AssignmentINTRO任务导入PID控制作为一种经典且广泛应用的控制策略,被引入到线控转向系统中,以实现更优的控制效果。你应该如何设计转向角度闭环控制程序代码,并验证自己设计的转向角度闭环控制程序代码呢?PART02学习目标Learningobjectives学习目标素质目标任务验证过程中,培养学生精益求精,严谨认真的工匠精神;在任务实施过程中,培养学生在团队中有效沟通和协作,共同完成任务。

能力目标能独立编写开发转向角度闭环控制程序代码[A55];能掌握转向角度闭环控制的测试方法及PID调参方法[A56]。知识目标能讲解线控转向系统控制策略[K59];能讲解转向角度闭环控制程序功能设计原理[A60]。PART03知识准备Backgroundknowledge一、线控转向系统控制策略1.转向环原理介绍转向环(SteeringLoop)在汽车控制系统中是一个重要的概念,它指的是从驾驶员输入到车轮实际转向角度输出的整个控制循环。主要用于实现对运动对象方向的精确控制。转向环的组成二、增量式PID控制器1.增量式PID的概述增量式PID控制,数字PID控制算法的一种基本形式,是通过对控制量的增量(本次控制量和上次控制量的差值)进行PID控制的一种控制算法。增量式PID控制框图二、增量式PID控制器1.增量式PID的概述增量式PID控制框图Δu(k)=Kp*[e(k)-e(k-1)]+Ki*e(k)+Kd*[e(k)-2*e(k-1)+e(k-2)]其中,u(k)表示第k个时刻的输出值,e(k)表示第k个时刻的误差值,KP、KI和KD分别是比例、积分和微分系数,Δu(k)表示第k个时刻的输出增量值。二、增量式PID控制器2.增量式PID的特点算式中不需要累加机器发生故障时影响范围小手动—自动切换时冲击小三、PID控制器的参数调试1.比例调节优点:调整系统的开环比例系数,提高系统的稳态精度,减低系统的惰性,加快响应速度。缺点:仅用P控制器,过大的开环比例系数不仅会使系统的超调量增大,而且会使系统稳定裕度变小,甚至不稳定。三、PID控制器的参数调试优点:消除稳态误差。缺点:积分控制器的加入会影响系统的稳定性,使系统的稳定裕度减小。2.积分调节四、转向角度闭环控制程序功能设计C语言编写的嵌入式系统程序代码设计的目的,主要是用于控制转向角度的PID控制器的实现。它使用了增量式PID控制算法来计算期望的转向角度,并将其下发给底层控制系统。1.程序设计目的三、零位标定程序功能设计在全局区域声明了一个整型变量,用于存储计算出的期望转向角度。2.全局变量声明Int16TargetAngle=0;3.PID结构体定义PID_LocTypeDef_TurnPID_Angle={0,0};PID_LocTypeDef_Turn*Ptr_Angle=&PID_Angle;定义了一个结构体,用于存储PID控制器的参数和中间变量。三、零位标定程序功能设计初始化PID控制器的函数,初始化PID控制器的参数和状态。设置比例(kp)、积分(ki)和微分(kd)增益,以及重置误差和输出变量。4.PID控制器结构体初始化函数voidPIDStructInit_Turn(PID_LocTypeDef_Turn*PID,floatkp,floatki,floatkd){PID->kp=kp;//设置比例增益,将传入的比例增益kp赋值给结构体中的kp成员

PID->ki=ki;//设置积分增益,将传入的积分增益ki赋值给结构体中的ki成员

PID->kd=kd;//设置微分增益,将传入的微分增益kd赋值给结构体中的kd成员

三、零位标定程序功能设计初始化PID控制器的函数,初始化PID控制器的参数和状态。设置比例(kp)、积分(ki)和微分(kd)增益,以及重置误差和输出变量。4.PID控制器结构体初始化函数

PID->ek=0;//将结构体中的误差ek(当前误差)初始化为0PID->ek1=0;//将结构体中的ek1(上一次误差)

PID->ek2=0;//将结构体中的ek2(上上次误差)初始化为0 PID->location_sum=0;//将结构体中的积分项location_sum初始化为0,这个变量用于存储误差的累积值

PID->out=0;//将结构体中的输出out初始化为0,这个变量存储了PID控制器的最终输出,即控制系统将应用到执行机构的控制量}三、零位标定程序功能设计实现增量式PID控制器的控制功能,用于调整系统输出以达到期望的设定值。5.增量式PID计算函数floatPID_increment_Turn(Int32setvalue,Int32actualvalue,PID_LocTypeDef_Turn*PID){ PID->ek=setvalue-actualvalue;//ek表示当前时刻的误差,计算方法为期望值减去实际值

PID->out+=PID->kp*(PID->ek-PID->ek1)+(PID->ki*PID->ek);//+PID->kd*(PID->ek-2*PID->ek1+PID->ek2);三、零位标定程序功能设计实现增量式PID控制器的控制功能,用于调整系统输出以达到期望的设定值。5.增量式PID计算函数//PID->kp:比例增益//PID->ek:当前误差//PID->ek1:上一次的误差//PID->ki:积分增益//增量式PID数学函数公式,其中比例项考虑了当前误差与上一次误差的差值,积分项则是当前误差的累积,微分项被注释掉,不进行微分控制三、零位标定程序功能设计实现增量式PID控制器的控制功能,用于调整系统输出以达到期望的设定值。5.增量式PID计算函数PID->ek2=PID->ek1;PID->ek1=PID->ek; //更新了误差的历史值,ek2变为ek1的值,ek1变为当前的ek值三、零位标定程序功能设计实现增量式PID控制器的控制功能,用于调整系统输出以达到期望的设定值。5.增量式PID计算函数if(PID->out<PID_LIMIT_MIN_Turn){ PID->out=PID_LIMIT_MIN_Turn;//PID_LIMIT_MIN_Turn:预先定义的最小限制输出

} if(PID->out>PID_LIMIT_MAX_Turn){ PID->out=PID_LIMIT_MAX_Turn;//PID_LIMIT_MAX_Turn:预先定义的最大限制输出

}//对PID输出进行了限幅处理,确保输出值不会超出预设的范围。三、零位标定程序功能设计初始化函数,在程序开始时执行一次,用于初始化角度PID参数。6.初始化函数voidInit_Turn(){PIDStructInit_Turn(Ptr_Angle,Ptr_Angle_KP,Ptr_Angle_KI,Ptr_Angle_KD);//角度PID参数赋值}三、零位标定程序功能设计循环执行函数每10ms执行一次。在这个函数中,它调用PID_increment_Turn函数来计算目标角度,并更新TargetAngle变量。7.循环执行函数voidTask_10ms_Turn(){TargetAngle=PID_increment_Turn(CAN0501sendAngle,realAngle,Ptr_Angle);}三、零位标定程序功能设计用于设置角度PID控制器的比例(KP)、积分(KI)和微分(KD)参数。8.角度PID参数#definePtr_Angle_KP0.051//定义了一个名为Ptr_Angle_KP的宏,其值为0.051。这个值将用作角度PID控制器的比例增益。比例增益决定了控制器对当前误差的反应强度。#definePtr_Angle_KI0.032//定义了一个名为Ptr_Angle_KI的宏,其值为0.032。这个值将用作角度PID控制器的积分增益。积分增益影响控制器对过去累积误差的反应,有助于消除稳态误差。#definePtr_Angle_KD0//定义了一个名为Ptr_Angle_KD的宏,其值为0。这意味着在这个PID控制器中,微分项被设置为0,表示微分控制被禁用。PART04课堂小测Classroomquiz一、判断题1.在增量式PID计算函数中,ek表示当前时刻的误差,计算方法为期望值减去实际值。()2.增量式PID算法的核心原理是直接计算控制量的绝对值。(

)√×二、选择题1.(

)是通过对控制量的增量进行PID控制的一种控制算法。A.增量式PIDB.位置式PIDC.自动式PIDD.人工式PID4.在转向角度闭环控制功能开发程序代码设计中,(

)表示当前时刻的误差,计算方法为期望值减去实际值。A.ekB.kpC.ek1D.kiDAPART05任务实施Assignmentimplement思政专栏杨永修的追梦人生:高考落榜到大国工匠杨永修杨永修,34岁,是中国一汽的高级数控技师,以其在高端发动机精密制造技术上的突破被誉为汽车制造领域的大国工匠。他不仅精通数控机床操作,还能改装进口设备,拥有18项国家专利,成为“发明大王”。杨永修的工作态度极为专注和敬业,他的技术精湛到能将发动机部件的制造精度控制在头发丝直径的三分之一,即0.015毫米以内。思政专栏杨永修的追梦人生:高考落榜到大国工匠从高考落榜到成为技术能手,杨永修的成长之路充满励志。他在一汽技术中心的试制车间,负责关键零部件的研发工作,解决了众多技术难题,为公司节约了大量成本。他的成就获得了国家级的荣誉认可。在智能制造日益重要的今天,杨永修不断学习新技术,提升技能,以适应复杂的操作需求,他的故事激励着更多技术人员追求卓越,为中国汽车制造业的创新和发展贡献力量。杨永修1.工具设备清单一、实施准备分类名称数量图例实训设备线控底盘1套测试电脑1套CAN分析仪1套UCBDM下载器1套千斤顶1台1.工具设备清单一、实施准备分类名称数量图例防护用品工作服1套安全帽1个工作手套1双辅助材料无纺布1张2.检查设备(1)穿戴好工作手套和安全帽,将工具设备等摆放在工位上。(2)检查线控底盘外观是否正常,内部零件是否齐全,线束连接是否正常。(3)用千斤顶举升线控底盘后轮,使后轮离地。(选择在实训室场地测试时需要做此操作)(4)检查测试电脑外观是否正常。(5)连接CAN分析仪外观是否正常无破损。(6)检查BDM下载器外观是否正常无破损。一、实施准备CAN分析仪二、连接设备(1)将车辆外接CAN0接口连接到CAN分析仪CAN1通道。连接CAN分析仪1.连接CAN分析仪与车辆二、连接设备接入终端电阻(2)通过拨码开关,将CAN1的终端电阻R1拨到ON的位置,接入终端电阻。(3)使用USB连接线将CAN分析仪连接到电脑。1.连接CAN分析仪与车辆二、连接设备拆卸VCU(1)拆卸VCU的两颗固定螺栓,并拆卸VCU底板。2.连接BDM下载器与车辆二、连接设备连接BDM下载器和VCU(2)连接BDM下载器和VCU,注意连接线束的方向(线束突起朝里)。2.连接BDM下载器与车辆二、连接设备连接BDM下载器和测试电脑(3)连接BDM下载器和测试电脑。2.连接BDM下载器与车辆二、连接设备启动车辆(1)确认设备连接无误后,按下车辆的电源开关,启动车辆。3.启动设备二、连接设备启动车辆(1)确认设备连接无误后,按下车辆的电源开关,启动车辆。3.启动设备二、连接设备(2)长按遥控器的电源键(左右各一个,同时长按3秒),启动遥控器。启动遥控器3.启动设备二、连接设备(2)长按遥控器的电源键(左右各一个,同时长按3秒),启动遥控器。启动遥控器3.启动设备二、连接设备(3)将遥控器最右侧SWD拨杆开关往下拨动,进入遥控驾驶模式。(4)按下测试电脑的电源开关,启动测试电脑。进入遥控驾驶模式3.启动设备三、编写零位标定程序代码turn_control.c文件(1)打开代码文件在“MCU_Program/turn”文件夹中,双击打开turn_control.c文件。三、编写零位标定程序代码修改转向控制代码程序(2)编写转向控制代码根据代码文件中的中文注释中的任务要求,修改转向角度闭环控制功能代码并保存。“FreescaleCodewarrior”主界面1.将零位标定程序固件烧入到VCU(1)双击打开“program.mcp”快捷图标,进入“FreescaleCodewarrior”主界面。四、固件烧入进入烧入界面(2)单击“Debug”下拉菜单,在弹出的“USBDMConfiguration-HC12弹窗中,单击“OK”,进入烧入界面。四、固件烧入1.将零位标定程序固件烧入到VCU(3)等待进入烧入界面完成,进度条如下图所示。四、固件烧入1.将零位标定程序固件烧入到VCU进入烧入界面进度条(4)点击“运行”按钮(绿色箭头),进行固件烧入。四、固件烧入1.将零位标定程序固件烧入到VCU运行界面进入查看参数界面2.在线查看零位标定参数(1)固件烧入完成后,在“FreescaleCodewarrior”主界面,双击“data”行,进入查看参数界面。四、固件烧入(2)在查看参数界面空白区域,单击鼠标右键,在弹窗中选择“OpenModule”。四、固件烧入选择模块2.在线查看零位标定参数(3)在弹出的“Modules”弹窗中,选择“turn_control.c”文件,显示对应的变量值。四、固件烧入选择“turn_control.c”文件2.在线查看零位标定参数(4)在查看参数界面空白区域,单击鼠标右键,在弹窗中选择“mode”,在弹出的“mode”弹窗中,选择“periodical”。四、固件烧入修改模式2.在线查看零位标定参数(5)在弹出的“UpdateRate”弹窗中,将数值改为1。四、固件烧入修改刷新比率2.在线查看零位标定参数(6)在查看参数界面,能够看到实时更新显示转向控制参数。四、固件烧入实时更新转向控制参数2.在线查看零位标定参数(1)修改转向角度闭环控制功能代码为不使用嵌套的PID模式,并重新烧入到VCU中,具体操作如任务实施三、四所示。(2)在上位机以一次性从0°转向至300°为例,具体操作如项目四任务4所示。(3)生成对应的.txt文件和测试数据曲线图。1.记录未使用PID控制的转向数据五、验证转向角度闭环控制功能未使用PID控制转向数据曲线图(1)修改转向角度闭环控制功能代码为使用嵌套的PID模式,并重新烧入到VCU中,具体操作如任务实施三、四所示。(2)在上位机以一次性从0°转向至300°为例,具体操作如项目四任务4所示。(3)生成对应的.txt文件和测试数据曲线图。2.记录使用PID控制的转向数据五、验证转向角度闭环控制功能使用PID控制转向数据曲线图3.记录并分析转向数据五、验证转向角度闭环控制功能序号是否使用PID控制转向操作(°)KP系数KI系数最大超调量(°)稳态误差(°)到达峰值时间(ms)系统稳定时间1否0~3000.050.032616407352是0~3000.050.032190660745结合图与表进行分析,使用PID控制的转向系统的最大超调量发生较大的变化,因此可以证明转向角度闭环控制功能已经生效。(1)确定比例系数kp时、首先去掉PID的积分项和微分项,一般是ki=0,使PID为纯比例调节。(2)从0.5递减到0.1设置kp系数,记录数据,回放数据。(3)在turn_control.h文件中,修改转向角度闭环控制功能代码中的kp、ki系数,并重新烧入到VCU中,并查看对应的PID-OUT角度,具体操作如任务实施三、四所示。(4)在上位机以一次性从0°转向至300°为例,具体操作如项目四任务4所示。六、调整转向角度闭环控制PID参数1.调整kp系数并分析转向角度的变化六、调整转向角度闭环控制PID参数1.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论