news 2026/9/8 12:25:44

模拟恐怖短片制作全流程:从《余声》拆解设定、音频与VHS叙事

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
模拟恐怖短片制作全流程:从《余声》拆解设定、音频与VHS叙事

怪谈类模拟恐怖作品真正让人感到不安的地方,往往不是某一次突然出现的画面,而是整套影像看上去像一份不该被公开的家庭档案。《余声》这个项目从标题里拆出来一句话:留得住、守不住、儿孙闹、童年卒。这句话既是故事核心,也是全片剪辑的节奏依据。很多人制作模拟恐怖时只做 VHS 滤镜和底噪,故事却撑不起来;也有美术能力很强的作者把画面做好了,音频和叙事时间线却非常随意。下面以《余声》为例,从设定拆解、素材目录、音频处理、视频风格、叙事节奏、发布前检查到常见问题排查,完整走一遍模拟恐怖短片的制作流程。

1. 先拆解《余声》的核心设定:四个短语等于四个叙事闸门

1.1 用媒介定义异常:声音为什么能“留下”

模拟恐怖(Analog Horror)的底层逻辑是:异常不是直接出现在屏幕上,而是通过录像带、广播、录音机、电视信号、纸质档案这些“已经存在的媒介”被记录和传递。观众害怕的不是怪物本身,而是“这种东西竟然存在于一段日常的家庭录像里”。

《余声》选择的核心媒介是“家庭录音带”和“家用摄像机录像带”。“余声”在这里指的不是音乐,而是被意外录下来的、不该存在的声音。它可以是一段亲人的临终讲话,也可以是老屋里持续多年却找不到来源的低频人声。故事的一开始,主角把这些声音数字化、备份、整理成档案,目的是“留得住”。

这一步必须做得很技术化。素材管理、转录设备、频谱分析,这些看似枯燥的环节在模拟恐怖里恰恰是恐怖感的来源。观众跟着主角一起检查音频波形,然后在低噪区边缘发现一排几乎规则的呼吸声,这才是“余声”真正进入叙事的时候。

1.2 四个短语背后的叙事规则

“留得住、守不住、儿孙闹、童年卒”可以理解成四个叙事闸门,每打开一个,信息量升级一次,主角的处境也恶化一次。

短语叙事作用对应的影像表达
留得住建立“声音能被保存”的规则数字化转录、档案分类、备份清单
守不住主角无法再控制异常扩散磁带损坏、播放器异常、家人开始分房睡
儿孙闹下一代开始复述或模仿声音孩子播放录音、半夜复述短句、画出波形
童年卒安全感彻底终止,童年结束最后一段录像被抹掉,只剩发白噪点

这种结构的好处是:每一个关键词都有明确的情节点,不需要靠旁白解释。制作时我们只需要引导观众看到“声音被留下”的完整技术流程,之后所有反转都由这条规则自然推导出来。

1.3 设定表与创作边界

在动手制作之前,建议先完成一张设定表,至少覆盖以下内容:

  • 异常声音来源:必须明确“它从哪来”,哪怕是含糊的“老宅水管里录到的”。
  • 媒介规则:异常声音能否被复制,复制后是否衰减。
  • 代际传递方式:是被后代反复播放,还是通过母语遗传。
  • 时间节点:哪一年发现、哪一年数字化的、哪一段影像缺失。
  • 结局状态:“童年卒”是隐喻还是实际事件。

需要特别强调的是,这个故事是虚构创作,不要使用真实家庭成员的照片、录音和隐私信息。模拟恐怖最吸引人的地方是“像真的”,但制作边界永远是“不能伤害真人”。

提醒:发布任何怪谈类视频时,都需要在简介或片尾注明“虚构故事创作”。真实事故、真实地名、真实姓名一旦出现,都可能造成误导和法律风险。

2. 素材目录与资产命名:后期不混乱的前提

2.1 为什么模拟恐怖项目最容易在资产上失控

模拟恐怖项目的素材量不大,但每个文件都有多重语义。一段 10 秒的家庭录像,既可能是“素材”,又可能是“剧情道具”,还可能是“最终成品中某一帧的来源”。如果不做区分,剪辑到第三幕时很容易出现“这段噪点到底是胶片损伤还是原始素材缺陷”的疑问。

更现实的问题是:音频和视频往往要经过多轮处理。原始录音、降噪后版本、加入异常声版本、最终混录版本,四个文件如果命名接近,后期非常容易拿错。这里强烈建议一开始就建立统一的资产规范。

2.2 目录结构与命名规则

下面是一套可直接复用的目录结构,适合单个短片或一个系列的第一集:

yusheng/ ├── 01_assets/ │ ├── raw_video/ # 相机原片、下载的公共素材 │ ├── raw_audio/ # 录音笔素材、人声、环境声 │ ├── graphics/ # 标题字、时间码、台标、档案封面 │ └── archive/ # 历史资料样式参考图 ├── 02_process/ │ ├── audio_edit/ # 降噪、反向、混响后的音频 │ ├── video_filter/ # 套用 VHS 滤镜后的视频 │ ├── subtitles/ # 字幕脚本与字幕文件 │ └── timelines/ # 剪辑工程文件与版本记录 ├── 03_release/ │ ├── final_video/ # 最终导出视频 │ ├── thumbnails/ # 封面图 │ └── publish_notes/ # 发布简介、标签、虚构声明 └── docs/ ├── world_bible.md # 世界观设定和人物时间线 ├── shot_list.md # 分镜表 └── prompt.md # 项目提示词或协作说明

命名规则尽量遵循“场景_内容_版本”的格式:

文件类型命名示例说明
原片livingroom_kid_v01.mov场景_内容_版本
处理音频roomtone_clean_v02.wav处理状态必须写清楚
异常音频whisper_reversed_v03.wav异常类型写在名称里
字幕act2_archive_hidden.ass幕次_用途
导出视频yusheng_ep01_final_v2.mp4项目_集数_状态_版本

2.3 素材版本与归档策略

音频和视频特效处理往往需要反复试参数。每次调整都建议导出一个新版本,而不是覆盖原文件。归档时可以单独建一个_superseded/文件夹,把不再使用的旧版本移进去,主目录只保留当前有效版本。

如果是一个系列项目,每次制作前都要更新docs/world_bible.md。这个文件里记录关键时间线、角色关系、异常声音的物理规则、哪些细节已经在前几集兑现,哪些是后续伏笔。没有这份文档,后续创作很容易在不同集之间出现规则冲突。

3. 声音层:把“余声”做成听得见的异常

3.1 先采集干净素材,再做二次加工

模拟恐怖的声音设计有一个基本原则:异常必须建立在真实环境上。如果整段声音从头到尾都是混响和失真,观众会很快疲劳。正确的做法是先录制大量“正常素材”,再在关键节点插入异常。

需要准备的录音素材至少包括:

  • 房间底噪:录制 30 秒以上的空调声、冰箱声、窗外车流声。
  • 家庭人声:正常对话、呼唤孩子、哼歌。不要用真实家人声音,可以自己配音或请朋友录制。
  • 磁带操作声:播放键按下声、磁带仓关闭声、快进声、停止声。
  • 异常候选音:倒放人声、低频呼吸、间隔规整的杂音、带混响的短促耳语。

所有这些素材都单独保存,便于后续在频谱层面处理。

3.2 用 Audacity 制作反向回放与混响

“余声”最经典的听感是:像有人在说话,但内容听不清;倒放之后,反而像一句清楚的警告。这个效果用 Audacity 就能完成。

第一步,导入人声素材,选中需要反向的片段:

效果 -> 反向

反向回放如果太明显,想让它更“像残留声”,可以继续添加混响:

效果 -> 混响 房间大小:0.5 到 0.8 预延迟:20ms 到 50ms 湿声比例:30% 到 40%

再叠加一个带通滤波,让声音听起来像从磁带里传出来的:

效果 -> 滤波曲线 低频切除:150Hz 以上保留 高频切除:8000Hz 以下保留

这样处理后,声音既保留了可辨识的语音轮廓,又不会像直接倒放那样生硬。

3.3 用 Python 做频谱层面的残响脚本

如果不想手工处理每一段,可以用 Python 脚本辅助生成“频谱倒置”或“反向混入”的音频。soundfilenumpy是常用的两个库:

pip install soundfile numpy

下面这段脚本会把一条干净人声反向,并按照 0.3 的权重混入原声音轨中。混入后听感会像“原声背后还有一层倒放的低语”,这正是《余声》音轨想要的效果:

import numpy as np import soundfile as sf def make_reverse_blend(source_path, output_path, blend=0.3): data, sr = sf.read(source_path) if data.ndim == 2: data = data.mean(axis=1) # 先转成单声道处理 reversed_data = data[::-1].copy() blend_data = data + blend * reversed_data # 限制峰值,避免爆音 max_val = np.max(np.abs(blend_data)) if max_val > 0.95: blend_data = blend_data * (0.95 / max_val) sf.write(output_path, blend_data, sr) print(f"written: {output_path}, sr={sr}") make_reverse_blend("voice_clean.wav", "voice_reverse_blend.wav", 0.3)

这段脚本的核心思路是:异常声不是替换原始声音,而是作为“低权重叠层”附着在正常声音上。观众第一次看片时不一定能察觉,但会觉得这条音轨“不太对劲”。

3.4 音频参数表与检验方法

声音处理时常用的参数可以整理成一张速查表:

参数推荐范围调整影响错误表现
混响湿声比例20% 到 50%越大越空灵超过 50% 会变成山洞音
带通滤波低频100Hz 到 200Hz低切越多越薄人声发闷、含糊
带通滤波高频6000Hz 到 12000Hz高切越多越钝听感过于失真
反向混入权重0.2 到 0.4越大越阴森超过 0.5 会明显倒放
音量峰值-6dB 到 -3dB避免后期爆音超过 0dB 会削波

检验音频是否合格,不要只看波形长度,可以用耳机听三个点:开头的底噪是否平缓、异常声音出现时是否够“轻”、结尾是否干净。模拟恐怖最忌讳把所有声音都堆到同一音量,动态层级才是恐怖感的重要来源。

4. 画面层:用 ffmpeg 制作可控的 VHS 感

4.1 VHS 质感不是越脏越好

很多模拟恐怖作者拿到滤镜后,第一件事就是把噪点、划痕、色偏全部拉满,结果画面确实“旧”,但什么都看不清。VHS 质感的真正作用是提供“媒介的可信度”:观众看到时间码、日期戳、台标和磁带噪点,会自动把内容归类为旧录像,从而降低对画面精度的预期。

因此,VHS 滤镜应该是一套可控的叠加系统,而不是一次性全量应用。建议把噪声强度、色偏、扫描线分离到不同参数中,单独调试。

4.2 一条 ffmpeg 滤镜链从原始素材到磁带感

ffmpeg 是处理这类效果最有效的工具。下面的命令展示了从原始视频生成“磁带感”画面的基本滤镜链:

ffmpeg -i input.mov \ -vf "noise=alls=18:allf=t+u,eq=contrast=1.15:brightness=-0.04:saturation=0.75,hue=h=6:s=0.8,curves=preset=medium_contrast,format=yuv420p" \ -af "highpass=f=80,lowpass=f=11000,volume=0.95" \ -c:v libx264 -preset slow -crf 20 \ -c:a aac -b:a 192k \ output_vhs.mp4

各参数含义:

参数作用注意点
noise=alls=18增加整体噪声颗粒数值过大时字幕会不可读
eq=contrast=1.15提升对比度拉太高会丢失暗部细节
saturation=0.75让颜色更褪色适合老磁带感
hue=h=6轻微色偏建议在 3 到 10 之间
highpass=80切除低频底噪同时会削弱环境声厚度
lowpass=11000模拟磁带高频损失高于 15000 会太清晰

如果想制造“磁带卡住”的效果,可以单独输出一个片段,加时间拉伸和跳帧:

ffmpeg -i segment.mp4 \ -vf "setpts=1.1*PTS,framestep=2,noise=alls=30:allf=t+u" \ -af "asetrate=42000" \ output_glitch.mp4

注意asetrate=42000原本是 48000 Hz 会降低音调,模拟播放器电压不稳的效果。实际项目中需要根据原始采样率调整。

4.3 叠加时间码、台标、日期戳

VHS 感不只是滤镜,还包括屏幕上的元信息。使用 ffmpeg 的drawtext滤镜可以在画面上叠加日期和时间码:

ffmpeg -i output_vhs.mp4 \ -vf "drawtext=text='1997-11-02 22:41:07':x=w-tw-30:y=h-th-30:fontsize=28:fontcolor=white:box=1:boxcolor=black@0.6:fontfile=/path/to/font.ttf" \ -codec:a copy \ output_with_timecode.mp4

时间码要尽量和故事设定一致:如果《余声》第一阶段发生在 1997 年,时间码就不该出现 2024 年的日期。台标可以在图形软件里做一张 4:3 比例、白色半透明的 PNG,再用overlay叠加到左上角。

4.4 字幕可读性与滤镜强度的取舍

字幕是模拟恐怖片中重要的信息载体,尤其是当“档案页”“提示语”“被抹除的日期”出现时,观众必须能一眼看清。滤镜再做旧,字幕区域也要保持可读性。具体做法是:给字幕加黑色半透明底框,或者把字幕放在画面四周的非关键位置,而不是直接压在最复杂的噪点区域。

经验判断:当你不得不暂停视频才能看清字幕时,滤镜强度已经过了。正常观感应该是“画面有明显磁带噪点,但字幕和关键物体不需要暂停就能识别”。

5. 叙事排布:从“留得住”到“童年卒”的三幕推进

5.1 第一幕:家庭录像,建立“留得住”

模拟恐怖短片不适合像普通短剧那样直接抛出信息。第一幕的任务是让观众相信“这些影像真实存在”。

建议用一种“家庭录像回顾”的开场:一位主角坐在电视前,把旧磁带放进播放器,屏幕上出现一段正常的家庭聚会。此时通过一个简单的画外音介绍:“这些声音是 1997 年留下来的,我想把它们全部数字化,防止丢失。”

这一部分的镜头不需要惊悚,画面可以略微偏亮、带轻微偏色。音频以环境底噪和磁带噪声为主。关键信息是“保存”:让观众看到主角建立文件夹、给录音编号、试图转录。这既符合工程流程,也为后面的异常建立可信度。

5.2 第二幕:异常复现,“守不住”与“儿孙闹”

第二幕开始出现第一次异常。推荐的设计是:主角在检查转录文件时,发现某段录音的时长比原始磁带多出 11 秒。随后,孩子在自己的房间里模仿录音中的短句,但那段录音从未在家里播放过。

这里的技术表现很关键:

  • 音频层面:异常声要轻,不能像恐怖片 jump scare 那样突然爆响。
  • 画面层面:播放器画面开始出现跳帧、马赛克、磁带扭曲。
  • 信息层面:用字幕或日记文字提醒“第 3 段录音出现重复呼吸声”。

“守不住”在这个阶段表现为:主角删掉了这段录音,但它依然出现在备份盘里;换了播放器,声音依旧在同一个时间点出现。主角开始试图偷偷处理,而不是告诉家人,由此造成家庭内部的猜疑。

5.3 第三幕:档案闭环,“童年卒”

最后一段要回收“儿孙闹”和“童年卒”两条线。常规做法是:主角查看最后一段家庭录像,发现镜头里出现了一个不存在的孩子,或者孩子对着镜头说出录音里那句模糊的话。此时画面可以出现多次“快进-倒带-重放”,反复落到同一个帧。

“童年卒”在这个虚构设定中被处理成“主角童年安全感的终止”,而不是具体伤亡。画面最后可以停留在被抹掉的日期戳上,字幕显示:“录音已损坏,无法继续还原。”这种开放式结局比较适合模拟恐怖的档案感,也避免把故事推向过度血腥的方向。

5.4 暗示细节要留给观众“二次发现”

模拟恐怖的复看率往往很高,因为观众喜欢在评论区互相确认细节。导演在剪辑时可以故意埋一些“只有暂停才能看到”的帧,例如:

  • 背景书架上的旧照片里出现一个不存在的人。
  • 时间码在某次跳帧后变成了另一个年份。
  • 音频波形图上隐藏了一段摩斯码。
  • 孩子画画的纸上出现了和录音一致的波形图。

这些细节不需要在正片中解释,但要在发布简介中留下关键词,比如“注意第二次倒带后的画外音”。这样能极大增强作品的互动性。

6. 合成、校验与发布前检查

6.1 合成时间线时的关键参数

把三条音轨(底噪、人声、异常声)和两条视频轨(主画面、叠加字幕)合进剪辑软件时,注意以下几点:

  • 视频帧率统一:建议 25fps 或 30fps,不要混用 23.976 和 30。
  • 音频采样率统一:全部使用 48000Hz,避免导出时重采样导致音调漂移。
  • 响度统一:对话平均响度建议控制在 -16 LUFS 到 -14 LUFS 之间。
  • 字幕起点必须对齐:时间码出现后,字幕至少停留 1 秒再消失。

6.2 技术校验清单

最终导出前,逐项检查以下内容:

检查项判断标准
时长成片时长是否和脚本一致,有无多余黑场
音画同步说话时口型和声音不能明显错位
字幕编码中文字幕文件使用 UTF-8,避免平台显示乱码
视频分辨率平台要求 1920x1080 时,应重采样而不是拉伸
关键帧异常片段是否可被平台编码器正确识别
导出文件名是否包含项目名和版本号,防止上传错文件
虚构声明简介和片尾是否写明“虚构故事”

6.3 合规校验:虚构声明、素材来源、平台规则

怪谈和模拟恐怖作品发布到公共平台时,最重要的不是特效有多细,而是观众能否明确知道这是虚构内容。建议在以下位置都出现虚构声明:

  • 视频标题或标签中出现的作品名,不应使用真实地名。
  • 视频简介开头第一行直接写“本视频为虚构故事,角色与事件均为虚构”。
  • 片尾最后 5 秒加文字声明。
  • 如果使用了网络下载的历史影像或声音素材,确认素材授权许可(如公有领域、CC0、原创授权)。

如果项目使用了 AI 生成的人声或图片,需要看平台关于 AI 内容的标注要求。不要用真实人物姓名、真实家庭影像或真实录音做素材,这是不可复查的底线。

7. 常见问题排查:从画面发灰到音画不同步

7.1 排查顺序

模拟恐怖项目出问题时,不建议直接重做滤镜或换素材。可以按这个顺序排查:

  1. 输入素材是否完整:文件是否损坏、导入时是否丢失音轨。
  2. 路径和命名是否正确:ffmpeg 找不到中文字体或素材文件时会报错。
  3. 采样率和帧率是否统一:混用不同规格是音画不同步的常见原因。
  4. 滤镜强度是否过高:先关掉所有特效看原始画面,再逐层叠加。
  5. 目标平台编码要求:某些平台对高噪点视频会二次压缩,导致画面更糊。
  6. 日志和错误提示:ffmpeg 的 stderr 输出才是真正的排错入口。

7.2 问题现象与处理表

问题现象常见原因检查方式处理建议
成品画面太脏,字幕看不清noisegrain参数过高逐级降低噪声参数预览保持字幕区域对比度优先
视频导出发灰,和预览不一样色彩范围和编码不匹配检查导出时是否开启了 YUV 范围转换使用format=yuv420p并确认色彩标签
异常声音像突然爆音音频峰值突破 0dB查看波形是否有削波将音量峰值压到 -3dB 以下
倒放人声太容易被识别反向混入权重过高单独试听异常段落将权重降到 0.2 以下并增加低通滤波
音画不同步视频滤镜改变帧率或时长对比原始文件时长使用-r参数固定帧率,音频加aresample
ffmpeg 中文字体不显示未指定字体文件路径查看 drawtext 报错日志使用完整字体路径,不要只写字体名

7.3 三个典型排查案例

案例一:作者给视频叠加时间码后,画面总在导出时偏移。最终发现原始素材是 23.976fps,项目设置用 25fps,drawtext 叠加时间戳后导致帧计数不同。解决办法是统一项目帧率为 25fps,并在 ffmpeg 命令中显式加-r 25

案例二:异常音轨单独听没有问题,混入成片后完全被底噪盖住。检查后发现异常音轨音量只有 -30dB,而底噪在 -24dB。模拟恐怖的“轻”不是“听不见”,建议异常音轨峰值至少保持在 -15dB 到 -12dB,同时压低环境底噪。

案例三:成片上传视频平台后噪点和压缩痕迹太重。这是二次编码导致的。解决办法是导出时保留足够码率,不要用极低码率让平台再做一次压缩;同时 VHS 滤镜强度可以降低 20%,给平台压缩留出余量。

8. 最佳实践与后续扩展

8.1 沉淀一套可复用的制作模板

做完《余声》第一集后,不要急着删掉中间工程。可以把02_process下的滤镜链、音频脚本、字幕模板、检查清单整理成一个模板文件夹。下次再做模拟恐怖时,只需要替换素材和叙事内容,技术链路可以直接复用。

推荐模板结构:

analog_horror_template/ ├── ffmpeg/ │ ├── vhs_filter.sh │ ├── timecode_overlay.sh │ └── glitch_segment.sh ├── python/ │ ├── reverse_blend.py │ └── waveform_morse.py ├── editing/ │ ├── subtitles_template.ass │ └── project_settings.md └── checklist/ └── release_checklist.md

8.2 从单集到系列:维持世界观的统一

如果《余声》要做成系列,需要专门建一个“世界观时间线文档”。模拟恐怖系列最怕前后规则冲突,比如第一集说“只有磁带能记录异常”,第二集却出现手机录音也有效。世界观文档里至少要记录:

  • 异常声音首次出现的时间和地点。
  • 哪种媒介可以记录它,哪种不能。
  • 已经展示过的异常画面和声音素材。
  • 后续可使用但尚未揭示的伏笔。
  • 每个角色的状态,避免时间线前后矛盾。

8.3 技术延伸方向

《余声》的基础做扎实后,可以从以下几个方向扩展:

  • 把音频处理脚本批量化为一个“素材生成器”,一次生成多段异常音频。
  • 用 Python 绘制“音频波形图上隐藏摩斯码”的素材,在片中作为预告线索。
  • 用 ffmpeg 的overlay图层制作多个时间码互相叠加的“档案混乱感”。
  • 为系列建立小型文档站点,用网页陈列“已经数字化”的档案资料,网站本身成为叙事一部分。
  • 如果不需要公开发布,只做练习,可以尝试完全用音频讲一个 60 秒的《余声》微故事,检验声音表达能力。

怪谈和模拟恐怖并不是模板化“老旧滤镜加鬼影”的流水线。《余声》这一类项目的真正难点,是如何让观众相信一段影像“原本不该存在”。技术只是让介质可信的工具,叙事规则和对观众的尊重才是决定作品能否立住的关键。第一次制作时,不要追求镜头数量或特效强度,先把“留得住”这一层做扎实,让声音真正留下痕迹,后面的“守不住”“儿孙闹”“童年卒”自然会有足够的力量推动观众看完。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/8 12:25:34

LangGraph企业级Agent实战:状态管理、记忆与多智能体协作

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

作者头像 李华
网站建设 2026/9/8 12:24:39

GIS定义投影与投影转换:核心概念解析与ArcGIS实战指南

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

作者头像 李华
网站建设 2026/9/8 12:23:27

从ASR到LLM:构建能接住100个野人电话的AI对话系统

1. 开篇:当“给野人接电话”变成一场工程挑战最近看到这个很有意思的挑战——“给100个野人接电话的第一天”。乍一看这像是一个娱乐整活项目,但如果你从开发者的角度去拆解,会发现它背后藏着一个非常现实的问题:你设计的一套对话…

作者头像 李华
网站建设 2026/9/8 12:21:04

STM32嵌入式系统期末速成:5小时掌握核心考点与环境搭建

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

作者头像 李华
网站建设 2026/9/8 12:17:51

计及碳捕集与电转气协同的垃圾焚烧虚拟电厂优化调度

MATLAB代码做“记及电转气协同的含碳捕集与垃圾焚烧虚拟电厂优化调度”,这个课题我盯着标题看了好一会儿,第一反应是:终于有人把垃圾焚烧和碳捕集放到一个框里算了。以前做虚拟电厂(VPP)优化调度,主流玩法是…

作者头像 李华