1. 课程导入与优化思维建立

在工程实践中,我们很少能“随便取一个参数”就让系统工作得足够好。电机控制器里的PID增益、换热器的换热面积、桁架结构的杆件截面、机械臂轨迹的时间节点、电池充电策略中的电流限值——这些量一旦选得不合适,轻则效率低、振动大、超调严重,重则无法满足安全与工艺约束。数值优化要解决的,正是这类“在可行范围内寻找最佳参数组合”的问题。

本课程的目标不是把优化讲成纯数学,而是建立一条从工程问题到MATLAB可执行求解的完整路径:把工程语言翻译成目标函数、决策变量与约束,选择合适的求解器,读懂求解输出,并判断结果是否可信、是否可用。

一、数值优化在工程参数求解中的定位

工程参数求解通常有三条路线。第一条是解析法:通过求导令梯度为零得到闭式解,适合形式简单、变量少的问题,但一旦出现分段、非线性约束或实验数据驱动的模型,往往无法求解。第二条是经验试凑法:凭经验调参、做正交试验或扫参,工程上很常见,但变量一多,组合爆炸,且难以保证找到的是“最好”而不是“勉强能用”。第三条就是数值优化:用迭代算法在计算机上逐步逼近最优解,能处理非线性、多约束、多变量、甚至目标函数只能通过仿真或实验获得的问题。

因此,数值优化的定位可以概括为:把工程判断转化为可计算的数学形式,再用算法系统性地搜索,而不是靠反复试错。它不替代工程经验,而是把经验用在“建模、定约束、选初值、判结果”这些关键环节上。

二、典型问题形式:从工程描述到数学表达

绝大多数工程优化问题都可以写成如下标准形式:

min  f(x)                % 目标函数:要最小化的指标
s.t. h_i(x) = 0          % 等式约束:必须严格满足的关系
     g_j(x) <= 0         % 不等式约束:允许范围边界
     x_L <= x <= x_U     % 变量上下界

其中 x 是决策变量向量,f(x) 是目标函数,h 和 g 是约束函数。注意“最小化”是约定俗成的写法;若工程目标是最大化效率或利润,只需对目标取负号,即 max f(x) 等价于 min −f(x)。

举一个具体例子。某直流电机位置伺服系统采用PID控制,需要整定比例增益 Kp、积分增益 Ki、微分增益 Kd。工程要求:上升时间不超过0.5 s,超调量不超过10%,控制量不超过额定电压。可以这样建模:

  • 决策变量:x = [Kp, Ki, Kd];
  • 目标函数:f(x) = 时间加权绝对误差积分 ITAE = ∫ t·|e(t)| dt,通过Simulink仿真或数值积分计算;
  • 不等式约束:超调量 σ(x) ≤ 10%,控制量峰值 u_max(x) ≤ U_rated;
  • 变量下界:Kp, Ki, Kd ≥ 0。

这里的目标函数没有解析表达式,只能通过仿真得到,属于典型的“黑箱优化”。这正是数值优化在工程中不可替代的场景。

三、MATLAB优化工具箱概览

MATLAB提供了覆盖连续、离散、全局与多目标的优化工具。按问题类型可作如下划分:

问题类型典型函数适用场景
无约束非线性fminunc, fminsearch目标光滑、无约束或仅需简单边界
约束非线性fmincon含等式/不等式约束的工程参数整定
线性/整数规划linprog, intlinprog资源分配、排产、选型
二次规划quadprog最小二乘型控制、MPC
最小二乘/曲线拟合lsqnonlin, lsqcurvefit参数辨识、实验数据拟合
多目标优化gamultiobj, paretosearch效率与成本、精度与能耗的权衡
全局优化ga, particleswarm, simulannealbnd多峰、初值敏感问题

选择求解器的核心依据是:目标与约束是否光滑、是否可导、变量是否连续、是否存在多个局部极小。对于工程问题,fmincon 和 lsqnonlin 使用频率最高;当目标函数来自仿真、不可导时,可考虑 patternsearch 或 ga。

四、学习路线与优化思维

本课程后续将按“建模—求解—诊断—应用”的主线推进。学习时建议始终带着三个问题:我要优化的到底是什么指标?哪些量可以自由调整?哪些边界绝对不能越过?这三个问题分别对应目标函数、决策变量和约束,是优化建模的骨架。

下面的SVG给出了一条从工程需求到优化结果的完整信号链,帮助建立整体框架。

工程参数优化求解信号链 工程需求 性能指标 / 安全边界 工艺限制 / 成本目标 数学建模 目标 f(x) · 变量 x 约束 h(x)=0, g(x)≤0 选择求解器 fmincon / lsqnonlin ga / patternsearch 迭代求解 梯度 / 搜索方向 收敛判据 · 迭代次数 结果诊断 exitflag · 约束违反量 局部/全局 · 初值敏感性 工程决策 参数是否可用 鲁棒性 / 可制造性 若结果不可用:调整建模、约束或初值,重新求解

图中红色虚线表示反馈:优化很少一次成功。若 exitflag 为负、约束违反量不为零,或最优解落在变量边界上,都需要回到建模阶段检查约束是否过紧、初值是否合理、目标函数是否写错。

工程提示:初值对非线性优化影响很大。建议先用物理直觉或扫参给出一个“大致可行”的初值,再交给 fmincon 精调。若多次不同初值得到差异很大的解,说明问题可能多峰,应考虑全局优化方法。

最后强调一个观念:数值优化给出的“最优解”是相对于你写的目标函数和约束而言的。模型错了,算法再强也没有意义。因此,本课程会把大量精力放在“如何把工程问题正确地翻译成优化模型”上,而不是只记函数名和参数。掌握这条主线,后续每一章的工具与方法才能落到真实的工程参数求解中。