# software **Repository Path**: freescale_team_project/software ## Basic Information - **Project Name**: software - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-05-04 - **Last Updated**: 2024-07-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 目前进度 ### 硬件 - 拥有驱动板(已测试完成)、检波运放板(焊接完成,等待测试)、底板 ### 软件 - 未完成:~~差比和~~、~~舵机(PWM)~~、舵机pid、~~中断~~等等 - ~~预计没有编码器很难有很好效果~~ # 用车须知 1. 连接电脑后,电脑会给板子供电。 2. 开关有主板开关和驱动板开关,打开开关前先断开电脑连接 3. 电机转速较快,没有必要时不要放在地上开启电机 4. 蓝牙模块密码为1234,功能包含调整pid参数、停车,具体格式看源码注释 5. 蓝牙调参推荐使用VOFA+(其他工具不保证代码是否合适) 6. 舵机的接线要正确,每根线的含义可在逐飞商品页面查看(白的是PWM,中间是电源,黑的是地) 7. 舵机已在代码设定好最大值和最小值,请勿随意设置PWM,要在最值范围内 8. 主板上的电位器已调整(7.4V转6.4V),请勿随意转动电位器 # 优质文章链接 [2023年智能车大赛电磁组开源项目(负压电磁省奖),新手学习指南,原理讲解,控制基本算法思路。圆环,出入库,避障全元素代码,开源项目。](https://blog.csdn.net/qq_43602633/article/details/132631732) [第16届智能车智能视觉组-上海交通大学AuTop战队开源算法讲解(十)电感控制方案](https://wjrsbu.smartapps.cn/pages/article/index?id=392246246&isShared=1&bdswankey=vivobrowser%3A%2F%2Fswan%2FoFx3nbdDN6GWF3Vb0Wh7EDBMBxRTTcfe%2Fzhihu%2Farticle%3Fid%3D392246246%26from%3D1599_N_9lveRDUF%2540P3_1_N%26oauthType%3Dsearch%26searchParams%3D%257B%2522failUrl%2522%253A%2522https%253A%252F%252Fzhuanlan.zhihu.com%252Fp%252F392246246%2522%252C%2522logParams%2522%253A%2522pu%253D%2524pu%2526baiduid%253D%2524baiduid%2526tcreq4log%253D1%2526isAtom%253D1%2526cyc%253D1%2526clk_info%253D%257B%255C%2522tplname%255C%2522%253A%255C%2522www_index%255C%2522%252C%255C%2522srcid%255C%2522%253A1599%252C%255C%2522ivkStatus%255C%2522%253A%255C%2522new_ivk_success%255C%2522%252C%255C%2522type%255C%2522%253A%255C%2522xcx%255C%2522%252C%255C%2522naType%255C%2522%253A%255C%2522%255C%2522%252C%255C%2522ivkSource%255C%2522%253A%255C%2522h5_schema%255C%2522%252C%255C%2522jumpType%255C%2522%253A%255C%2522xcx%255C%2522%252C%255C%2522jumpId%255C%2522%253A110%252C%255C%2522xcx_path%255C%2522%253A%255C%2522%2525252Fzhihu%2525252Farticle%2525253Fid%2525253D392246246%255C%2522%252C%255C%2522xcx_id%255C%2522%253A%255C%2522oFx3nbdDN6GWF3Vb0Wh7EDBMBxRTTcfe%255C%2522%252C%255C%2522xcx_from%255C%2522%253A%255C%25221081000810003000%255C%2522%257D%2526lid%253D11239192136832251459%2526l%253D1%2526t%253Diphone%2526ref%253Dwww_iphone%2526from%253D1020761f%2526order%253D6%2526w%253D0_10_%25E6%2599%25BA%25E8%2583%25BD%25E8%25BD%25A6%25E7%2594%25B5%25E6%2584%259F%25E7%25AE%2597%25E6%25B3%2595%2526tj%253Dwww_index_6_0_10_l%2526src%253Dhttps%2525253A%2525252F%2525252Fzhuanlan.zhihu.com%2525252Fp%2525252F392246246%2522%257D%26useTpl%3D1&_swebfr=1&_swebFromHost=vivobrowser) [电磁车算法优化总结](https://www.guyuehome.com/24840) [电磁循迹中的基本控制算法](https://www.guyuehome.com/24826)(力推) [[智能车03]稳定姿态进环岛](https://www.guyuehome.com/34502) [智能车浅谈 电磁组——环岛处理](https://blog.csdn.net/qq_41954556/article/details/126680173) [积分算法](https://blog.csdn.net/qq_61867196/article/details/128264364) [他人对差比和加权算法的研究](https://blog.csdn.net/zhuoqingjoking97298/article/details/108993827?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522171705925716800180622243%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=171705925716800180622243&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~baidu_landing_v2~default-6-108993827-null-null.142^v100^pc_search_result_base9&utm_term=%E6%99%BA%E8%83%BD%E8%BD%A6%E5%B7%AE%E6%AF%94%E5%92%8C&spm=1018.2226.3001.4187) # 大纲 **library是逐飞库,工程文件在project的mrs文件夹;自行编写的源文件与头文件保存在project的code** - **pid** - 电机(pi算法) - 舵机(pd算法) - **编码器** - 读取速度、转动方向 - **电磁信号处理** - 滤波算法 参考:https://zhuanlan.zhihu.com/p/668379315 - 归一化 - 差比和 - **蓝牙** - 将电机速度传输给上位机(vofa)形成图像 ## 一、pid参数 先调p,再调d,再调i,一定要看波形。 - p相当于拉力,但是最终一直会在目标附近抖动;p过大,震荡越大; - d相当于**消抖(阻尼)**,使得实际值最终一定会到达目标值,但是还是会有一段时间的抖动;但Kd过大或过小都会**加剧震荡** - i消除静态误差,相当于消减抖动最高峰; ### p调参 p在直道:0.1~1;弯道时:10过得去,但是比较抖。 可以让p是erro的二次函数,当error偏差不大,p的变化也不大;当error经过弯道,变化较大时,p也会很快变大 速度和erro成反的二次函数 ### 串并级 - 并级pid(保底):一个输入进入到各个环,各个环的输出的PWM加起来给到电机 - 参数范围大 - 回复慢 - 串级:一个环的输出会成为下一个环的**目标值**。外环输入、内环输出;内环速率快,外环速率低 ### 经验 - 舵机可以只用pd: - 速度可以只用pi;(==以下由GPT生成==) - 速度环的惯性较小: 速度环控制的对象通常是电机等,其响应速度比较快,惯性较小。速度的快速响应可以自然地抑制速度的过冲和振荡。 - 噪声和抖动的影响: 在速度控制中,噪声和机械抖动可能会引入干扰信号,这些信号可能导致微分项产生过大的输出,从而导致控制系统的不稳定性。因此,**为了避免过度敏感性和抖动放大**,速度环通常只采用比例和积分项。 ## 电磁循迹的数据处理 横电感用来循迹,斜电感用来判断元素(环岛元素等) 滤波算法:去最大去最小,取均值 归一化:每个电感灵敏不一,为了在对称的情况下两侧电感测得的值一样,可test/(max-min)*100% 得到的AD1和AD2经过【差比和】处理后交给舵机 ## 赛道处理 ### 例子的电感排布: DL(x) DR(x) L(⬆) ML(➡) MID(➡) MR(⬅) R(⬆) ### 环岛 进入环岛(如右环岛),垂直电感(DR)下降后上升,横向电感(MR)升高后下降,中间电感(MID)加倍 ``` //环岛条件 #define MLR_DIF_VAL (0.22)//左右的中电感差值 #define MID_INC_VAL (8.78)//中间电感上升,用于断环岛 #define CIRC CONDITION 0 (fabs(dl_pu -dr_pu)>MLR_DIF_VAL)//主要条件:左右垂直电感出现显著差异 #define CIRC CONDITION 1 (mid_pu>MID_INC_VAL)//主要条件:中间导线重合,中电感上升 #define CIRC_CONDITION_2 (dl_pu 0.18 &dr_pu 0.18)// //启动分叉判断条件 #define MLR_INC_VAL (0.45)//对于左右的中电感上升,达到一定值贝则开始判断分支 //岔路条件 #define MID_DEC_VAL (0.5)/中间电感降低的积分值,代表中间导线消失(车身倾斜) #define DLR_DEC_VAL (0.9) #define BRAN_CONDITION_0 (mid_pu MID DEC_VAL) //电感突降 #define BRAN_CONDITION_1 ((d1_pu+dr_pu)3098&ADR>300) ```