我的创作纪念日

从实践到分享:Rhino/Grasshopper二次开发的经验与收获

机缘

  1. 让自己记住一些知识,尤其是大部分网上的教程其实在真正实操的过程中会因为系统配置、其他软件等各种原因导致无法100%按照教程完全实现,中间有一部分问题是需要自己解决的;这个时候,将这部分的内容记录下来就方便下次自己再需要参考类似内容时可以直接翻阅自己的笔记了;
  2. 突然有一个好点子或者灵感,激发了我写作的欲望;
  3. 工作中有些内容是需要让新入职的同事看的,可以直接写下来这样方便其他同事阅读;

收获

  1. 获得了许多从事该领域的粉丝,看来Rhino/Grasshopper的二次开发还是有许多人关注,也有很多大学在校生愿意尝试
  2. 在与大家的私信/回复交流过程中,自己也学到了许多新的知识,更多地了解了每个人的需求
  3. 通过交流加入了许多的交流群,在里面认识了行业大佬们
  4. 最重要的收货还是提高了自己。尤其是在写文章的时候,自己会更加仔细地思考每个步骤背后的具体逻辑,有时候这种思考会推翻最开始的想法,从而将需求以一种更好的方式实现;而另一些时候我为了写透一个知识点,需要去查阅相关资料,扩展自己的知识面,增加知识积累。

写文章给别人看,与仅仅自己实操一遍自己私下里“看懂记住”还是有很大区别的,站在一个小白读者的角度去思考自己写的文章,会有另一番天地。


日常

  1. 创作是已经是我生活的一部分,闲下来的时候,就会想着“要不把前几天看到的XXX总结出一个文章吧”;
  2. 工作忙的时候自然是没有办法抽出时间来写作的,这个时候我就会将灵感点记录在我平时用的一个日程软件里;在闲暇的时候就会看这个本子,整理思绪来写作;
  3. 不忙的时候,除了写作,我也会玩游戏;写作与游戏是两种类型的放松,游戏可以调动大脑的激情,而写作则让大脑获得宁静。

成就

  1. 最大的成就来自于自己的文章阅读量在不断地增长,很多时候还会被反复看,这说明写的还是可以的;
  2. 写的最好的一段代码感觉就是C++模版元编程的一段,让某个函数只能被具备“Foo”成员函数才可以被使用:
// 具备成员函数Foo
class HasFoo
{
public:
	int Foo();
};

// 不具备成员函数Foo,仅有静态函数Foo
class StaticFoo
{
public:
    static int Foo();
};
// 啥也没有
class NoFoo { };

template <typename, typename = void >
struct has_foo_function_member_or_static : false_type {};

template <typename T>
struct has_foo_function_member_or_static<T, void_t<decltype(&T::Foo)>> : true_type {};

template <typename T>
using has_foo_function_member = 
	std::conditional_t<
		has_foo_function_member_or_static<T>::value,
		std::is_member_function_pointer<decltype(&T::Foo)>,
		false_type>;

int main()
{
    static_assert(has_foo_function_member<HasFoo>::value, "");
    //static_assert(has_foo_function_member<StaticFoo>::value, "");         // compile time err
    //static_assert(has_foo_function_member<NoFoo>::value, "");             // compile time err

    static_assert(has_foo_function_member_or_static<HasFoo>::value, "");    
    static_assert(has_foo_function_member_or_static<StaticFoo>::value, ""); 
    //static_assert(has_foo_function_member_or_static<NoFoo>::value, "");   // compile time err
}

憧憬

未来将会继续完善【Grasshopper二次开发】这个系列,写一些更加深入的内容;工作上则希望能够将最新的AI技术引入到目前的专业领域里,带来一些新的灵感与激情。

内容概要:本文档围绕六自由度机械臂的ANN人工神经网络设计展开,涵盖正向与逆向运动学求解、正向动力学控制,并采用拉格朗日-欧拉法推导逆向动力学方程,所有内容均通过Matlab代码实现。同时结合RRT路径规划与B样条优化技术,提升机械臂运动轨迹的合理性与平滑性。文中还涉及多种先进算法与仿真技术的应用,如状态估计中的UKF、AUKF、EKF等滤波方法,以及PINN、INN、CNN-LSTM等神经网络模型在工程问题中的建模与求解,展示了Matlab在机器人控制、智能算法与系统仿真中的强大能力。; 适合人群:具备一定Ma六自由度机械臂ANN人工神经网络设计:正向逆向运动学求解、正向动力学控制、拉格朗日-欧拉法推导逆向动力学方程(Matlab代码实现)tlab编程基础,从事机器人控制、自动化、智能制造、人工智能等相关领域的科研人员及研究生;熟悉运动学、动力学建模或对神经网络在控制系统中应用感兴趣的工程技术人员。; 使用场景及目标:①实现六自由度机械臂的精确运动学与动力学建模;②利用人工神经网络解决传统解析方法难以处理的非线性控制问题;③结合路径规划与轨迹优化提升机械臂作业效率;④掌握基于Matlab的状态估计、数据融合与智能算法仿真方法; 阅读建议:建议结合提供的Matlab代码进行实践操作,重点理解运动学建模与神经网络控制的设计流程,关注算法实现细节与仿真结果分析,同时参考文中提及的多种优化与估计方法拓展研究思路。
内容概要:本文围绕电力系统状态估计中的异常检测与分类展开,重点介绍基于Matlab代码实现的相关算法与仿真方法。文章详细阐述了在状态估计过程中如何识别和分类量测数据中的异常值,如坏数据、拓扑错误和参数误差等,采用包括残差分析、加权最小二乘法(WLS)、标准化残差检测等多种经典与现代检测手段,并结合实际算例验证方法的有效性。同时,文档提及多种状态估计算法如UKF、AUKF、EUKF等在负荷突变等动态场景下的应用,强调异常处理对提升电力系统运行可靠性与安全性的重要意义。; 适合人群:具备电力系统基础知识和一定Matlab编程能力的高校研究生、科研人员及从事电力系【状态估计】电力系统状态估计中的异常检测与分类(Matlab代码实现)统自动化相关工作的工程技术人员。; 使用场景及目标:①掌握电力系统状态估计中异常数据的产生机制与分类方法;②学习并实现主流异常检测算法,提升对状态估计鲁棒性的理解与仿真能力;③服务于科研项目、课程设计或实际工程中的数据质量分析环节; 阅读建议:建议结合文中提供的Matlab代码进行实践操作,配合电力系统状态估计的基本理论进行深入理解,重点关注异常检测流程的设计逻辑与不同算法的性能对比,宜从简单案例入手逐步过渡到复杂系统仿真。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值