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

下载本文档

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

文档简介

任务4.6转向角度闭环控制功能开发-学生手册【任务导入】线控转向系统通过电子信号代替机械链接,提供更快速、更精确的转向响应。PID控制作为一种经典且广泛应用的控制策略,被引入到线控转向系统中,以实现更优的控制效果。假设你是某家线控底盘解决方案供应商的测试工程师,需要按照公司的工作手册,依据通信协议,利用嵌入式系统中用于转向控制的C语言程序,开发基于PID控制的线控转向角度闭环控制功能。你应该如何设计转向角度闭环控制程序代码,并验证自己设计的转向角度闭环控制程序代码呢?提示:此次任务我们将通过提示:此次任务我们将通过C语言程序开发,完成线控转向角度闭环控制的程序代码的编写;能掌握转向角度闭环控制的测试方法及PID调参方法。

【学习目标】素质目标根据线控转向系统的控制开发过程,引导学生以不同的方式完成任务要求,培养学生的创新思维和逻辑思维;在任务验证过程中,培养学生精益求精,严谨认真的工匠精神;在任务实施过程中,强调团队合作的重要性,培养学生在团队中有效沟通和协作,共同完成任务。知识目标能讲解线控转向系统控制策略[K59];能讲解转向角度闭环控制程序功能设计原理[K60]。能力目标能独立编写开发转向角度闭环控制程序代码[A55];能掌握转向角度闭环控制的测试方法及PID调参方法[A56]。【知识准备】一、线控转向系统控制策略1.转向环原理介绍转向环(SteeringLoop)在汽车控制系统中是一个重要的概念,它指的是从驾驶员输入到车轮实际转向角度输出的整个控制循环,主要用于实现对运动对象方向的精确控制。它的主要结构组成如REF_Ref170738257\h图4-6-1所示,其基本原理是通过接收外部指令或传感器信号,经过内部算法处理后,输出控制信号驱动执行机构进行方向调整。转向环的设计关键在于对指令信号的快速响应和对执行机构精确控制的能力,以实现运动对象平滑、稳定的转向操作。图4-6-SEQ图4-6-\*ARABIC1转向环的组成2.转向系统的控制策略(1)PID控制比例(P)控制:根据转向角的偏差来调整转向力,以减少偏差。积分(I)控制:对偏差进行积分,以消除系统的静态误差。微分(D)控制:对偏差的变化率进行调整,以提高系统的动态响应性。(2)模糊逻辑控制利用模糊集合理论来处理模糊概念,如“软”或“硬”的转向感觉。模糊控制器可以模拟人类驾驶员的控制行为,提高转向系统的适应性和鲁棒性。(3)自适应控制根据车辆的实时状态和外部环境条件自动调整控制参数。自适应控制系统可以提高车辆在不同路面和速度下的操控性能。(4)滑模控制一种非线性控制策略,通过使系统状态在预定的滑模面上滑动来实现控制目标。滑模控制具有对参数变化和外部扰动的不敏感性。(5)预测控制基于对未来系统行为的预测来计算当前的控制动作。预测控制可以优化未来的性能,而不仅仅是当前的偏差。(6)神经网络控制使用神经网络来模拟复杂的非线性系统,实现对转向系统的控制。神经网络控制可以适应系统参数的变化和未知的非线性特性。(7)集成控制策略结合多种控制策略,如PID控制和模糊控制,以实现更优的控制效果。集成控制系统可以利用不同控制策略的优点,提高系统的综合性能。二、增量式PID控制器1.增量式PID的概述增量式PID控制,数字PID控制算法的一种基本形式,其控制框图如REF_Ref170738289\h图4-6-2所示。是通过对控制量的增量(本次控制量和上次控制量的差值)进行PID控制的一种控制算法。图4-6-SEQ图4-6-\*ARABIC2增量式PID控制框图增量式PID算法的核心原理是计算控制量的增量,而不是直接计算控制量的绝对值。这意味着算法将当前时刻的控制量与上一时刻的控制量进行比较,只更新两者之间的差值。实现增量式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个时刻的输出增量值。2.增量式PID的特点增量式PID控制主要是通过求出增量,将原先的积分环节的累积作用进行了替换,避免积分环节占用大量计算性能和存储空间。增量式PID控制的主要特点为:①算式中不需要累加。控制增量Δu(k)的确定仅与最近3次的采样值有关,容易通过加权处理获得比较好的控制效果;②计算机每次只输出控制增量,即对应执行机构位置的变化量,故机器发生故障时影响范围小、不会严重影响生产过程;③手动—自动切换时冲击小。当控制从手动向自动切换时,可以作到无扰动切换。由于增量式需要对控制量进行记忆,所以对于不带记忆装置的系统,只能使用位置式PID控制方式进行控制。三、PID控制器的参数调试PID控制器的参数调试是指通过调整控制参数(比例增益、积分增益、微分增益)让系统达到最佳的控制效果,确保系统具有良好的鲁棒性。1.比例调节P参数越大比例作用越强,动态响应越快,消除误差的能力越强。但实际系统是有惯性的,控制输出变化后,实际值变化还需等待段时间才会缓慢变化。由于实际系统是有惯性的,比例作用不宜太强,比例作用太强会引起系统振荡不稳定。P参数的大小应在以上定量计算的基础上根据系统响应情况,现场调试决定,通常将P参数由大向小调,以能达到最快响应又无超调(或无大的超调)为最佳参数。优点:调整系统的开环比例系数,提高系统的稳态精度,减低系统的惰性,加快响应速度。缺点:仅用P控制器,过大的开环比例系数不仅会使系统的超调量增大,而且会使系统稳定裕度变小,甚至不稳定。2.积分调节控制器的输出与输入误差信号的积分成正比关系。主要用于消除静差,提高系统的无差度。积分作用的强弱取决于积分时间常数KI越大,积分作用越弱,反之则越强。比例作用的输出与误差的大小成正比,误差越大,输出越大,误差越小,输出越小,误差为零,输出为零。由于没有误差时输出为零,因此比例调节不可能完全消除误差,不可能使被控的PV值达到给定值。必须存在一个稳定的误差,以维持一个稳定的输出,才能使系统的峰谷值保持稳定。这就是通常所说的比例作用是有差调节,是有静差的,加强比例作用只能减少静差,不能消除静差(静差:即静态误差,也称稳态误差)。为了消除静差必须引入积分作用,积分作用可以消除静差,以使被控的输出值最后与给定值一致。引进积分作用的目的也就是为了消除静差,使输出值达到给定值,并保持一致。积分作用消除静差的原理是,只要有误差存在,就对误差进行积分,使输出继续增大或减小,一直到误差为零,积分停止,输出不再变化,系统的峰谷值保持稳定,输出值等于被控值,达到无差调节的效果。但由于实际系统是有惯性的,输出变化后,实际值不会马上变化,须等待一段时间才缓慢变化,因此积分的快慢必须与实际系统的惯性相匹配,惯性大、积分作用就应该弱,积分时间就应该大些。如果积分作用太强,积分输出变化过快,就会引起积分过头的现象,产生积分超调和振荡。通常KI参数也是由大往小调,即积分作用由小往大调,观察系统响应以能达到快速消除误差,达到给定值,又不引起振荡为准。优点:消除稳态误差。缺点:积分控制器的加入会影响系统的稳定性,使系统的稳定裕度减小。四、转向角度闭环控制程序功能设计1.程序设计目的C语言编写的嵌入式系统程序代码设计的目的,主要是用于控制转向角度的PID控制器的实现。它使用了增量式PID控制算法来计算期望的转向角度,并将其下发给底层控制系统。2.全局变量声明在全局区域声明了一个整型变量,用于存储计算出的期望转向角度。Int16TargetAngle=0;3.PID结构体定义定义了一个结构体,用于存储PID控制器的参数和中间变量。PID_LocTypeDef_TurnPID_Angle={0,0};PID_LocTypeDef_Turn*Ptr_Angle=&PID_Angle;4.PID控制器结构体初始化函数初始化PID控制器的函数,初始化PID控制器的参数和状态。设置比例(kp)、积分(ki)和微分(kd)增益,以及重置误差和输出变量。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->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控制器的最终输出,即控制系统将应用到执行机构的控制量}5.增量式PID计算函数实现增量式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->kp:比例增益//PID->ek:当前误差//PID->ek1:上一次的误差//PID->ki:积分增益//增量式PID数学函数公式,其中比例项考虑了当前误差与上一次误差的差值,积分项则是当前误差的累积,微分项被注释掉,不进行微分控制PID->ek2=PID->ek1;PID->ek1=PID->ek; //更新了误差的历史值,ek2变为ek1的值,ek1变为当前的ek值 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输出进行了限幅处理,确保输出值不会超出预设的范围。 returnPID->out;//函数返回计算后的PID输出值}6.初始化函数初始化函数,在程序开始时执行一次,用于初始化角度PID参数。voidInit_Turn(){PIDStructInit_Turn(Ptr_Angle,Ptr_Angle_KP,Ptr_Angle_KI,Ptr_Angle_KD);//角度PID参数赋值}7.循环执行函数循环执行函数每10ms执行一次。在这个函数中,它调用PID_increment_Turn函数来计算目标角度,并更新TargetAngle变量。voidTask_10ms_Turn(){TargetAngle=PID_increment_Turn(CAN0501sendAngle,realAngle,Ptr_Angle);}8.角度PID参数用于设置角度PID控制器的比例(KP)、积分(KI)和微分(KD)参数。#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,表示微分控制被禁用。【任务实施】一、实施准备1.工具设备清单表4-6-SEQ表4-6-\*ARABIC1工具设备清单分类名称数量图例实训设备线控底盘1套测试电脑1套CAN分析仪1套UCBDM下载器1套千斤顶1台防护用品工作服1套安全帽1个工作手套1双辅助材料无纺布1张2.检查设备(1)穿戴好工作手套和安全帽,将工具设备等摆放在工位上。(2)检查线控底盘外观是否正常,内部零件是否齐全,线束连接是否正常。(3)用千斤顶举升线控底盘后轮,使后轮离地。(选择在实训室场地测试时需要做此操作)(4)检查测试电脑外观是否正常。(5)连接CAN分析仪外观是否正常无破损。(6)检查BDM下载器外观是否正常无破损。二、连接设备1.连接CAN分析仪与车辆(1)将车辆外接CAN接口连接到CAN分析仪CAN1通道,如REF_Ref170738304\h图4-6-3所示。图4-6-SEQ图4-6-\*ARABIC3连接CAN分析仪(2)通过拨码开关,将CAN1的终端电阻R1拨到ON的位置,如REF_Ref170738315\h图4-6-4所示,接入终端电阻。图4-6-SEQ图4-6-\*ARABIC4接入终端电阻(3)使用USB连接线将CAN分析仪连接到电脑。2.连接BDM下载器与车辆(1)车辆下电,拆卸VCU的两颗固定螺栓,并拆卸VCU底板,如REF_Ref170738323\h图4-6-5所示。图4-6-SEQ图4-6-\*ARABIC5拆卸VCU(2)连接BDM下载器和VCU,如REF_Ref170738328\h图4-6-6所示,注意连接线束的方向(线束突起朝里)。图4-6-SEQ图4-6-\*ARABIC6连接BDM下载器和VCU(3)连接BDM下载器和测试电脑,如REF_Ref170738332\h图4-6-7所示。图4-6-SEQ图4-6-\*ARABIC7连接BDM下载器和测试电脑3.启动设备(1)确认设备连接无误后,按下车辆的电源开关,启动车辆,如REF_Ref170738338\h图4-6-8所示。图4-6-SEQ图4-6-\*ARABIC8启动车辆(2)长按遥控器的电源键(左右各一个,同时长按3秒),如REF_Ref170738347\h图4-6-9所示,启动遥控器。图4-6-SEQ图4-6-\*ARABIC9启动遥控器(3)将遥控器最右侧SWD拨杆开关往下拨动,进入遥控驾驶模式,如REF_Ref170738359\h图4-6-10所示。(注意:需将遥控器的拨杆SWB拨到中间位置,关闭转向灯)图4-6-SEQ图4-6-\*ARABIC10进入遥控驾驶模式(4)按下测试电脑的电源开关,启动测试电脑。三、编写转向角度闭环控制功能代码(1)打开代码文件在“MCU_Program/turn”文件夹中,双击打开turn_control.c文件,如REF_Ref170738364\h图4-6-11所示。图4-6-SEQ图4-6-\*ARABIC11turn_control.c文件(2)编写转向控制代码根据代码文件中的中文注释中的任务要求,如REF_Ref170738381\h图4-6-12所示,修改转向角度闭环控制功能代码并保存。图4-6-SEQ图4-6-\*ARABIC12修改转向控制程序四、固件烧入1.将转向角度闭环控制程序固件烧入到VCU(1)双击打开“program.mcp”快捷图标,进入“FreescaleCodewarrior”主界面,如REF_Ref170738389\h图4-6-13所示。图4-6-SEQ图4-6-\*ARABIC13“FreescaleCodewarrior”主界面(2)单击“Debug”下拉菜单,在弹出的“USBDMConfiguration-HC12”弹窗中,单击“OK”,进入烧录界面,如REF_Ref170738403\h图4-6-14所示。图4-6-SEQ图4-6-\*ARABIC14进入烧入界面(3)等待进入烧录界面完成,进度条如REF_Ref170738409\h图4-6-15所示。图4-6-SEQ图4-6-\*ARABIC15进入烧入界面进度条(4)单击“运行”按钮(绿色箭头),进行固件烧入,如REF_Ref170738414\h图4-6-16所示。图4-6-SEQ图4-6-\*ARABIC16运行界面2.在线查看转向控制参数(1)固件烧入完成后,在“FreescaleCodewarrior”主界面,双击“data”行,进入查看参数界面,如REF_Ref170738420\h图4-6-17所示。图4-6-SEQ图4-6-\*ARABIC17进入查看参数界面(2)在查看参数界面空白区域,单击鼠标右键,在弹窗中选择“OpenModule”,如REF_Ref170738425\h图4-6-18所示。图4-6-SEQ图4-6-\*ARABIC18选择模块(3)在弹出的“Modules”弹窗中,选择“turn_control.c”文件,显示对应的变量值,如REF_Ref170738431\h图4-6-19所示。图4-6-SEQ图4-6-\*ARABIC19选择“turn_control.c”文件(4)在查看参数界面空白区域,单击鼠标右键,在弹窗中选择“mode”,在弹出的“mode”弹窗中,选择“periodical”,如REF_Ref170738444\h图4-6-20所示。图4-6-SEQ图4-6-\*ARABIC20修改模式(5)在弹出的“UpdateRate”弹窗中,将数值改为1,如REF_Ref170738461\h图4-6-21所示。图4-6-SEQ图4-6-\*ARABIC21修改刷新比率(6)在查看参数界面,能够看到实时更新显示转向控制参数,如REF_Ref170738465\h图4-6-22所示。图4-6-SEQ图4-6-\*ARABIC22实时更新显示转向控制参数五、验证转向角度闭环控制功能1.记录未使用PID控制的转向数据(1)修改转向角度闭环控制功能代码为不使用嵌套的PID模式,并重新烧入到VCU中,具体操作如任务实施三、四所示。(2)在上位机以一次性从0°转向至300°为例,具体操作如项目四任务4所示。(3)生成对应的.txt文件和测试数据曲线图,如REF_Ref170738471\h图4-6-23所示。图4-6-SEQ图4-6-\*ARABIC23未使用PID控制转向数据曲线图2.记录使用PID控制的转向数据(1)在turn_control.c文件中,修改转向角度闭环控制功能代码为使用嵌套的PID模式,并重新烧入到VCU中,具体操作如任务实施三、四所示。(2)在上位机以一次性从0°转向至300°为例,具体操作如项目四任务4所示。(3)生成对应的.txt文件和测试数据曲线图,如REF_Ref170738476\h图4-6-24所示。图4-6-SEQ图4-6-\*ARABIC24使用PID控制转向数据曲线图3.记录并分析转向数据记录测试数据,上位机以一次从0°转向至300°转向数据表格见REF_Ref170738536\h表4-6-2。表4-6-SEQ表4-6-\*ARABIC2转向控制测试数据序号是否使用PID控制转向操作(°)KP系数KI系数最大超调量(°)稳态误差(°)到达峰值时间(ms)系统稳定时间1否0~3000.050.032616407352是0~3000.050.032190660745Kp系数主要控制系统的即时响应速度。当使用PID控制时,Kp值生效并随着KP值增大时,控制器会更快地对输入偏差(设定值与实际值之间的差)做出反应,输出信号的变化也更迅速,从而快速减小误差。结合图与表进行分析,使用PID控制的转向系统的最大超调量发生较大的变化,因此可以证明转向角度闭环控制功能已经生效。但是因为PID算法控制器的参数未挑选妥当,其控制器输出可能是不稳定的,也就是其输出发散,使得使用PID控制的转向系统发生较大的震荡,因此需要对PID控制进行参数调整,以提高转向系统的稳定性。六、调整转向角度闭环控制PID参数1.调整kp系数并分析转向角度的变化(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所示。(5)生成对应的数据和测试数据曲线图见REF_Ref170738528\h表4-6-3。表4-6-

温馨提示

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

评论

0/150

提交评论