楔子-写在之前
最近一年都在忙着一个项目,并且需要学习另一个领域的知识,从单片机过渡到了LINUX嵌入式,倒静不下心去写点东西。看了下之前写的东西,感觉已经过去了很久很久。现在项目快忙完了,准备把最近的心得给大家分享下。
前言
之前准备用很多文章介绍整个电力电子的体系,现在看看仅仅写了几个技术性的文章,这对于想了解这门学科的小伙伴感觉是不够的。前面写了STM32、FPGA、屏幕和QT,其实对于一个小型的项目来书,这几个部分已经差不多够了。但是介绍的仅仅是中间的技术问题,所以还是不能从整体上把控该怎么弄,该用到什么知识,该怎么去转型。之后的文章我将一一介绍从开始到结束怎么一步一步的去搞。当然这个是花费很大的经历,自己做明白和说明白是两回事。
最近心得
做了电力电子八年,加上自己系统学习的7年,又加上基础学习的4年,差不多搞了19年了。当然基础学习都是胡乱学,没啥长进,那也差不多好好搞了15年了。
开始的时候调试出个串口信号,心理美滋滋的,感觉很神奇,充满了兴奋。到后来的慢慢的工作,感觉这个是应该做的,不过调试出来东西,看着波形在示波器上显示,心理还是挺兴奋的。直到现在,做出来东西,已经没有任何波澜,感觉这个是工作,应该做出来。或许这个就是慢慢的心理变老了。不喜欢这种状态,可是却无可奈何。
现在仅仅是做新东西的时候,没有任何基础的东西,然后做出来,才会开心一会,那种兴奋已经没了。或许这个就是消磨吧。有时候真羡慕那些可以一直保持兴奋的人。
话说回来,我很喜欢电力电子,是感兴趣那种。能让我调试个板子,我是很喜欢的,能坐在那里一上午不动,慢慢搞的那种人。并且自己的工作也是电力电子,知乎上很多人羡慕自己的工作就是自己的兴趣这样的。一开始不觉得,时间长了感觉兴趣和工作一样的这种情况,确实挺少的。工作就是工作,拿钱就是拿钱。可偏偏正好喜欢的东西还能拿钱,多好。
不过慢慢的这种情况的弊端我也感受到了。回到家坐在那里想做点自己喜欢的东西,可总感觉自己的加班、在工作。这种感觉很难受。并且工作也不太开心的时候,总有些不如意的时候,你再去做自己感兴趣的东西,并且和工作内容一样的时候,你会感觉很别扭,甚至有些如坐针毡的感觉。哎!有利有弊吧!
前面说了那么多,是想和小伙伴分享下心情,不知道有没有一样的小伙伴,或者已经经历过这个阶段的前辈。下面的路怎么走呢,也没人指导,真心希望这个时候能有个前辈指一条道路啊,当然不仅仅是技术上的,还包括心理建设方面的。
技术路线
先系统说下自己到现在都干了啥,给想走这条道的小伙伴抛砖引玉。
上学期间的基础(感觉对现在有用的):
(1)电路,这个不多说了,整个电力系统的基础,必须得会。书目也就是大学期间学的邱关源的电路。现在看看不用都学,学个差不多就行。
(2)模拟电路,这个也是后来的整个电力电子的基础,是必须会的。关系到后面的硬件基础。当然大学期间学的太皮毛。现在的产品一般都有推荐电路,所以可以少学点,但是总会出现问题,还是得回归到课本中去看为啥。学习里面的知识很重要。至于数字电路,现在看来不用学,用不着,别人都做好了,还做啥,会用就行了。也不用了解里面咋弄的,知道输入输出就行了,里面咋弄的无所谓!
(3)电力电子,这个本科学了,研究生期间也学了。其实现在看来学习一些基本的东西就行。当时学习的时候感觉很难,现在看看用到的很少,也就几个电路。当然关键的时候还需要分析电路为啥会出问题,这个就没办法了,还是得好好的学这个东西的。
澄清概念:现在我写的差不多是全栈工程师的要求,也就是啥都能会的要求。一个人能挑起一个项目,从头到尾的那种。
其实前面说的是硬件基础,也就是想做硬件,前面的几个必须学好。当然对于我这种半吊子的选手,学的不扎实,出现的问题多的很,现在也就将就着搞了。
下面是研究生期间的基础(感觉对现在有用的):
(1)PLC,西门子的s300。我仅仅推荐300,至于其他的就算了。非常容易上手,硬件西门子做的非常好,怎么搞都不会搞坏的那种。这个对于刚学完硬件的小伙伴非常友好,也就是电路控制。有了上面的基础,加上一些流程,就可以慢慢的编写出需要的程序了。
这里要插一个概念,非常重要,也就是学习软件(联系硬件的软件)问题。有的小伙伴感觉会就是会用软件,现在感觉这个概念是很不对的(当然有人不同意这个观点),我仅仅是个人感觉。
学习软件是一个必须的东西,但是软件这个东西仅仅是个工具。对于工程师来说,软件仅仅是个工具。举几个例子:
有人说我会word,word是个软件,能写文章才可能成为作家,仅仅会word是基础。
有人说我会matlab,matlab是个软件,能在里面搭建出想要的电路才能去仿真,仅仅是做硬件的第一步,知道你用的电路可能是对的。
说回来,PLC的编程软件SIMATIC,会了行不行,可以,这个是必须的,但是这是个软件,需要流程去编写里面的东西才是最重要的。编着编着运行起来,知道里面出现的问题,然后去解决出现的问题,才是学习这个东西最终的精华所在。然后再接触其他PLC的时候,才能举一反三,才能去流畅的的搞下面的技术。
(2)matlab和psim,这俩都是电路仿真软件,差不多。这个和上面说的一样,仅仅是个工具。想实现什么东西才是最重要的。就像我的世界的游戏,都是小方块,大神在里面做了个计算机,还能加载系统的那种,嫉妒羡慕恨,没办法!仅仅会玩是玩,但是知道自己在里面干啥才能大神!当然一般的为了完成任务,仅仅是基础性的就行。
(3)DSP,这个和PLC是差不多的东西,都是实现的硬件。当然具体的肯定差别很大。PLC和硬件联系很紧密,从老式电工基础转过来很容易。DSP对于他们来说不太容易。当然最终的目的都是控制。DSP是输入模拟信号,输出PWM或者01信号,PLC也差不多,输入模拟信号,输出01信号。最后说DSP的软件,什么IAR,什么CCS,和matlab差不多,都是工具,需要会用,然后慢慢的知道里面的问题,解决问题,留下来的就是你自己的东西了。
前面说的就是现在感觉整个学科的基础了。会电路和模拟电路,就能知道想要的功能,会软件就知道怎么去搭建电路,就知道怎么去仿真,就这道怎么去调试参数,会PLC和DSP就知道怎么去编程,怎么去控制。
其实到这里大部分的工作和技术都能实现了。举个例子:
变流器:
(1)主电路,无论两电平还是三电平。输入接口-共模电感-差模电感-变压器-断路器-IGBT电路-稳压电容-输出接口。这里面差不多都是电路和电力电子里面的东西。当然怎么选择参数,怎么放在柜子里,这些都需要慢慢去学习和摸索的东西。当然做之前需要仿真,去看看到底选的参数怎么样。
(2)控制电路,传感器-变换电路-DSP(控制芯片)-驱动电路-控制电路-输出电路。这里面差不多也都是上面说的模拟电路和控制的东西。
前面写写大学期间一些基础的东西,之后的东西会在以后的文章中慢慢写。
感想
(1)很多小伙伴想学习开发板(无论是单片机的还是嵌入式LINUX的),可是拿到开发板却不知道自己干啥。其实按照现在的自己的经历,肯定是先点灯。当然while(1)里面和中断里面都要点灯。能成功的点亮等,你的程序就已经完成90%了。然后是串口定时发送和接收,can定时发送和接收。完成这些程序差不多完成95%了。剩下的就是自己的流程程序了,这部分就是你需要实现的功能,流程都不一样,就看你的想法流程和计算机的流程一样不一样了,这部分是时间问题,都可以完成。
(2)有的小伙伴想做硬件,说自己会仿真什么的,会PCB什么的。这部分需要的是实现功能,然后去找对应电路,然后采取画图和仿真之类的。仿真和软件仅仅是个工具,知道自己要做什么,需要什么样的电路才是最重要的。
写在最后
之后的一篇文章会继续介绍电力电子工程师硬件和软件需要的知识,当然也会介绍转型的问题,也就是从硬件工程师到软件工程师再到嵌入式工程师(基于自己现在的经历)。我也仅仅是一只脚踏进去而已,离全栈工程师应该还有很远很远的距离。
想更加了解的小伙伴可以加微信公众号,具体的公众号图放不上来,小伙伴可以添加前面文章里的公众号图。
相关文章:

楔子-写在之前
最近一年都在忙着一个项目,并且需要学习另一个领域的知识,从单片机过渡到了LINUX嵌入式,倒静不下心去写点东西。看了下之前写的东西,感觉已经过去了很久很久。现在项目快忙完了,准备把最近的心得给大家分享下。 前言 …...

第 5 章 数组和广义表(稀疏矩阵的三元组顺序表存储实现)
1. 背景说明 为了节省存储空间,可以对这类矩阵进行压缩存储。所谓压缩存储是指:为多个值相同的元只分配一个存储空间,对零元不分配空间。 2. 示例代码 1)status.h /* DataStructure 预定义常量和类型头文件 */ #include <string.h>#i…...

【RabbitMQ 实战】11 队列的结构和惰性队列
一、 队列的结构 队列的组成: 队列由 rabbit_amgqueue_process 和 backing_queue两部分组成。rabbit_amqqueue_process负责协议相关的消息处理,即接收生产者发布的消息、向消费者交付消息、处理消息的确认 (包括生产端的 confirm 和消费端的 ack) 等。…...

Python3-批量重命名指定目录中的一组文件,更改其扩展名
Python3-批量重命名指定目录中的一组文件,更改其扩展名 1.argparse模块2.vars内置函数3.os.listdir(path)4.os.path.splitext(filepath)5.os.path.join6.os.rename7.os.path.isfile8.批量重命名指定目录中的一组文件,更改其扩展名 1.argparse模块 argpa…...

渗透测试KAILI系统的安装环境(第八课)
KAILI系统的安装环境(第八课) Kaili是一款基于PHP7的高性能微服务框架,其核心思想是面向服务的架构(SOA),支持http、websocket、tcp等多种通信协议,同时还提供了RPC、Service Mesh、OAuth2等功能。Kaili框架非常适合构…...

如何正确方便的理解双指针?力扣102 (二叉树的层序遍历)
双指针,顾名思义就是指针的指针。 在此之前我们需要先理解单指针 (简称为指针)。指针很简单,直接上例子:例:现有两个变量,a10,b20. 要求:交换他们的值,输出的结果应为a20…...

Vue或uniapp引入自定义字体
一、为什么引入字体 对于大部分APP或网站而言,字体是很重要的一部分。在前端开发中,选用合适的字体往往会极大地提升网站的视觉体验。然而,网页中默认字体的种类和风格有限,且在不同的设备、浏览器上渲染效果不尽相同。因此&…...

力扣:LCR 122. 路径加密 题目:剑指Offer 05.替换空格(c++)
本文章代码以c为例! 力扣:LCR 122. 路径加密 题目: 代码: class Solution { public:string pathEncryption(string path) {for(int i0;i<path.size();i){if(path[i].){path[i] ;}}return path;} }; 难度升级(原…...

cJson堆内存释放问题
cJSON_Delete(),是用来释放json对象的,释放父JSON对象后,子JSON对象也会被释放。 CJSON_free(),是用来释放其他对象的。 int main(void) {cJSON* cjson_test NULL;cJSON* cjson_address NULL;cJSON* cjson_skill NULL;char* s…...

论文阅读/写作扫盲
第一节:期刊科普 JCR分区和中科院分区是用于对期刊进行分类和评估的两种常见方法。它们的存在是为了帮助学术界和研究人员更好地了解期刊的学术质量、影响力和地位。 JCR分区(Journal Citation Reports):JCR分区是由Clarivate Ana…...

一文拿捏对象内存布局及JMM(JAVA内存模型)
1 JMM(Java Memory Model) 1 概述 Java内存模型(Java Memory Model简称JMM)是一种抽象的概念,并不真实存在,它描述的一组规则或者规范。通过这些规则、规范定义了程序中各个变量的访问方式。jvm运行的程序的实体是线程,而每个线程运行时&am…...

Android组件通信——ActivityGroup(二十五)
1. ActivityGroup 1.1 知识点 (1)了解ActivityGroup的作用; (2)使用ActivityGroup进行复杂标签菜单的实现; (3)使用PopupWindow组件实现弹出菜单组件开发; 1.2 具体…...

js的继承的方式
1.对象冒充继承 使用 bind,call,apply 解决构造函数属性的继承 缺点:不能继承原型上的属性和方法 //-------------父类-------------function Person(name, age, sex) {this.name name;this.age age;this.sex sex;}Person.prototype.run function () {console.log(我${this…...

聊聊HttpClient的重试机制
序 本文主要研究一下HttpClient的重试机制 HttpRequestRetryHandler org/apache/http/client/HttpRequestRetryHandler.java public interface HttpRequestRetryHandler {/*** Determines if a method should be retried after an IOException* occurs during execution.**…...

北邮22级信通院数电:Verilog-FPGA(4)第三周实验:按键消抖、呼吸灯、流水灯 操作流程注意事项
北邮22信通一枚~ 跟随课程进度更新北邮信通院数字系统设计的笔记、代码和文章 持续关注作者 迎接数电实验学习~ 获取更多文章,请访问专栏: 北邮22级信通院数电实验_青山如墨雨如画的博客-CSDN博客 目录 一.注意事项 二.按键消抖 2.1 LED_deboun…...

Ghidra101再入门(上?)-Ghidra架构介绍
Ghidra101再入门(上?)-Ghidra架构介绍 最近有群友问我,说:“用了很多年的IDA,最近想看看Ghidra,这应该怎么进行入门?“这可难到我了。。 我发现,市面上虽然介绍Ghidra怎么用的文章和书籍很多&…...

Vue3路由引入报错解决:无法找到模块“xxx.vue”的声明文件 xxx隐式拥有 “any“ 类型。
这类情况应该遇见过吧,这是因为 TypeScript只能理解 .ts 文件,无法理解 .vue 文件。 解决方法:在项目的根目录或者src文件夹下创建一个后辍为 文件名.d.ts 的文件,并写入一下内容: declare module *.vue {import { …...

基于若依ruoyi-nbcio支持flowable流程分类里增加流程应用类型
更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 主要考虑到流程分很多种,普通的是OA流程,还有自定义业务流程,钉钉流程等…...

JS之同步异步promise、async、await
promise异步操作 Promise是异步编程的一种解决方案 JavaScript异步与同步解析 学习promise前我们先来了解下什么是异步? 基本概念: 消息队列中的任务分为宏任务与微任务;调用栈也可以称为主线程 首先我们要知道js是单线程语言,也就是说…...

【OpenCV • c++】自定义直方图 | 灰度直方图均衡 | 彩色直方图均衡
文章目录 一、什么是直方图二、自定义直方图三、灰度直方图均衡四、彩色直方图均衡一、什么是直方图 直方图广泛应用于很多计算机视觉处理当中。通过标记帧与帧之间显著的边缘和颜色的变化,可以检测视频中的场景变化。在每个兴趣点设置一个有相似特征的直方图所构成的“标签”…...

el-tree目录和el-table实现搜索定位高亮方法
需求:el-tree目录实现搜索查询el-table表格项,双击表格项根据yiZhuMLID||muLuID定位el-tree目录,并且高亮展示在可视化区域内,再重新根据el-tree目录的yiZhuMLID搜索刷新el-table表格,定位且高亮展示相对应的yiZhuMLID…...

linux常用指令
基础命令 cd:用于切换目录。例如,要从当前目录切换到/home/user目录,可以使用命令“cd /home/user”。ls:用于列出目录内容。例如,要列出当前目录的内容,可以使用命令“ls”。mkdir:用于创建目…...

C语言,指针的一些运算
若创建一个数组:int arr[10] 0; 用指针变量来储存数组首元素的地址:int* p arr,这里arr是数组名,表示首元素地址。 若p p 1或者p之后p本来指向数组首元素地址,就变成了指向第二个元素的地址,p n即指向第n 1个地…...

iPhone 如何强制重启
参考iPhone的官方使用手册 传送门 尤其当 iPhone 未响应,也无法将其关机再开机,此方法最有效: 按住调高音量按钮,然后快速松开。按住调低音量按钮,然后快速松开。按住侧边按钮。当 Apple 标志出现时,松开侧…...

数据结构--单链表操作
1.单链表的创建(带头结点) #include<stdlib.h> #define ElemType int typedef struct {//定义一个结点ElemType data;struct STU* next; }STU,*LinkList; bool InitList(LinkList& L) {L (STU*)malloc(sizeof(STU));//创建头结点if (L NUL…...

AlmaLinux (兼容centos)安装Geant4与ROOT
AlmaLinux 介绍 AlmaLinux OS 是一个开源、社区驱动的 Linux 操作系统,它填补了因 CentOS 稳定版本停止维护而留下的空白,同时更加强大。 安装 AlmaLinux 这个我用的是 windows 子系统进行安装 首先打开微软商店,然后搜索AlmaLinux&#…...

FPGA面试题(2)
一.同步复位和异步复位 同步复位:当clk有效时,复位才有效。优点:有利于时序分析,防止毛刺现象出现。缺点:复位信号必须大于时钟周期,大部分逻辑器件中D触发器都只有异步复位端口,需要在寄存器数…...

【C++ Primer Plus学习记录】指针——使用new来创建动态数组
目录 1.使用new创建动态数组 2.使用动态数组(如何使用指针访问数组元素) 如果程序只需要一个值,则可能会声明一个简单变量,因为对于管理一个小型数据对象来说,这样做比使用new和指针更简单。通常,对于大型…...

移动app广告变现,对接广告联盟还是选择第三方聚合广告平台?
作为互联网广告的载体,APP天生就比线下传统广告位更具优势,不受地域限制可以辐射到地球上的每一个角落,可以让广告获得更广的覆盖面。通过丰富的广告形式,精准的目标用户画像,也可以更好地实现品牌广告或效果广告的投放…...

ARM 按键控制 LED灯,蜂鸣器,风扇
main.c: #include "uart.h" #include "key_it.h" int main() {all_led_init();uart4_init();//串口初始化//中断初始化key_it_config();key3_it_config();buzzer_init();fan_init();while(1){//保证主程序不结束}return 0; }src/key_it.c: #include"…...