基于Spring Boot的电子健康档案管理系统设计与实现全攻略
我一直觉得电子健康档案管理系统是课程设计和毕业设计里被低估的一类题目。很多同学一听到管理系统就想到增删改查觉得太普通、没有技术含量但实际上健康档案系统恰恰是业务复杂度适中的好选题——它比学生管理、图书管理多了一层医疗领域的业务深度又不像电商系统那样需要处理订单超卖、支付回调这些高并发场景。对大多数没参加过大型项目的同学来说用它来做课设或毕设既能说清楚业务逻辑又能展示完整的技术栈性价比相当高。这次我把自己做这个基于Spring Boot的电子健康档案管理系统的完整过程梳理一遍从选题分析、技术选型、数据库设计到核心功能实现、踩坑记录和答辩准备尽量把一个项目的思考链路讲透。如果你正在犹豫选题或者已经选了健康档案方向但不知道从哪下手这篇文章应该能帮你省不少时间。1. 做健康档案系统前先想明白这几个关键问题很多人拿到这类题目第一反应就是打开代码生成器把用户表、角色表、菜单表一通建然后开始堆页面。这个思路不能说错但它会让你在答辩时陷入被动——因为你自己都没想清楚这套系统到底在解决什么问题评委一问深一点就露馅。1.1 电子健康档案到底电子在哪里先理解业务本质。传统纸质健康档案的核心问题不是存档而是查阅和联动。患者转诊时纸质档案要复印、快递不同医院之间信息不通检查结果不能互认慢性病患者的历次随访记录散落在不同科室医生很难快速看到一个完整的时间线。电子健康档案管理系统的本质就是把这一堆分散的数据整合成以患者为中心的结构化记录并且通过权限控制让不同角色看到不同粒度的信息。这就决定了它的核心模块不是档案管理这个CRUD而是档案的连续性——主档案 历次就诊/体检/用药记录可以按时间串联权限的精细化——患者本人、医生、管理员看的数据范围不一样数据的隐私性——健康信息属于敏感数据不能像普通成绩管理一样随便查询想明白这三点你就能在需求分析阶段写出一份有说服力的文档而不是那种千人一面的本系统实现了登录、注册、增删改查。1.2 功能范围怎么收敛才不会被导师质疑课程设计和毕业设计最容易犯的毛病是功能贪多。今天加一个在线问诊明天加一个报告解读系统越做越大最后没有一块是完整能用的。我的建议是把功能边界控制在档案的形成—查看—更新—随访这一条主线上。我当时最终敲定的模块是这四个用户管理患者、医生、管理员三类角色注册登录、个人信息维护健康档案管理主档案基础信息、既往史、过敏史、家族史 档案更新记录健康记录管理就诊记录、体检记录、用药记录、慢病随访记录数据统计与提醒慢病患者的随访计划提醒以及档案数据的基础统计报表你可以根据自己的时间再调整比如把随访提醒换成疫苗提醒或者加一个小范围的健康指标趋势图但不要超过健康档案这个主域否则题目就偏了。1.3 三种角色的权限边界需要我提前画清楚权限设计是健康档案系统最容易出彩、也最容易翻车的地方。我当时用一个非常朴素的逻辑把角色和权限理清了直接写进了设计文档角色能做什么明确不能做什么患者注册、查看自己的档案、维护部分基础信息不能看别人的档案医生查看授权患者档案、新增就诊/体检/用药记录、发起随访不能修改患者基础身份信息管理员用户管理、角色分配、数据统计不能直接改医疗记录内容这里有一个细节要注意医生查看患者档案要做到按需授权。比如某位医生要给某个患者开慢病随访他需要先把患者添加为我的患者才能查看和记录。这个逻辑可以做成一个建档授权表也可以简单用患者表里加一个字段绑定医生ID。我当时用的是后者代码好写答辩也容易讲清楚但如果你追求复杂度可以做前者。2. 技术选型不只是Spring Boot的事配套方案同样关键标题里写了基于Spring Boot但架子搭起来不止Spring Boot一件事。我见过有些同学的代码一个Controller里几百行业务逻辑Service层是摆设连事务都不加这种代码拿去答辩基本就是送人头。技术选型的核心不是追求新潮而是让每一层的选型都能为你的核心业务服务。2.1 主框架Spring Boot版本怎么选我当时用的是Spring Boot 2.7.x没有再往上追3.x。原因很简单这个项目的核心是稳和资料全2.x系列的教程、博客、问题排查方案都非常成熟遇到报错一搜基本有解。3.x虽然新但如果你对底层不太熟遇到兼容性问题反而会卡住。版本选定之后配套的组件也固定下来持久层MyBatis-Plus 或者 Spring Data JPA二选一数据库MySQL 5.7 / 8.0 都行注意字符集统一为 utf8mb4权限认证Spring Security JWT 或者 Sa-Token接口文档Knife4j方便答辩时直接演示接口结构前端Vue 2 Element UI 或 Vue 3 Element Plus关于持久层我多说几句。MyBatis-Plus 上手快单表操作基本不用写SQL复杂查询用注解或XML都方便适合大多数同学。JPA 更抽象CRUD 很舒服但遇到多表联查时调试成本稍高。如果你平时SQL基础一般我的建议是直接用 MyBatis-Plus排查问题更直观。2.2 认证授权JWT和Sa-Token怎么选健康档案系统的权限颗粒度比较细所以认证授权方案不能随便用Session糊弄。我当时对比了两个方案Spring Security JWT功能全社区讨论最多但配置复杂新手容易在过滤器链上卡住Sa-TokenAPI简单登录、鉴权、踢人下线的代码量少很多而且有中文文档对课设来说很友好如果让我重新选一次我会直接用 Sa-Token代码量至少省一半。不过如果你已经在用Spring Security的项目模板上改了也不必推翻重来关键是你要能说清楚它的过滤器执行流程。2.3 前端方案什么时候该用前后端分离课程设计有两种做法一种是传统的Thymeleaf模板渲染一种是用Vue做前后端分离。前者写起来快、后端一套全搞定但代码耦合度高答辩展示时页面样式也偏简陋后者工程结构更合理也符合公司里的主流开发方式。我个人的建议是如果你有至少两周的富余时间果断用前后端分离。不要担心跨域问题后端加一个CORS配置类就行了。答辩时前端Vue 后端Spring Boot完全分离通过RESTful接口通信这种描述比使用模板引擎渲染听起来要有说服力得多。2.4 环境准备阶段的三个容易翻车的细节MySQL字符集创建数据库时一定要指定DEFAULT CHARACTER SET utf8mb4不然存患者姓名遇到生僻字就乱码统一返回格式建议定义一个ResultT类统一返回 code、message、data不要有的接口返回对象、有的返回Map前端会疯接口版本前缀接口路径统一加/api前缀后续无论前端调试还是后期扩展都方便很多这一段花不了多少时间但能让你后面的联调顺畅不少。3. 数据库设计健康档案系统的核心不在表多而在关系准确数据库设计是整个项目里最值得下功夫的部分。评审老师看你的设计文档第一眼就会去翻数据库ER图。如果表与表之间关系混乱、字段命名随意哪怕代码写得再好印象分也会大打折扣。3.1 核心表结构与设计理由我整理一下当时设计出来的关键表你可以作为参考表名核心字段作用说明用户表 userid, username, password, phone, role三种角色共用一张表用 role 字段区分患者信息表 patientid, user_id, name, gender, birthday, blood_type, id_card关联用户表存患者特征信息健康档案主表 health_recordid, patient_id, height, weight, past_history, allergy_history, family_history一个患者对应一条主档案就诊记录表 visit_recordid, patient_id, doctor_id, visit_date, diagnosis, symptom, hospital历次就诊记录按时间累积体检记录表 physical_examid, patient_id, exam_date, blood_pressure, blood_sugar, total_cholesterol历次体检数据用药记录表 medication_recordid, patient_id, doctor_id, drug_name, dosage, start_date, end_date用药历史慢病随访记录表 follow_up_recordid, patient_id, doctor_id, follow_up_date, next_date, status, note随访计划和执行结果档案更新日志表 record_logid, patient_id, update_user_id, update_content, update_time记录档案变更留痕我重点解释几个设计决策用户表不拆分角色表。有些设计会把患者、医生、管理员分成三张表在业务上看着清晰但实际开发时登录逻辑要查三次表非常别扭。用一个 user 表加 role 字段配合 Sa-Token 的权限校验简单直接。健康档案主表和患者信息分离。这部分是很多初稿最常见的错误——把身高、体重、既往史全塞进 patient 表导致信息粒度和业务逻辑混淆。身高体重血压这些指标会随时间变化它们属于健康档案而不属于患者身份信息所以单独放一张主档案表更合理。患者身份信息是静态的健康档案数据是动态的分开之后档案的历史溯源和权限控制都好做。就诊、体检、用药都是离散的流水记录。这些表之间没有外键强关联统一通过 patient_id 和 time 字段在业务层串联。这个设计贴近真实的电子健康档案系统——数据是持续追加的而不是互相关联的复杂网状结构对新手来说写起来也舒服。3.2 为什么这些字段必须有冗余和校验数据库设计里有一个原则叫适度冗余在健康档案系统里特别适用。年龄可以由生日计算但需要冗余存储。比如体检报告里通常要显示患者在检查当天的年龄。你可以每次查出来在Java里算但更好的做法是在体检记录表里冗余一个 age 字段录入时直接算好存进去查询时少一层转换对报表统计也友好。诊断结论和药品名称用文本存不用字典表。课设阶段做数据字典是给自己挖坑查询统计复杂不说录入也不方便。用文本字段反而更贴近门诊医生的实际操作习惯。身高等指标建议加数值范围校验。数据库层面加 CHECK 约束不一定所有版本都支持但前端和Service层必须校验——身高2000厘米这种数据一旦混进去后面的趋势图和数据统计就直接废了。3.3 档案变更留痕用一张日志表解决谁改过的审计问题电子健康档案和普通管理系统的最大区别就是它的数据具有医疗法律意义。谁在什么时间改过哪条数据必须有日志可查。这个需求用一个record_log表就能实现不用上复杂的中间件。我当时的实现思路是在档案主表相关的更新接口里统一走一个updateRecordLog()方法把修改前后的字段快照、操作人、操作时间写入日志表。因为项目是课设级别不需要做到字段级diff只需要记录谁在什么时候改了哪个患者的档案就足够证明你的系统考虑了医疗数据的合规需求。这个设计在答辩时是加分项一定要在演示时主动提及。4. 核心功能实现每一个模块都要能讲出怎么做和为什么这样做到了编码阶段很多人开始进入复制粘贴模式。我建议你哪怕用了网上找的代码片段也要自己手写一遍核心功能尤其是登录认证、档案主流程这两个部分——因为答辩必问。4.1 登录认证与权限校验的实现链路登录逻辑本身不难难在登录之后每一层请求的认证与鉴权。用 Sa-Token 实现时整个链路是这样的用户提交用户名密码后端用 BCrypt 校验密码这一点很关键——数据库中存的必须是加密后的密码不是明文校验通过后调用StpUtil.login(userId)签发令牌前端把令牌存入请求头后续每次请求携带后端拦截器统一校验令牌然后根据角色和请求路径做权限校验这里我要强调一点密码加密不能省。有些同学为了省事直接存明文密码被问到时只能说本地测试用场面一度很尴尬。用 Spring Security 自带的BCryptPasswordEncoder把密码加密后写入数据库校验时调用它的matches方法十来行代码就能解决问题。核心代码如下// 密码加密存储 String encodedPwd new BCryptPasswordEncoder().encode(rawPassword); // 登录时校验密码 boolean valid new BCryptPasswordEncoder().matches(rawPassword, user.getPassword()); if (!valid) { throw new BusinessException(用户名或密码错误); } StpUtil.login(user.getId());4.2 患者建档与档案更新把改档案当成追加历史来设计刚入门的人做档案更新通常直接update一条记录把旧数据覆盖掉。这在健康档案系统里是禁忌——如果医生把患者的身高从170改成175改完之后旧值就找不回来了后续统计和审计都会出问题。我当时采用的是**主数据更新 日志留痕的双写方案**用 UPDATE 更新主档案表当前值用 INSERT 向record_log表写入一条变更记录记录修改字段、旧值、新值、操作人这样设计的好处是患者档案永远展示最新值而历史变更全都能追溯。而且代码实现也不复杂一个 Service 方法里同时完成两件事加个Transactional保证事务一致即可。Transactional public Result updateHealthRecord(HealthRecordUpdateDTO dto, Long operatorId) { HealthRecord record healthRecordMapper.selectById(dto.getRecordId()); // 对比字段旧值 if (!record.getHeight().equals(dto.getHeight())) { recordLogService.log(dto.getRecordId(), operatorId, 身高, record.getHeight(), dto.getHeight()); } BeanUtils.copyProperties(dto, record); healthRecordMapper.updateById(record); return Result.success(); }4.3 医生端我的患者列表与档案时间线医生登录后第一件事应该是看到自己的患者列表点击进去能查看患者的完整健康数据时间线。这段功能做起来不复杂但它是整个系统的业务枢纽。我的思路是在patient表上增加一个primary_doctor_id字段患者建档时绑定一位医生。医生的我的患者查询本质上就是带条件的分页查询条件只有一个primary_doctor_id 当前登录医生ID。在档案详情页时间线的实现方式是把就诊、体检、用药、随访四类记录分别查询然后在 Service 层合并排序按时间倒序返回给前端。这个合并逻辑在 Java 里写会比较直观用数据库 UNION 也可以但我建议做在 Service 层后续扩展其他记录类型时改动更小。4.4 随访提醒为什么我建议用查询时判断而不是定时任务慢病随访提醒是这个系统里比较有亮点的功能但实现起来要注意方式。新手容易想到用定时任务比如 Quartz每天跑一次查出该提醒的患者然后推送通知。这个方案不是不行但涉及的消息推送、任务调度都是课设里比较吃时间的功能。我用的方案是**按需判断 主动查询**随访记录表里维护一个next_date字段患者或医生打开随访页面时系统自动检索next_date距今不超过7天的记录在页面上展示待随访列表。这个方案的优点是零额外依赖逻辑一目了然而且答辩时能讲清楚提醒是被动触发的数据始终以数据库状态为准。如果你确实想用定时任务展示技术栈那可以在系统启动时用一个简单的Scheduled注解做每日检查把到期记录写入一张提醒表。但优先级不高属于锦上添花的功能。4.5 健康指标趋势图技术含量不高但展示效果好健康档案系统的演示环节如果只打开一堆表格评委看三分钟就疲劳了。我建议加一个指标趋势图比如展示患者最近几次体检的血压变化曲线。后端只需要提供一个接口根据患者ID查询最近N次体检记录按日期排序后返回血压、血糖等指标。前端用 ECharts 画折线图几十行代码就能出来。这个功能不需要复杂算法但演示时视觉效果很好能显著提升答辩的观感。5. 防御性设计与踩坑记录把没想到变成加分项开发过程中踩坑不可怕可怕的是踩了坑没记录答辩时被问这个异常你是怎么处理的只能愣住。我在这个项目里遇到的问题主要集中在几个方面这里详细说一下排查思路。5.1 临床数据精度与日期处理最不起眼却最容易出Bug健康档案里的数据很多都有单位和精度的概念。血压本就是一个收缩压/舒张压的复合值不能简单用一个blood_pressure字段存血糖有 mmol/L 和 mg/dL 两种单位你得在系统里统一成一种并标注。这些细节在数据库设计时就要定下来否则后面改表特别麻烦。日期处理上最大的坑是时区问题。我当时把日期统一用LocalDate和LocalDateTime传递给前端时配合注解格式化成yyyy-MM-dd和yyyy-MM-dd HH:mm:ss避免出现前端收到一串时间戳还得自己转的尴尬。如果你用了Date类型指定好时区也很关键不然服务器部署后时间跟本地差8小时排查起来特别头疼。5.2 逻辑删除与物理删除的选择题健康档案能不能直接删除从业务上讲医疗数据不允许随便删从实现上讲你也不能让患者自己点个删除就把就诊记录永远抹掉。我当时的方案是所有医疗记录采用逻辑删除表加deleted字段默认0删除时改为1查询时统一加deleted 0条件。普通用户和管理员在界面上执行的删除本质上是标记删除。如果你觉得所有表都做逻辑删除麻烦至少保证就诊、体检、用药、随访这四张核心流水表是逻辑删除。这个设计要主动写进开发文档答辩时提到遵循医疗数据的不可篡改原则这句话档次完全不一样。5.3 权限绕过用Postman模拟越权请求我犯过一个特别低级的错误后端接口只校验了是否登录没有细粒度校验操作的数据是否属于当前用户。这会导致一个严重的越权问题——医生登录后传一个别人的患者ID就能看到对方档案。修复方案是在Service层加一层数据归属校验Patient patient patientMapper.selectById(patientId); if (!patient.getPrimaryDoctorId().equals(currentUserId)) { throw new BusinessException(无权访问该患者档案); }你可以在联调阶段用Postman模拟一下比如A医生登录后拿B医生的患者ID请求查看详情看是不是被正确拦截了。这个自测过程记录到项目文档里也是很好的实践证据。5.4 前端联调里的两个典型坑跨域问题虽然配一个CORS类就能解决但要注意前端请求带了 JWT后端需要允许Authorization请求头否则前端会报预检请求失败registry.addMapping(/api/**) .allowedOriginPatterns(*) .allowedMethods(GET, POST, PUT, DELETE, OPTIONS) .allowedHeaders(*);还有一个是Long型主键精度丢失的问题。Java的Long在JavaScript里精度会丢超过16位后尾数变0导致前端拿id去查详情时永远匹配不上。解决办法给主键字段加JsonFormat或统一在后端配置Long序列化成字符串。这个坑几乎每个人都会踩提前预防能省一晚上。5.5 慢查询健康档案系统也需要一点性能意识健康档案系统的数据量不会很大所以性能优化做得很重意义不大但至少要有这个意识。我当时遇到过一个场景医生查询我的患者列表因为后面关联了主档案表第一次写SQL时直接在 XML 里用了多条嵌套查询页面加载明显卡顿。分析之后发现问题在关联查询条件下用了函数比如DATE_FORMAT导致索引失效。解决方法是把日期格式化的逻辑挪到Java层SQL里只做范围过滤查询速度立刻上来。这个案例技术含量不高但答辩时讲出来说明你有性能分析和优化的思考过程比单纯的系统流畅运行有说服力。6. 答辩展示同样的系统怎样讲才能体现工作量和思考最后说答辩。很多同学直到做演示PPT时才发现自己讲不出这个系统有什么技术难点。为了避免这种情况整个开发过程里你要刻意地去记录三类素材问题、决策、方案。答辩开场时建议直接用一句话定义选题本系统面向基层医疗机构以患者个人健康数据的持续记录为核心构建了一个覆盖就诊、体检、用药、随访四个维度的电子健康档案管理平台重点解决档案数据分散、更新无留痕、随访无提醒三类问题。这句话里面你的功能模块、数据特征、业务价值全包进去了。接下来再去讲架构、讲表设计、讲核心流程脉络就非常清晰。演示的脚本也要提前设计好我建议按以下顺序走一遍注册一个患者账号演示登录管理员给医生分配角色权限医生建档、绑定患者录入一条就诊记录、一条体检记录、一条随访记录查看档案时间线和指标趋势图打开用户表、档案表、日志表展示数据一致性演示一次越权拦截例如医生A访问医生B的患者档案这个流程把功能、数据、安全都覆盖到了总共不到10分钟但每个环节都踩在得分点上。关于万字文档的写作很多同学是后补的我的建议是边开发边写。文档结构可以参考需求分析一章放角色用例图和功能用例表设计一章放架构图、数据库ER图、核心表结构实现一章每一个功能模块放一两段核心代码并配解释测试一章放功能测试表和自己踩坑修复的过程。这样一本文档下来既饱满又真实后补也补不出来这种效果。最后说一点个人体会。这类项目做完之后最大的收获往往不是我会用Spring Boot了而是你亲手把一个模糊的题目从需求梳理到数据库设计再到功能落地最终完整地交付了出来。这个过程里锻炼的拆解问题、权衡取舍的能力比任何一个具体的技术知识点都更值钱也会让你在接下来的面试或实际工作中更有底气。

相关新闻

手把手教你用Ollama+FastGPT+Deepseek+TaoToken搭建个人专属AI知识库

手把手教你用Ollama+FastGPT+Deepseek+TaoToken搭建个人专属AI知识库

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 1:19:16 阅读更多 →
STM32上电启动流程详解:从复位向量到C运行时的完整链条

STM32上电启动流程详解:从复位向量到C运行时的完整链条

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 1:19:16 阅读更多 →
玩转 NVIDIA 免费大模型:OpenClaw 配置实战与 TaoToken 统一接入

玩转 NVIDIA 免费大模型:OpenClaw 配置实战与 TaoToken 统一接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 1:19:16 阅读更多 →

最新新闻

开源代码审查新范式:CLI驱动的Git Diff+LLM协作框架

开源代码审查新范式:CLI驱动的Git Diff+LLM协作框架

1. 这不是又一个“AI代码审查工具”,而是一套可落地的开源协作新范式“open-code-review”这四个字乍看像某个GitHub仓库名,但背后藏着的是当前工程团队在AI时代最真实、最迫切的一次工作流重构。它既不是单纯调用某个大模型API的玩具脚本,也…

2026/10/19 3:38:14 阅读更多 →
开源代码审查CLI工具:基于Git与本地LLM的自动化Code Review实践

开源代码审查CLI工具:基于Git与本地LLM的自动化Code Review实践

1. 项目概述:一个真正能落地的开源代码审查 CLI 工具“open-code-review”这个名字乍一听像某个 GitHub 上刚起步的玩具项目,但如果你最近在团队里反复被问“能不能自动扫出这段 Go 代码里潜在的空指针风险?”、“这个 Python 提交有没有漏掉…

2026/10/19 3:38:14 阅读更多 →
DGX Spark部署ComfyUI完整指南:环境配置、GPU加速与模型优化

DGX Spark部署ComfyUI完整指南:环境配置、GPU加速与模型优化

最近拿到一台 DGX Spark,第一件事就是装 ComfyUI。原本以为这种整合度很高的 AI 小工作站,装开源工具时应该很省事,实际折腾下来发现,容易走弯路的地方不在硬件跑不起来,而在软件栈没对齐。这篇记录我把 ComfyUI 从空机…

2026/10/19 3:38:14 阅读更多 →
无数据知识蒸馏新突破:对比模型反演提升合成样本多样性

无数据知识蒸馏新突破:对比模型反演提升合成样本多样性

1. 无数据蒸馏场景下的核心矛盾拆解1.1 为什么“没有数据”还能做知识蒸馏知识蒸馏这个概念,做过模型压缩的人都不陌生:拿一个已经训练好的大模型(教师模型)去教一个小模型(学生模型),让小模型在…

2026/10/19 3:38:14 阅读更多 →
开源可审计的 CLI 代码审查工作流:LLM+Git 深度集成实践

开源可审计的 CLI 代码审查工作流:LLM+Git 深度集成实践

1. 项目概述:这不是一个“工具”,而是一套可落地的开源代码审查工作流open-code-review 这个名字乍看像某个具体软件,但实际它代表的是一种正在快速演进的工程实践范式——用开源、透明、可审计的方式,把大语言模型(LL…

2026/10/19 3:38:14 阅读更多 →
轻量级本地化代码审查工具:CLI+Git Hook驱动的LLM协作者

轻量级本地化代码审查工具:CLI+Git Hook驱动的LLM协作者

1. 项目概述:这不是又一个“AI写代码”玩具,而是一套嵌入开发流程的轻量级代码审查协作者“open-code-review”这个名字乍一听像某个开源项目仓库名,但拆开来看——open(开放)、code(代码)、rev…

2026/10/19 3:37:13 阅读更多 →

日新闻

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

频率跟踪型PWM电源设计:臭氧发生器谐振点漂移与软开关实现

简介:本资源为电源技术方向的学术研究文档,聚焦介质阻挡放电型臭氧发生器电源的频率跟踪型PWM控制策略,面向电力电子、高压电源及臭氧应用领域的科研人员与工程技术人员。针对负载呈容性、等效电容随外加电压升高而增大、谐振频率随之漂移的难…

2026/10/19 0:00:47 阅读更多 →
Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

Vibe Coding 遇上 TaoToken:把开发者思维圣殿的灵感流接入统一 Key 通道

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 0:00:47 阅读更多 →
HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

HundredCV-Chat话题建模实战教程:利用4,871个内置话题标签构建主题分析系统

【免费下载链接】HundredCV-Chat 项目地址: https://ai.gitcode.com/hf_mirrors/Jax-dan/HundredCV-Chat 点击查看 免费下载 HundredCV-Chat 是一个由 100 位青年简历数据开发而来的中文多轮对话数据集,共包含 24,750 组日常闲聊对话和 4,871 个话题标签…

2026/10/19 0:00:47 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/19 1:30:52 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/19 2:54:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 12:16:16 阅读更多 →