终于有空了
唉,学习压力真大,好不容易想起科创来了
初三基本没时间玩火箭了,只能偶尔看看书,回忆一下过往
先说一下飞控的事吧,截至今天,已经做了六个版本的板子,三套制导程序
原先用RP2040做主控的方案暂时搁置了,用的是stm32f103c8t6
原因很简单,没时间
掌握一套新的语言要花费不少时间,即使我已经写好了伪代码,还搞过两年信息奥赛
目前比较大的问题是对单片机时钟操作比较生疏,导致积分误差居高不下(后来引用了陀螺仪滤波芯片的时基,问题得到较大改善,但误差仍比较大,若不用GPS修正,百米误差接近十米)
至于制导程序,应该是你们最感兴趣的,却恰恰是我最不想讲的。原因如下:
1、程序不通用,主要是很多修正系数,都是为我自己设计的火箭量身定制的,它们涉及领域广,计算过程复杂,一时半会讲不清。比如两个火箭的质心不一样,鸭翼的机动效果会有大差异,还包括发动机推力、实时空气阻力、重力,运动状态等。这需要重新分类讨论状态转移方程,我的第一代程序就写了上千行,其复杂程度不言而喻。
2、没时间,待会还得写作业,就算是寒假也不会有时间了。这次回来说两句其实是来跟kc告别的。
3、个人语言表述能力弱,算法很复杂(对我来说一般般),自暑假以来几乎没碰过电脑,上次用还是暑假用VS写上位机的时候,所以忘了不少东西。对于算法的解读涉及很多专业知识,尤其是物理,对读者文化要求很高,想要降低阅读门槛是个不小的问题(毕竟我也是个初中生,入坑这两年我很清楚我是怎样跌跌撞撞走过来的)
最终还是归结于一个原因:没时间
如果有时间,没有什么对我是不可能的
眼看又要走了,最早要到明年毕业才能回科创。
留给初中爱好者一点话:
合理安排学校学习和爱好之间的关系,切忌一意孤行
找到好的引导老师很重要
如果是真的爱好,不是为了装逼、混圈子,相信你不会半途而废
切忌浮躁,骄傲,要有目标和执行力。
最后也没啥了,如果需要帮助,私聊我(qq:2492724129),回复可能很慢。
推荐几本适合初中爱好者的书:
再随便贴几张图
贴一篇自己写的唯一一篇博客,算是纪念吧
-----------------------------------------------------------------------------------------------------
最小生成树--kruskal算法
2021-12-24 23:11:37
thumb_up 0
(一)最小生成树:
要求:
1.恰好有n个点,n-1条边;
2.连通
3.边权和最小
求最小生成树的算法一般都使用贪心策略,如Kruskal算法等。
kruskal算法的基本思想:
1.按边权升序排边;
2.并查集判环;
3.选出n-1条边时停止;
#include <bits/stdc++.h>using namespace std;int fa[100005],n,m;struct sides{ int w,x,y; //边权,两个端点; }a[100005];int find(int x) //并查集必备 { if(fa[x]==x) return x; return fa[x]=find(fa[x]); //路径压缩 }void unionn(int x,int y) { int fx=find(x); int fy=find(y); if(fx!=fy) fa[fx]=fy; return ; }int cmp(sides a,sides b){ return a.w<b.w?a.w:b.w; //升序 }void kruskal(){ for(int i=1;i<=n;i++) fa[i]=i; //并查集初始化 sort(a+1,a+m+1,cmp); //边权排序 for(int i=1;i<=m;i++) //选边 { int fx=find(a[i].x); //x's father int fy=find(a[i].y); //y's father if(fx!=fy) //判环 { ans+=a[i].w; //如果必要的话(ans为最小总权值) unionn(fx,fy); //合并 //if(cnt++ ==n-1) return ; //小优化 } } }
代码仅供参考
第一次写博客
------------------------------------------------------------------------------------------------
至此、便没太多想说的了
感谢科创,给了我们年轻一代许多机会
祝自己考上理想的高中,继续朝着梦想努力
祝科创前途光明,国家繁荣昌盛
但愿从今后, 你我永不忘
莫斯科郊外的晚上, 但愿从今后
你我永不忘, 莫斯科郊外的晚上 ——马都索夫斯基《莫斯科郊外的晚上》
有缘再见,科创。
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |