新闻详情

新闻详情

首页 / 资讯中心 / 详情

分数阶滑模控制算法:原理、Simulink仿真与抖振抑制

发布时间:2026/9/25 1:12:56来源:尧图网络
分数阶滑模控制算法:原理、Simulink仿真与抖振抑制
简介面向控制理论与工程应用研究者这份压缩包提供分数阶滑模控制算法在 MATLAB/Simulink 环境中的完整实现适合有一定现代控制理论基础的学生、科研人员及工程师用于非线性、时变及不确定性系统的仿真验证与控制器设计。包内共 24 个文件包含 12 个 .m 脚本、1 个 .mdl 模型、1 个 .slx 模型及 10 张结果图脚本负责运动学/动力学解算、轨迹生成与误差计算模型用于搭建滑动面和切换函数等核心环节图片便于直观评估跟踪效果。代码、模型与图像相互对照便于逐模块学习。已有 811 人学习下载。借助这些代码与模型读者既能掌握从分数阶微分方程建模、滑模控制器设计到参数整定的完整链路也能基于示例修改被控对象深入理解抖振抑制策略与鲁棒性改进方法。1. 分数阶滑模控制算法多一个可调阶次能压住多少抖振分数阶滑模控制算法FO-SMC不是推翻传统滑模而是在滑模面或控制律里加入分数阶微积分算子让控制器多一个阶次参数 α 可调。我在调电机位置环时遇到过最头疼的问题滑模增益调大了抖振刺耳调小了扰动压不住整数阶滑模那两个参数根本不够用。换成分数阶滑模后α 等于给了第三个旋钮用来在“收敛速度”和“高频抖动”之间做连续折中。对做四旋翼、机械臂、伺服系统或者储能变流器仿真的工程师来说这套方案在 Simulink 和 MATLAB 环境下可落地核心难点就两个分数阶算子怎么近似参数怎么配合。2. 先把原理立住分数阶算子用哪种定义滑模面怎么变稳定性怎么挂上钩2.1 三种分数阶微积分定义仿真里到底该用哪一个分数阶微积分的理论定义有好几种Riemann-LiouvilleRL定义、Caputo 定义、Grünwald-LetnikovGL定义。做理论推导时常用 RL 和 Caputo因为初值条件好写但做计算机仿真GL 定义才是可以直接落地的它把分数阶微积分展开成无限项求和D^α f(t) ≈ h^(-α) · Σ(-1)^j · Γ(α1) / (Γ(j1)·Γ(α-j1)) · f(t-jh)这里 h 是仿真步长j 从 0 累加到 NN 是记忆窗口长度。α 为正就是分数阶微分为负就是分数阶积分。问题在于这个求和是“无限记忆”的理想情况下每个时刻都要回溯到 t0在 Simulink 里用 MATLAB Function 写这种累加仿真时间越长计算量越大。工程上更常用的做法是用 Oustaloup 滤波器做频域近似。它的思路是在一段频率范围内用一系列零极点相间的有理传递函数去逼近 Bode 图上斜率恒定为α·20dB/dec的斜线。一个 N 阶 Oustaloup 近似写成G(s) ω_h^α · Π (s ω_k) / (s ω_k)其中 ω_k 和 ω_k 在频段 [ω_b, ω_h] 内按对数等距分布N 一般取 4 到 6。这个近似的工程意义在于它把一个“无限维”的分数阶算子变成有限阶的线性传递函数Simulink 里一个 Transfer Fcn 模块直接就能跑实时性也有保障。两种实现怎么选我的判断标准很简单只是做离线仿真对比用 Oustaloup 滤波器稳定、快、不挑求解器要做硬件在环或者嵌入式部署还是用 GL 离散实现在线算但必须做短记忆截断不能无限累加。2.2 两类常见分数阶滑模面以及控制律的构成分数阶滑模控制最常见的改造位置在滑模面。传统整数阶滑模面写成σ ė c·e这里 e 是跟踪误差c 是滑模面系数。改造后有两大类写法比较常见。第一类是直接替换型把误差的整数阶微分换成分数阶σ ė c·e kd·D^α eα 在 0 到 1 之间取值D^α e 是误差的分数阶微分。当 α0 时D^0 e e式子退化成σ ė (ckd)·e等于变回整数阶 PD 型滑模面。这个性质非常关键后面调参会用它来做“退化测试”。第二类是积分记忆型在传统滑模面后面额外挂一个分数阶积分项σ ė c·e β·D^(-γ) eγ 在 0 到 1 之间D^(-γ) 是分数阶积分用于消除稳态误差。它的实现比微分型更稳定因为积分算子对噪声不敏感但代价是响应会慢一些。我实际做 Simulink 仿真时更常用第一类原因很实际第二类的 D^(-γ) 模块配上微分滑模面整个系统相位滞后偏大调参时不太容易判断是滑模面参数的问题还是积分记忆项的问题。而第一类结构下一个 D^α 模块就能把核心改动带出来逻辑清晰。控制律照例拆成等价控制项和切换项u u_eq u_swu_eq 用于维持 σ0 上的滑动运动u_sw 用于把状态推向滑模面。这里分数阶项的导数仍然用分数阶算子在 Simulink 实现里等价控制需要D^α ė与滑模面里的D^α e输入不同所以需要两个相同的 Oustaloup 模块分别接 e 和 ė。稳定性结论和整数阶滑模类似取 Lyapunov 函数V 0.5·σ²沿系统轨迹求导保证切换增益 k 大于扰动上界时V̇ ≤ 0。严格说Oustaloup 近似本身有误差工程上把这个误差并入扰动项用稍大的 k 覆盖掉比在理论上死抠更实际。2.3 为什么分数阶比单纯加切换增益更值得做一个自由度换来的柔度有人会问既然调大 k 也能加强抗扰为什么非要引入分数阶算子区别在于噪声放大的方式。整数阶微分模块在高频段的增益按 20dB/dec 增长而 α0.5 的分数阶微分只有 10dB/dec高频段放大明显更小。滑模控制抖振的本质就是切换项里的高频成分被对象和执行器接收分数阶滑模从源头削掉了高频段的增益所以降抖振是结构性的不是事后加滤波器能比的。另一个容易被忽略的点是 α 带来的“插值能力”。α 在 0 到 1 之间连续变化控制器行为也在“纯比例”和“纯微分”之间连续过渡这比整数阶控制器只能在固定结构间切换要平滑得多。这也是为什么很多论文里写“分数阶滑模控制算法 不挑对象”虽说过头了但确实比传统滑模更适合参数不确定和扰动幅值变化的场景。3. 用 Simulink 搭分数阶滑模控制器从初始化脚本到仿真的完整链路3.1 初始化脚本被控对象、参考轨迹与控制器参数的统一入口建议把所有参数放在一个初始化脚本里Simulink 模型只负责读取工作区变量这样改参数不用进模型翻模块。以一个二阶对象加一阶执行器的位置控制系统为例% init_fo_smc.m 分数阶滑模控制初始化脚本 clear; clc; close all; % 被控对象参数m*x_ddot b*x_dot u d m 2; % 等效质量 kg b 0.5; % 阻尼系数 N·s/m tau 0.1; % 执行器一阶惯性时间常数 s % 滑模面与控制律参数 c 10; % 滑模面比例系数决定收敛主导快慢 kd 1.0; % 分数阶项权重控制记忆影响的强弱 alpha 0.5; % 分数阶阶次0~1先跑通后调 q 2.0; % 指数趋近率系数加快到达滑模面 k 1.5; % 切换增益必须大于扰动上界 delta 0.02; % 边界层厚度sat 代替 sign 用 % 参考轨迹幅值 1、频率 0.5Hz 的正弦位置信号 A 1.0; f 0.5; w 2*pi*f; x_ref (t) A*sin(w*t); x_ref_d (t) A*w*cos(w*t); x_ref_dd (t) -A*w*w*sin(w*t); % 分数阶算子近似频段与阶数 wb 1; wh 100; N 5; [num_fod, den_fod] oustaloup(alpha, wb, wh, N); % 模型初始状态 x0 [0; 0];这个脚本里我特别说明三点。第一alpha0.5 不是经验最优值而是中间起点后面调试时建议从 alpha0 起步再逐步加上去。第二num_fod 和 den_fod 是给 Simulink 里 Transfer Fcn 模块填的后面会讲这两个变量怎么生成。第三参考轨迹函数句柄在 Simulink 里可以用 Clock 模块加 MATLAB Function 实现也可以直接在 Constant 模块里用表达式但用函数句柄配合脚本最灵活。3.2 用 Oustaloup 滤波器近似 D^α生成传函并接入模型初始化脚本里调用的 oustaloup 函数要自己准备代码很短但值得细讲。标准的 Oustaloup 近似实现如下function [num, den] oustaloup(mu, wb, wh, N) % OUSTALOUP 用零极点分布近似 s^mu % mu/mu0 为微分mu0 为积分 % wb/wh 近似频段下/上边界 rad/s % N 滤波阶数常用 4~6 num 1; den 1; for k -N:N wk wb * (wh/wb)^((kN0.5*(1-mu))/(2*N1)); wkp wb * (wh/wb)^((kN0.5*(1mu))/(2*N1)); num conv(num, [1, wkp]); den conv(den, [1, wk]); end num num * (wh^mu); % 增益修正 num num / den(1); % 首项归一 den den / den(1); end这段代码的核心是零极点频率 wk 和 wkp 的对数等距分布实际上是在频段内用物理可实现的有理传函去拟合 s^mu 的幅频特性。对 mu0.5、wb1、wh100、N5生成的传函阶数为 11频率在 1 到 100 rad/s 范围内幅频斜率接近 10dB/dec。在 Simulink 里使用时把工作区变量 num_fod 和 den_fod 填进 Transfer Fcn 模块的 Numerator 和 Denominator 文本框。模型里需要两个这样的模块一个输入 err 输出 D^α err另一个输入 d_err 输出 D^α ā 的离散导数分别对应滑模面和等价控制律里的分数阶项。注意一定不要在 Transfer Fcn 里直接手写 0.5 阶拉普拉斯算子Simulink 只接受整数阶传递函数这步是很多人第一次跑不通的根源。频带选择上wb 至少要比参考信号频率低一个数量级wh 至少比控制带宽高一个数量级同时满足wh π/hh 是仿真步长否则高频段混叠会让控制量出现锯齿。我的初始配置 wb1、wh100 对 0.5Hz 的正弦参考是够用的如果参考频率偏高或者系统带宽较大要把 wb 和 wh 同步抬高。3.3 控制器子系统中关键的代数环节滑模面与趋近律的实现分数阶模块的输出进 MATLAB Function 之前先把误差信号准备好。建议在模型里用两个减法器分别生成 err x_ref - x 和 d_err x_ref_d - x_d参考信号直接用 Clock 加 MATLAB Function 计算。控制器核心写成 MATLAB Function 模块function u fo_smc_law(err, d_err, vel, fod_e, fod_de, ref_ddot, ... c, kd, q, k, delta, m, b) % FO_SMC_LAW 分数阶滑模控制律代数实现 % fod_e D^alpha err来自 Oustaloup 模块1 % fod_de D^alpha d_err来自 Oustaloup 模块2 % ref_ddot 参考加速度信号 sigma d_err c*err kd*fod_e; % 等价控制维持 sigma0 所需的模型补偿 u_eq m*(ref_ddot c*d_err kd*fod_de) b*vel m*q*sigma; % 切换控制饱和函数代替符号函数削弱抖振 u_sw m*k*min(max(sigma/delta, -1), 1); u u_eq u_sw; end代码逻辑不复杂但有三处容易出错。第一fod_de 不是 d_err 的再微分而是对 d_err 做同样的分数阶操作因为等价控制推导时需要对滑模面求导σ 里的 D^α e 求导后变成 D^α ė这里算子阶次不变输入变成误差导数。第二u_eq 里乘了 m因为被控对象方程是m·x_ddot b·x_dot u模型补偿项要除以对象增益这里直接把 m 乘进来了。第三饱和函数用min(max(sigma/delta, -1), 1)实现比调用 sign 少一档抖振代价是边界层内轨迹不再严格收敛到 σ0而是进入一个有界邻域delta 就是稳态精度的折中旋钮。把被控对象搭成m·x_ddot b·x_dot u的二阶积分串联形式执行器再加一个1/(tau·s1)惯性环节闭环就能跑了。第一次仿真建议定步长 ode4步长 1e-3跑完先看两个指标跟踪误差是否在 0.5 秒内收敛进边界层控制量是否高频来回切换。还有一个替代方案适合不想用 Oustaloup 的场景在 MATLAB Function 里直接用 GL 定义算分数阶微分用 persistent 数组做滑动窗口function fod gl_diff(u, mu, h, N) % GL_DIFF 短记忆 GL 定义分数阶微分 persistent hist_data if isempty(hist_data) hist_data zeros(1, N); end hist_data [hist_data(2:end), u]; acc 0; for j 1:N cj gamma(mu1) / (gamma(j1) * gamma(mu-j1)); acc acc (-1)^j * cj * hist_data(N-j1); end fod h^(-mu) * acc; end这个实现里 N 就是记忆窗口长度取 100 到 200 之间即可窗口太大会拖慢仿真太小则近似精度下降。要注意 GL 定义对初值敏感仿真前 N 个周期是预热阶段数据不能作为性能对比依据。4. 参数怎么设计才不翻车阶次、切换增益与边界层的配合4.1 初始参数表和建议范围初次接触分数阶滑模的人最容易犯的错误是把六个参数一把梭全调一遍结果分不清谁起作用。下面这张参数表是建议的初始范围和调整方向参数含义建议初值调整方向alpha分数阶阶次 0~10.5增大更像纯微分减小记忆感更强c滑模面比例系数10增大收敛更快但放大噪声kd分数阶项权重1.0增大滑模面更“柔”但响应变慢k切换增益1.5必须大于扰动上界越小抖振越弱q指数趋近率系数2.0加快到达滑模面过大激起抖动delta边界层厚度0.02增大更平滑但稳态误差增大参数之间的耦合关系是alpha 和 kd 共同决定滑模面的频域特性k 和 q 决定到达阶段的动态delta 决定最后的稳态精度。调参不能朝一个方向猛调要一组一组动。4.2 调参顺序先把 alpha 退化成整数阶再给系统注入分数阶记忆我的调试顺序固定四步这套流程能避免很多玄学问题。第一步把 alpha 设成 0kd 设成 0。这时控制器退化成整数阶 PD 型滑模面σ ė c·e用传统方法把 c、k、q、delta 调到系统稳定且抖振可接受。这一步的意义是建立基线后面所有分数阶效果都要和它对比。第二步固定 alpha0.3从 kd0.5 开始往上加。观察控制量波形如果跟踪误差变小但控制量开始出现高频毛刺说明 kd 太大退回上一步的值。如果误差变化不明显继续加到出效果为止。kd 的作用不是让系统更快而是让滑模面带记忆普通整数阶控制器补不出这个特性。第三步alpha 按 0.1 的步长从 0.3 往 0.6 爬。每加一档跑一次记录误差和控制量抖动幅度。通常会看到某个 alpha 值附近抖振明显下降而误差没有显著恶化这个点就是最优工作点。alpha 超过 0.7 后测量噪声会被放大控制量会重新变毛糙。第四步最后调 delta。delta 从 0.01 往大调每次翻倍观察稳态误差和控制量平滑度。delta 是“后悔药”抖振实在压不下去时用它救场但代价是跟踪精度所以能靠 alpha 解决的问题不要拖到 delta 这里来。4.3 一组典型趋势四个阶次取值下的真实差异以第二节里的二阶对象为例跑完四组 alpha 值后现象大致如下alpha跟踪误差趋势抖振幅度趋势控制量形态0收敛快稳态误差最小明显抖振开关式切换锯齿状0.25略慢明显下降毛刺减少切换频率降低0.5最平衡低波形光滑切换干净0.75响应变钝最低但噪声敏感光滑但有高频微弱噪声这个表是相对趋势不同被控对象的具体数值会变但方向一致alpha 从 0 往 0.5 加切换频率单调下降误差损失很小alpha 继续往 0.9 加噪声问题重新浮现。所以实用区间基本落在 0.2 到 0.6 之间。一个值得注意的现象是 alpha0.5 时误差不一定最小但综合表现最好。这正好说明分数阶滑模的目标不是极致收敛速度而是在动态性能和抖振之间找一个传统整数阶控制器给不了的折中。四旋翼姿态控制这类对执行器磨损敏感的场景这个折中比单纯的误差指标更值钱。5. 分数阶滑模仿真的主要坑现象、原因与解决办法5.1 控制量高频毛刺步长加密后反而更严重现象仿真开始一两秒后控制量上出现密集的高频锯齿把步长从 1e-3 改成 1e-4 后锯齿频率反而更高问题没有消失。原因Oustaloup 滤波器的频带设置越过了仿真采样率的奈奎斯特频率。wh 设成 1000、步长 1e-3 时信号采样率只有 1000HzNyquist 频率 500Hz而滤波器在 1000Hz 附近还有明显增益高频噪声被折叠回低频段表现为锯齿。解决把 wh 压到奈奎斯特频率的一半以下同时保证 wh 高于控制带宽。简单经验是wh π/h再留 2 到 3 倍裕量比如步长 1e-3 时 wh 不要超过 500推荐取 100 到 200。5.2 模型一开始正常几秒后数值爆炸现象前 2 秒跟踪良好随后位置输出快速发散Simulink 报出“singular”或步长骤降。原因多半是 Oustaloup 传函分子分母首项没有归一导致传递函数含直流增益放大或者 Transfer Fcn 模块初始状态默认全 0与被控对象初始速度不匹配瞬态冲击激励出高频模态。解决检查 num_fod 和 den_fod 首项是否都是 1用num num / den(1)做归一化。同时把两个 Transfer Fcn 模块的初始状态设成 0但被控对象积分器初值要和脚本里的 x0 一致。如果模型里有执行器惯性环节也把它的初值设成 0。5.3 分数阶反而让抖振更严重现象alpha 从 0 增大到 0.3 后控制量抖振幅值不降反升执行器频繁饱和。原因alpha 取值的相位效应被忽略了。分数阶偶数和 kd 项在滑模面上叠加后等效成了更高带宽的 PD 控制器kd 太大时高频增益抬升比原来整数阶滑模面更灵敏。解决把 kd 减半再试或者 alpha 退回 0.2 以下。如果抖振仍然明显用低通滤波处理测量速度信号滤波截止频率设到参考频率的 10 倍左右不要一刀切把有用动态滤掉。5.4 系统“很安静”但误差迟迟不收敛现象控制量光滑无抖动但跟踪误差稳定在 0.1 到 0.3 之间怎么调 k 都压不掉。原因delta 边界层太大饱和函数在边界层内相当于线性控制器k 再大也只是把线性增益抬高稳态误差主要被 delta 和模型补偿误差撑着换增益治标不治本。解决把 delta 降到 0.005 以下试一次误差如果明显缩小说明问题出在边界层。更好的做法是保留大 delta但在等价控制项里加入模型补偿的积分修正比如给 u_eq 挂一个慢速积分项。对不熟悉内部逻辑的人直接降 delta 最省事。5.5 长时仿真越跑越慢内存占用持续上升现象仿真时长从 20 秒加到 60 秒后速度明显下降任务管理器里 MATLAB 内存稳步增长。原因用了 GL 离散实现的 MATLAB Functionpersistent 数组保存全部历史数据没有做短记忆截断。每个步长都要对整个历史序列求和时间越长单步计算量越大。解决改用固定窗口长度的短记忆 GL窗口 N 取 100 到 200超出窗口的数据直接丢弃。窗口长度要和对仿真时长做权衡短记忆丢掉的远历史信息对低频段精度有影响正好和 Oustaloup 的低频近似边界对应上。6. 量化验证和进阶怎么证明它真的比整数阶好6.1 用积分误差和控制抖动指标量化性能提升波形对比难免主观建议跑完仿真后用 MATLAB 脚本算两个指标IAE 衡量跟踪精度ISV 衡量抖振强度。IAE 是误差绝对值对时间的积分数值越小跟踪越好ISV 是控制量差分的方差反映控制信号的高频能量数值越小执行器越轻松。% 仿真结果后处理计算 IAE 与 ISV t logsout.tout; y logsout.logsout.get(y).Values.Data; % 位置输出 u logsout.logsout.get(u).Values.Data; % 控制输入 r A*sin(2*pi*f*t); % 参考位置 IAE trapz(t, abs(y(:,1) - r)); % 跟踪误差积分 u_diff diff(u(round(end/2):end)); % 取后半段稳态数据 ISV var(u_diff); % 控制量波动方差 fprintf(IAE %.4f, ISV %.4f\n, IAE, ISV);对比时保持同一对象、同一扰动、同一参考信号只改 alpha。我会把 alpha0 的 IAE 和 ISV 作为基线然后看 alpha0.5 的组合变化IAE 如果只恶化 5% 以内而 ISV 下降 30% 以上这个分数阶改造就是划算的。6.2 下一步让阶次根据误差状态在线调整固定 alpha 已经能带来收益但扰动幅值变化大的场景固定阶次的优势会缩水。一个保守的进阶做法是把 alpha 分档切换误差大时用 alpha0.2 激进一些误差小时切到 alpha0.6 求平滑。在 Simulink 里提前把三个 Oustaloup 模块的传函算好用多路开关根据误差幅值切换输出比在线修改 Transfer Fcn 系数可靠得多避免状态不连续导致突变。玩过几轮分数阶滑模之后我养成的习惯是每次仿真都带着一个“基线对照组”先把 alpha 设回 0 跑通全流程再逐步加阶次。这个习惯在项目交付时很管用因为它能在排查问题时快速区分是模型参数的问题还是分数阶实现的问题省掉大量定位时间。分数阶滑模控制算法带来的价值从来都是「量化对比」之后才能说清楚的事希望帮到你。本文还有配套的精品资源点击获取
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

XAgent 函数调用错误处理机制解析:FunctionCallSchemaError 的抛出、重试与自愈 2026/9/25 3:02:46

XAgent 函数调用错误处理机制解析:FunctionCallSchemaError 的抛出、重试与自愈

AI Agent大模型后端任务调度 【免费下载链接】XAgent An Autonomous LLM Agent for Complex Task Solving 项目地址: https://gitcode.com/gh_mirrors/xa/XAgent 点击查看 免费下载 导读 本篇文章聚焦 XAgent 中负责函数调用(Function Call&#xff09…

阅读更多 →
jc 解析器实战:使用 jc --gpg 将 gpg --with-colons 输出转换为 JSON 2026/9/25 3:02:46

jc 解析器实战:使用 jc --gpg 将 gpg --with-colons 输出转换为 JSON

开发工具 【免费下载链接】jc CLI tool and python library that converts the output of popular command-line tools, file-types, and common strings to JSON, YAML, or Dictionaries. This allows piping of output to tools like jq and simplifying automation scripts.…

阅读更多 →
microduck Policy Playground:为鸭子机器人打造的可视化技能策略试玩空间 2026/9/25 3:02:46

microduck Policy Playground:为鸭子机器人打造的可视化技能策略试玩空间

机器人嵌入式强化学习人工智能智能硬件计算机视觉音视频 【免费下载链接】microduck A Tiny biped duck robot 🦆 项目地址: https://gitcode.com/gh_mirrors/mi/microduck 点击查看 免费下载 导读 microduck 是一个微型双足鸭子机器人项目&#xff0c…

阅读更多 →
机器人人群导航实战:从轨迹预测到强化学习部署指南 2026/9/25 3:02:46

机器人人群导航实战:从轨迹预测到强化学习部署指南

简介:这是一份面向毕业设计、课程设计与期末大作业的机器人人群导航项目,基于深度学习技术解决机器人如何在密集人群中安全自主导航的问题,核心代码以Python为主,适合人工智能、机器人相关专业学生复现与扩展。压缩包共含146个文件…

阅读更多 →
基于Jupyter的糖尿病视网膜病变诊断:从环境搭建到EfficientNet模型微调实践 2026/9/25 3:02:45

基于Jupyter的糖尿病视网膜病变诊断:从环境搭建到EfficientNet模型微调实践

简介:这是一套基于Jupyter完成的糖尿病视网膜疾病诊断毕业设计项目,面向计算机、人工智能、自动化及相关专业学生与从业者,适用于课程设计、毕业设计或深度学习进阶练习。资源包共30个文件,以16个Jupyter notebook为主&#xff0c…

阅读更多 →
本地开发接入Jev模型:TaoToken测试Key的配置与踩坑实践 2026/9/25 3:02:39

本地开发接入Jev模型:TaoToken测试Key的配置与踩坑实践

最近在本地做一个 Jev 接入的小项目,要敲定开发阶段的接入方案,结果卡在一个非常典型的决策上:TaoToken 那边只发测试 Key,正式环境的 Key 暂时拿不到。很多人遇到这种情况,第一反应就是“那怎么搞,没法联调…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉