Matlab控制系统建模:从传递函数到仿真实战
1. 从一个实际需求说起为什么要用Matlab建控制系统模型很多刚接触控制理论的朋友第一次看到传递函数、状态空间表达式这些概念时脑子里全是问号。课本上给你一个弹簧阻尼系统让你写出微分方程再拉普拉斯变换再整理成传递函数——一套流程走下来手算倒是能算但一旦系统稍微复杂一点比如多输入多输出、有非线性环节、有延迟手算基本就废了。更关键的是你算完了想看看这个系统到底表现如何阶跃响应长什么样超调量多大调节时间多久靠手画根轨迹或者伯德图精度和效率都堪忧。这就是Matlab进入视野的原因。它不是一个“帮你算数”的计算器而是一整套控制系统建模、分析、设计的工具链。你可以在里面用几行代码就把一个物理系统的数学模型搭出来然后直接调step()看阶跃响应调bode()看频域特性调rlocus()画根轨迹甚至直接上pidtune()帮你自动整定PID参数。整个过程从建模到验证到调参闭环非常短。这篇内容适合谁看如果你正在学自动控制原理、现代控制理论或者做课程设计、毕业设计需要把课本上的理论落到实际仿真上那这篇就是写给你的。如果你已经工作偶尔需要快速验证一个控制方案的可行性不想从零推导那这篇也能帮你省不少时间。我默认你有最基本的Matlab操作基础——知道怎么新建脚本、怎么运行代码、怎么看工作区变量这些就够了不需要你精通Matlab编程。接下来我会从建模思路、核心函数、实操步骤、常见坑四个维度把“用Matlab建立控制系统模型”这件事讲透。不是照搬帮助文档而是把我自己踩过的坑和总结的技巧都揉进去。2. 控制系统建模的整体思路与方案选型2.1 三种建模方式的适用场景对比在Matlab里建立控制系统模型本质上就是把物理系统的动态特性翻译成Matlab能理解的数学对象。翻译的方式有三种分别对应不同的系统描述方法建模方式数学基础适用场景核心Matlab函数传递函数模型拉普拉斯变换单输入单输出、线性时不变系统tf()状态空间模型微分方程组多输入多输出、现代控制理论ss()零极点增益模型因式分解频域设计、根轨迹分析zpk()这三种模型在Matlab里是可以互相转换的。比如你用tf()建了一个传递函数随时可以用ss()把它转成状态空间反过来也行。所以选哪种方式入手主要看你的系统描述习惯和分析需求。传递函数最直观适合经典控制理论那套东西——你手上有微分方程拉氏变换一搞整理成分子分母多项式的形式直接往tf()里填系数就行。状态空间更适合多变量系统或者你要用现代控制理论的方法比如极点配置、LQR来设计控制器。零极点增益模型则在频域设计里用得比较多因为伯德图和根轨迹本质上就是在零极点平面上做文章。2.2 为什么我建议从传递函数入手虽然状态空间更“现代”但我个人建议初学者先从传递函数建模开始。原因有三第一传递函数的物理意义更直观。分子分母的系数直接对应微分方程的各项系数你写出来的东西和课本上的公式是一一对应的不容易搞错。第二传递函数的阶次和零极点分布可以直接读出系统的动态特性——比如一阶系统没有超调二阶系统看阻尼比就知道振荡程度这些直觉在状态空间里需要额外计算才能获得。第三经典控制理论的分析工具根轨迹、伯德图、奈奎斯特图都是基于传递函数的你先用tf()建好模型后面调rlocus()、bode()都是水到渠成的事。当然如果你的系统天生就是多输入多输出的比如一个四旋翼飞行器的姿态控制那直接上状态空间更合适没必要硬拆成多个传递函数。选型的原则就一条用最贴近系统物理本质的描述方式。2.3 建模前必须想清楚的三个问题在打开Matlab之前先问自己三个问题系统的输入和输出分别是什么这决定了你建模的边界。比如一个电机控制系统输入是电压输出是转速那传递函数就是转速对电压的传递函数。如果你搞错了输入输出后面所有分析都是白搭。系统是线性的还是非线性的Matlab的tf()和ss()只能建线性时不变模型。如果你的系统有非线性环节比如饱和、死区、摩擦要么先在工作点附近线性化要么用Simulink搭非线性模型。这一点很多人容易忽略拿一个非线性系统硬套传递函数结果仿真和实际对不上。系统的参数是确定的还是不确定的如果你知道精确的参数值直接建标称模型就行。如果参数有波动范围可能需要建多个模型或者用鲁棒控制的方法。初学者一般先建标称模型后面再考虑不确定性。这三个问题想清楚了建模就是几分钟的事。想不清楚后面反复改模型浪费的时间远不止几分钟。3. 核心函数与实操要点详解3.1 传递函数建模tf函数的使用细节tf()是Matlab里建传递函数最基础的函数。它的调用格式很简单sys tf(num, den)其中num是分子多项式的系数向量den是分母多项式的系数向量都按降幂排列。比如一个二阶系统% G(s) (2s 1) / (s^2 3s 2) num [2 1]; den [1 3 2]; sys tf(num, den);运行之后Matlab会输出sys 2 s 1 ------------- s^2 3 s 2这里有几个细节值得注意系数向量的长度决定了阶次。分子向量长度是2对应一阶分子分母向量长度是3对应二阶分母。如果某一项系数是0不能省略必须补0。比如s^2 2的分母向量是[1 0 2]中间的0不能省。可以指定采样时间建离散模型。如果你要建离散传递函数加一个采样时间参数Ts 0.01; % 采样周期10ms sys_d tf(num, den, Ts);这样建出来的就是离散模型后面做数字控制器设计时直接用。变量名不要用s。很多人习惯把传递函数变量命名为s但Matlab里s不是保留变量你赋值之后可能会覆盖掉。建议用sys、G、H这类名字。如果你确实想用s来写表达式需要先定义s tf(s); G (2*s 1) / (s^2 3*s 2);这种方式更直观适合写复杂的传递函数表达式但要注意s变量一旦定义后面就不能再当普通变量用了。3.2 状态空间建模ss函数的参数含义状态空间模型的Matlab表示是sys ss(A, B, C, D)其中A是状态矩阵B是输入矩阵C是输出矩阵D是直接传递矩阵。对于一个n阶系统、m个输入、p个输出A是n×nB是n×mC是p×nD是p×m。举个例子一个二阶系统A [0 1; -2 -3]; B [0; 1]; C [1 0]; D 0; sys ss(A, B, C, D);这个系统对应的传递函数是1/(s^2 3s 2)。你可以用tf(sys)验证一下tf(sys)输出应该是ans 1 ------------- s^2 3 s 2D矩阵什么时候不为零当系统有直接传递项时D不为零。比如G(s) (s1)/(s2)写成状态空间形式时D就是1。大部分物理系统的D矩阵是零因为输入到输出之间没有瞬时通路。但如果你不确定可以先设D0后面用tf()转换验证一下。状态变量的选择不唯一。同一个传递函数可以对应无穷多组状态空间实现A、B、C矩阵都不一样但传递函数相同。Matlab的ss()函数接受你给的任意一组矩阵不会帮你做规范化。如果你想让Matlab自动生成一组标准形式可以先用tf()建传递函数再用ss()转换sys_tf tf([1], [1 3 2]); sys_ss ss(sys_tf);这样Matlab会自动选择一种可控标准型或可观标准型。3.3 模型转换tf、ss、zpk之间的互转三种模型之间的转换是控制系统建模中最常用的操作之一。转换函数很直观sys_tf tf(sys_ss); % 状态空间转传递函数 sys_ss ss(sys_tf); % 传递函数转状态空间 sys_zpk zpk(sys_tf); % 传递函数转零极点增益 sys_tf tf(sys_zpk); % 零极点增益转传递函数转换过程中Matlab会自动处理约分和规范化。但有一个坑要注意数值精度问题。当系统阶次较高时传递函数的分子分母系数可能非常大或非常小转换过程中容易出现数值误差。比如一个六阶系统转换后可能出现极点和零点几乎抵消但又不完全抵消的情况导致传递函数看起来阶次很高但实际上可以降阶。这时候可以用minreal()函数做最小实现sys_min minreal(sys);minreal()会自动消去对消的零极点给出最简模型。我建议每次做完模型转换后都跑一下minreal()养成习惯。3.4 模型连接串联、并联、反馈实际控制系统往往由多个环节组成需要把多个模型连接起来。Matlab提供了几种连接方式串联两个系统前后相连总传递函数是乘积。sys_series series(sys1, sys2); % 或者直接用乘法 sys_series sys1 * sys2;并联两个系统输入相同输出相加。sys_parallel parallel(sys1, sys2); % 或者直接用加法 sys_parallel sys1 sys2;反馈前向通道和反馈通道构成闭环。sys_cl feedback(sys_forward, sys_feedback);feedback()默认是负反馈。如果是正反馈加第三个参数sys_cl feedback(sys_forward, sys_feedback, 1);这里有一个非常容易犯的错误反馈通道的传递函数不要写成1。很多人以为单位负反馈就是feedback(G, 1)这没错但如果你实际系统里传感器有动态特性比如一阶滞后反馈通道就不是1了必须把传感器模型也建进去。我见过不少课程设计传感器明明有延迟学生直接按单位负反馈做仿真结果和实际差了一大截。4. 完整实操流程从物理系统到仿真验证4.1 案例背景一个直流电机速度控制系统为了把上面的知识点串起来我用一个直流电机速度控制的例子走一遍完整流程。这个例子在课程设计和实际工程中都很典型。假设我们有一个直流电机输入是电枢电压输出是电机转速。根据电机学原理电机的微分方程可以写成J * dω/dt Kt * i - B * ω L * di/dt V - R * i - Ke * ω其中J是转动惯量B是阻尼系数Kt是转矩常数Ke是反电动势常数L是电枢电感R是电枢电阻V是输入电压ω是转速i是电枢电流。这是一个二阶系统两个状态变量转速ω和电流i。输入是电压V输出是转速ω。4.2 参数设定与状态空间建模先设定一组典型的参数值J 0.01; % 转动惯量 kg·m^2 B 0.1; % 阻尼系数 N·m·s/rad Kt 0.01; % 转矩常数 N·m/A Ke 0.01; % 反电动势常数 V·s/rad L 0.5; % 电枢电感 H R 1; % 电枢电阻 Ω把这些参数代入微分方程整理成状态空间形式。选择状态变量x1 ωx2 i输入u V输出y ω。状态方程dx1/dt (-B/J) * x1 (Kt/J) * x2 dx2/dt (-Ke/L) * x1 (-R/L) * x2 (1/L) * u输出方程y x1写成矩阵形式A [-B/J, Kt/J; -Ke/L, -R/L]; B [0; 1/L]; C [1, 0]; D 0; motor_ss ss(A, B, C, D);运行之后Matlab会输出状态空间模型。你可以用tf(motor_ss)看看对应的传递函数motor_tf tf(motor_ss);输出大概是motor_tf 0.01 ---------------------- 0.005 s^2 0.06 s 0.1这个传递函数的分母是二阶的对应电机的机械时间常数和电气时间常数。分子是常数说明输入到输出没有微分项。4.3 从状态空间到传递函数的转换与验证得到传递函数后我习惯做两件事一是检查极点和零点二是画阶跃响应看看基本特性。% 查看零极点 zpk(motor_tf) % 画阶跃响应 figure; step(motor_tf); grid on; title(直流电机速度控制系统阶跃响应);从零极点分布可以看到系统有两个实极点都在左半平面说明系统是稳定的。阶跃响应应该是一条单调上升的曲线没有超调最终稳定在某个值。这里有一个细节稳态值是多少根据终值定理阶跃响应的稳态值等于传递函数在s0处的值。对于上面的传递函数G(0) 0.01 / 0.1 0.1所以阶跃响应的稳态值是0.1。这意味着如果输入1V电压电机最终转速是0.1 rad/s。这个值看起来很小但这是因为我们设定的参数里阻尼系数相对较大。实际电机参数不同稳态值也会不同。4.4 加入PID控制器后的闭环仿真开环系统虽然稳定但稳态值只有0.1而且响应速度可能不够快。实际应用中通常会加一个PID控制器来改善性能。在Matlab里加PID控制器很简单% 设计PID控制器 Kp 10; Ki 5; Kd 0.1; C pid(Kp, Ki, Kd); % 构建闭环系统 sys_cl feedback(C * motor_tf, 1); % 画阶跃响应 figure; step(sys_cl); grid on; title(加入PID控制器后的闭环阶跃响应);运行之后你会看到闭环系统的阶跃响应稳态值变成了1因为积分环节消除了稳态误差响应速度也快了很多。但超调量可能比较大需要调整PID参数。PID参数怎么调如果你不想手动试凑可以用Matlab的pidtune()函数[C_tuned, info] pidtune(motor_tf, pid);pidtune()会自动给你一组满足默认性能指标比如相位裕度60度的PID参数。你可以把C_tuned替换到闭环系统里再仿真对比效果。4.5 仿真结果的分析与模型修正仿真跑完之后不能只看曲线好看就完事了。我一般会做以下几项检查第一检查稳态误差。如果闭环阶跃响应的稳态值不是1说明系统有稳态误差。对于有积分环节的PID控制器稳态误差应该为零。如果不是零可能是积分增益太小或者仿真时间不够长。第二检查超调量和调节时间。用stepinfo()函数可以直接获取这些指标info stepinfo(sys_cl); disp(info);输出会包含上升时间、调节时间、超调量、峰值等。你可以根据这些指标判断是否需要继续调参。第三检查抗扰动能力。实际系统会有扰动比如负载转矩变化。你可以在仿真里加一个扰动输入看看闭环系统能不能抑制。这需要建一个扰动通道的模型稍微复杂一点但思路是一样的。第四检查模型是否过于简化。如果仿真结果和实际测试差距很大可能是建模时忽略了一些因素比如电机的非线性摩擦、电枢反应、PWM驱动器的延迟等。这时候需要回到建模阶段把忽略的因素补进去或者用Simulink搭更详细的模型。5. 常见问题与排查技巧实录5.1 模型转换后阶次异常怎么办这是最常见的问题之一。你建了一个三阶传递函数转成状态空间再转回来发现变成四阶了或者零极点对消不干净。原因通常是数值精度问题。排查方法用minreal()做最小实现看看能不能降阶。如果minreal()之后阶次正常了说明原来的模型里有对消的零极点只是数值上没完全对消。sys_min minreal(sys); order(sys_min) % 查看最小实现后的阶次如果minreal()也解决不了可能是模型本身就有问题比如你建传递函数时系数填错了导致零极点位置不对。5.2 阶跃响应不收敛或发散怎么查阶跃响应发散说明系统不稳定。排查步骤检查极点位置pole(sys)如果有极点在右半平面实部大于零系统就是不稳定的。检查反馈极性如果你建的是闭环系统检查feedback()函数用的是正反馈还是负反馈。正反馈容易导致不稳定。检查控制器参数如果加了PID控制器后发散可能是增益太大。先把Kp调小再逐步增加。检查模型连接串联、并联、反馈连接时检查有没有把该连的通道连错。比如把反馈通道接到了前向通道上。5.3 仿真速度慢的优化思路当模型阶次很高或者仿真时间很长时Matlab的仿真可能会很慢。几个优化思路降阶用balred()或minreal()降低模型阶次。很多高阶系统实际上可以用低阶模型近似。用离散模型如果只是做数字控制仿真用离散模型比连续模型快。减少输出点数step()函数可以指定时间向量减少仿真点数。用lsim()代替step()对于复杂输入lsim()更灵活也可以控制仿真步长。5.4 常见问题速查表问题现象可能原因排查方法解决方案模型转换后阶次变高数值精度导致零极点未完全对消用minreal()检查做最小实现阶跃响应发散系统不稳定或反馈极性错误检查极点位置和反馈符号调整控制器或修正反馈稳态值不对传递函数增益错误用dcgain()检查修正分子分母系数仿真报错“维度不一致”矩阵维度不匹配检查A、B、C、D的维度重新确认状态变量个数闭环响应和开环一样反馈通道没接对检查feedback()参数确认前向和反馈通道PID调参后超调过大增益过大或微分不足用stepinfo()看指标减小Kp或增大Kd5.5 几个我踩过的坑和独家技巧坑一用s变量写传递函数时忘了定义。直接写G 1/(s^21)会报错因为s没有定义。必须先s tf(s)。这个坑我踩过不止一次尤其是从其他语言转过来的时候。坑二feedback()的第二个参数是反馈通道不是反馈增益。很多人以为feedback(G, 1)里的1是增益其实它是反馈通道的传递函数。单位负反馈就是1但如果反馈通道有动态特性必须把传递函数写进去。坑三离散模型的采样时间单位是秒不是毫秒。如果你写Ts 10Matlab会认为是10秒不是10毫秒。这个错误在数字控制器设计里很常见会导致仿真结果完全不对。技巧一用ltiview交互式查看响应。ltiview可以同时显示多个系统的阶跃响应、伯德图、奈奎斯特图等方便对比。在调参阶段特别有用。技巧二用stepinfo批量获取性能指标。如果你有多个候选控制器可以写一个循环对每个控制器计算stepinfo然后对比超调量、调节时间等指标快速筛选。技巧三保存模型用save不要用saveas。save保存的是Matlab的工作区变量下次可以直接load回来继续用。saveas保存的是图片不能继续仿真。技巧四模型命名要有规律。比如motor_tf、motor_ss、motor_cl分别表示电机的传递函数、状态空间、闭环模型。这样后面代码多了不容易搞混。6. 从建模到设计的延伸思路模型建好之后其实只是第一步。后面还有控制器设计、性能验证、鲁棒性分析等一系列工作。但建模是所有这些工作的基础模型不对后面全错。如果你已经能熟练用tf()和ss()建模型下一步可以尝试这几个方向一是用Simulink搭更复杂的系统。Matlab的命令行建模适合线性时不变系统但如果你有非线性环节、逻辑判断、状态机Simulink会更合适。而且Simulink可以直接把Matlab工作区的模型导入进去两者配合使用效率很高。二是尝试系统辨识。如果你没有系统的物理参数但有输入输出数据可以用Matlab的系统辨识工具箱System Identification Toolbox从数据里估计模型。这在实验建模中非常有用。三是做鲁棒性分析。实际系统的参数不会一成不变用robustcontrol工具箱可以分析参数波动对系统性能的影响设计出对参数变化不敏感的控制器。四是做降阶处理。高阶模型虽然精确但计算量大、控制器设计复杂。用balred()或modred()可以把高阶模型降到低阶同时保持主要动态特性。这在实时控制里很重要。我个人在实际操作中的体会是建模这件事快就是慢慢就是快。花十分钟想清楚系统的输入输出、线性与否、参数确定与否比后面花两小时改模型要划算得多。另外每次建完模型都跑一下minreal()和step()确认模型没有异常这个习惯能帮你省掉很多莫名其妙的调试时间。最后再分享一个小技巧如果你不确定自己的模型对不对可以先用一个你熟悉的简单系统验证一下。比如一阶系统1/(s1)的阶跃响应应该是1 - exp(-t)稳态值是1时间常数是1秒。用Matlab跑一下看看结果对不对确认自己的建模流程没问题再去建复杂系统。这个“用已知验证未知”的思路在控制系统里永远好用。

相关新闻

LinkedHashMap源码解析:双向链表如何维系顺序与LRU缓存

LinkedHashMap源码解析:双向链表如何维系顺序与LRU缓存

/* 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 1:35:24 阅读更多 →
RSA加密算法原理与时间复杂度分析:从密钥生成到工程实践

RSA加密算法原理与时间复杂度分析:从密钥生成到工程实践

/* 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 1:35:24 阅读更多 →
考研英语主旨题解题全攻略:从抓住论点标记到排除干扰项的完整方法论

考研英语主旨题解题全攻略:从抓住论点标记到排除干扰项的完整方法论

/* 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 1:35:24 阅读更多 →

最新新闻

C# .NetCore Swagger ISchemaFilter Long 转 String 防精度丢失

C# .NetCore Swagger ISchemaFilter Long 转 String 防精度丢失

目录 解决方案 方法1:使用 SchemaFilter ‌1、创建自定义 SchemaFilter‌ ‌2、在 Swagger 配置中使用该 Filter‌ 方法2:使用 OperationFilter 或 DocumentFilter 1、‌创建自定义 OperationFilter 2、在 Swagger 配置中使用该 Filter 总结 如果…

2026/10/18 3:55:22 阅读更多 →
GLM-Turbo(龙虾模型)API接入指南:Python调用、参数调优与实战

GLM-Turbo(龙虾模型)API接入指南:Python调用、参数调优与实战

最近AI圈里有个很热的称呼叫“龙虾模型”,对应的其实就是GLM-Turbo这个系列。很多人一听到这名字就懵,甚至以为是哪个海鲜行业的图像识别模型,但实际它是一个大语言模型,主打的是中文对话、写作、代码生成和知识问答。我这阵子正好…

2026/10/18 3:55:22 阅读更多 →
iOS WebRTC示例解析:从信令到渲染跑通音视频通话链路

iOS WebRTC示例解析:从信令到渲染跑通音视频通话链路

简介:面向iOS开发者的WebRTC集成示例工程,基于Objective-C实现同类应用间的实时音视频通话,适合希望掌握WebRTC核心流程与原生设备适配的移动端工程师入门参考。压缩包共24个文件,包含7个m源码、5个h头文件、3个plist配置&#xf…

2026/10/18 3:55:22 阅读更多 →
Play Integrity Fix 实战教程:如何让你的 Android 设备重新通过完整性检测

Play Integrity Fix 实战教程:如何让你的 Android 设备重新通过完整性检测

Play Integrity Fix 实战教程:如何让你的 Android 设备重新通过完整性检测 【免费下载链接】PlayIntegrityFix Fix Play Integrity (and SafetyNet) verdicts. 项目地址: https://gitcode.com/GitHub_Trending/pl/PlayIntegrityFix 银行 App 一打开就闪退&am…

2026/10/18 3:55:22 阅读更多 →
Spring AI集成大模型:Java开发者最佳实践指南

Spring AI集成大模型:Java开发者最佳实践指南

Spring AI:Java开发者的人工智能集成利器先说一个这两年技术圈里特别明显的变化:以前说到AI开发,大家默认是Python的天下,Java程序员只能站在旁边看热闹,顶多通过HTTP接口调一下别人封装好的服务。但从2024年开始&…

2026/10/18 3:55:22 阅读更多 →
SpringBoot3断代升级实战:从零搭建到部署的完整指南

SpringBoot3断代升级实战:从零搭建到部署的完整指南

前两周帮某电商团队做技术迁移评审,对方项目经理一上来就问:能不能在 SpringBoot2.7 基础上直接改版本号升到 3?我当时就告诉他:这可不是改一行版本号的事。编译直接红一片,javax消失,Tomcat行为变了&#…

2026/10/18 3:54:22 阅读更多 →

日新闻

基于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/18 0:00:55 阅读更多 →

周新闻

基于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/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 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/18 0:55:02 阅读更多 →
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/16 14:23:36 阅读更多 →