自适应控制——仿真实验一 用李雅普诺夫稳定性理论设计自适应规律

  • 一、问题描述
  • 二、问题建模
  • 三、问题求解
  • 附录:实现MATLAB代码
  • 参考书目

一、问题描述

设控制对象的状态方程为
x˙p=Ap(t)xp+bp(t)u(1)\dot{\boldsymbol{x}}_{p}=\boldsymbol{A}_{p}(t) x_{p}+\boldsymbol{b}_{p}(t) u \tag{1} x˙p​=Ap​(t)xp​+bp​(t)u(1)
式中
Ap=[01−6−7],bp=[24](2)\boldsymbol{A}_{p}=\left[\begin{array}{cc} 0 & 1 \\ -6 & -7 \end{array}\right], \quad \boldsymbol{b}_{p}=\left[\begin{array}{l} 2 \\ 4 \end{array}\right] \tag{2} Ap​=[0−6​1−7​],bp​=[24​](2)
参考模型的状态方程为
x˙m=Amxm+bmr(3)\dot{\boldsymbol{x}}_{m}=\boldsymbol{A}_{m} x_{m}+\boldsymbol{b}_{m} r \tag{3} x˙m​=Am​xm​+bm​r(3)
式中
Am=[01−10−5],bm=[12](4)\boldsymbol{A}_{m}=\left[\begin{array}{cc} 0 & 1 \\ -10 & -5 \end{array}\right], \quad \boldsymbol{b}_{m}=\left[\begin{array}{l} 1 \\ 2 \end{array}\right] \tag{4} Am​=[0−10​1−5​],bm​=[12​](4)
用李雅普诺夫稳定性理论设计自适应规律。

二、问题建模

由于控制对象的参数(状态矩阵 Ap\boldsymbol{A}_{p}Ap​ 和控制矩阵 bp\boldsymbol{b}_{p}bp​ )一般是未知的,且无法直接调整。所以为改变控制对象的动态特性,需采用前馈控制加反馈控制。

控制信号 uuu 由前馈信号 KrKrKr 和反馈信号 FxpFx_pFxp​ 组成,即
u=Kr+Fxp(5)u=K r+F \boldsymbol{x}_{p} \tag{5} u=Kr+Fxp​(5)
式中,rrr 为 mmm 维输入向量,xp\boldsymbol{x}_{p}xp​ 为 nnn 维状态向量,KKK 为 m×mm \times mm×m 前馈增益矩阵,FFF 为 m×nm \times nm×n 反馈增益矩阵;具体在本次仿真实验中,输入向量维度 m=1m=1m=1,状态向量维度 n=2n=2n=2。

将(5)式代入控制对象的状态方程,可得
x˙p=[Ap(t)+bp(t)F]xp+bp(t)Kr(6)\dot{\boldsymbol{x}}_{p}=\left[\boldsymbol{A}_{p}(t)+\boldsymbol{b}_{p}(t) F\right] \boldsymbol{x}_{p}+\boldsymbol{b}_{p}(t) K r \tag{6} x˙p​=[Ap​(t)+bp​(t)F]xp​+bp​(t)Kr(6)
设系统的广义状态误差向量为
e=xm−xp(7)\boldsymbol{e}=\boldsymbol{x}_{m}-\boldsymbol{x}_{p} \tag{7} e=xm​−xp​(7)
由参考模型的状态方程,结合(6)式及(7)式,可得:
e˙=Ame+(Am−Ap−bpF)xp+(bm−bpK)r(8)\dot{\boldsymbol{e}}=\boldsymbol{A}_{m} \boldsymbol{e}+\left(\boldsymbol{A}_{m}-\boldsymbol{A}_{p}-\boldsymbol{b}_{p} F\right) \boldsymbol{x}_{p}+\left(\boldsymbol{b}_{m}-\boldsymbol{b}_{p} K\right) r \tag{8} e˙=Am​e+(Am​−Ap​−bp​F)xp​+(bm​−bp​K)r(8)
在理想情况,即 e→0e \rightarrow 0e→0 的情况下,(8)式等号右端后两项应等于0。设前馈增益矩阵 KKK 和反馈增益矩阵 FFF 的理想值分别为 Kˉ\bar{K}Kˉ 和 Fˉ\bar{F}Fˉ。

则最终可将(8)式写成
e˙=Ame+bmKˉ−1Φxp+bmKˉ−1Ψr(9)\dot{\boldsymbol{e}}=\boldsymbol{A}_{m} \boldsymbol{e}+\boldsymbol{b}_{m} \bar{K}^{-1} \Phi \boldsymbol{x}_{p}+\boldsymbol{b}_{m} \bar{K}^{-1} \Psi r \tag{9} e˙=Am​e+bm​Kˉ−1Φxp​+bm​Kˉ−1Ψr(9)
式中,Φ=Fˉ−F\Phi=\bar{F}-FΦ=Fˉ−F 为 m×nm \times nm×n 矩阵,Ψ=Kˉ−K\Psi=\bar{K}-KΨ=Kˉ−K 为 m×mm \times mm×m 矩阵。

选取李雅普诺夫函数为:
V=12[eTPe+tr⁡(ΦTΓ1−1Φ+ΨTΓ2−1Ψ)](10)V=\frac{1}{2}\left[\boldsymbol{e}^{T} \boldsymbol{P} \boldsymbol{e}+\operatorname{tr}\left(\Phi^{T} \Gamma_{1}^{-1} \Phi+\Psi^{T} \Gamma_{2}^{-1} \Psi\right)\right] \tag{10} V=21​[eTPe+tr(ΦTΓ1−1​Φ+ΨTΓ2−1​Ψ)](10)
式中,P\boldsymbol{P}P 为 n×nn \times nn×n 维正定对称阵,Γ1\Gamma_{1}Γ1​ 和 Γ2\Gamma_{2}Γ2​ 均为 m×mm \times mm×m 维正定对称阵;符号 tr⁡\operatorname{tr}tr 表示矩阵的迹。

求(10)式对时间的导数,得
V˙=12[e˙Pe+eTPe˙+tr⁡(Φ˙TΓ1−1Φ+ΦTΓ1−1Φ˙+Ψ˙TΓ2−1Ψ+ΨTΓ2−1Ψ˙)](11)\dot{V}=\frac{1}{2}\left[\dot{\boldsymbol{e}} \boldsymbol{P} \boldsymbol{e}+\boldsymbol{e}^{T} \boldsymbol{P} \dot{\boldsymbol{e}}+\operatorname{tr}\left(\dot{\Phi}^{T} \Gamma_{1}^{-1} \Phi+\Phi^{T} \Gamma_{1}^{-1} \dot{\Phi}+\dot{\Psi}^{T} \Gamma_{2}^{-1} \Psi+\Psi^{T} \Gamma_{2}^{-1} \dot{\Psi}\right)\right] \tag{11} V˙=21​[e˙Pe+eTPe˙+tr(Φ˙TΓ1−1​Φ+ΦTΓ1−1​Φ˙+Ψ˙TΓ2−1​Ψ+ΨTΓ2−1​Ψ˙)](11)
将(9)式代入(11)式,再根据矩阵迹的性质,于是有
V˙=12eT(PAm+AmTP)e+tr⁡(Φ˙TΓ1−1Φ+xpeTPbmKˉ−1Φ)+tr⁡(Ψ˙TΓ2−1Ψ+reTPbmKˉ−1Ψ)(12)\begin{aligned} \dot{V}=&\frac{1}{2} \boldsymbol{e}^{T}\left(\boldsymbol{P} \boldsymbol{A}_{m}+\boldsymbol{A}_{m}^{\boldsymbol{T}} \boldsymbol{P}\right) \boldsymbol{e}+\operatorname{tr}\left(\dot{\Phi}^{T} \Gamma_{1}^{-1} \Phi+\boldsymbol{x}_{p} \boldsymbol{e}^{T} \boldsymbol{P} \boldsymbol{b}_{m} \bar{K}^{-1} \Phi\right) \\ &+\operatorname{tr}\left(\dot{\Psi}^{T} \Gamma_{2}^{-1} \Psi+r \boldsymbol{e}^{T} \boldsymbol{P} \boldsymbol{b}_{m} \bar{K}^{-1} \Psi\right) \end{aligned} \tag{12} V˙=​21​eT(PAm​+AmT​P)e+tr(Φ˙TΓ1−1​Φ+xp​eTPbm​Kˉ−1Φ)+tr(Ψ˙TΓ2−1​Ψ+reTPbm​Kˉ−1Ψ)​(12)
为满足李雅普诺夫第二法,需保证(12)式是负定的,对应的情况为(12)式第一项是负定的,后两项都为零。

因为 Am\boldsymbol{A}_{m}Am​ 为稳定矩阵,则可选定正定对称阵 QQQ,使 PAm+AmTP=−Q\boldsymbol{P} \boldsymbol{A}_{m}+\boldsymbol{A}_{m}^{\boldsymbol{T}} \boldsymbol{P}=-\boldsymbol{Q}PAm​+AmT​P=−Q 成立。同时根据上述对应情况,Φ\PhiΦ 和 Ψ\PsiΨ 的选择如下:
Φ˙=−Γ1(bmKˉ−1)TPexpTΨ˙=−Γ2(bmKˉ−1)TPerT(13)\begin{aligned} \dot{\Phi}&=-\Gamma_{1}\left(\boldsymbol{b}_{m} \bar{K}^{-1}\right)^{T} \boldsymbol{P} \boldsymbol{e} \boldsymbol{x}_{p}^{T} \\ \dot{\Psi}&=-\Gamma_{2}\left(\boldsymbol{b}_{m} \bar{K}^{-1}\right)^{T} \boldsymbol{P} \boldsymbol{e} r^{T} \end{aligned} \tag{13} Φ˙Ψ˙​=−Γ1​(bm​Kˉ−1)TPexpT​=−Γ2​(bm​Kˉ−1)TPerT​(13)
当 Ap\boldsymbol{A}_{p}Ap​ 和 bp\boldsymbol{b}_{p}bp​ 为常值或缓慢变化时,可得自适应调节规律:
F(t)=∫0tΓ1(bmKˉ−1)TPexpTdτ+F(0)K(t)=∫0tΓ2(bmKˉ−1)TPerdτ+K(0)(14)\begin{aligned} F(t)&=\int_{0}^{t} \Gamma_{1}\left(\boldsymbol{b}_{m} \bar{K}^{-1}\right)^{T} \boldsymbol{P e} \boldsymbol{x}_{p}^{T} d \tau+F(0) \\ K(t)&=\int_{0}^{t} \Gamma_{2}\left(\boldsymbol{b}_{m} \bar{K}^{-1}\right)^{T} \boldsymbol{P e} r d \tau+K(0) \end{aligned} \tag{14} F(t)K(t)​=∫0t​Γ1​(bm​Kˉ−1)TPexpT​dτ+F(0)=∫0t​Γ2​(bm​Kˉ−1)TPerdτ+K(0)​(14)
需额外说明的一点是,按上述步骤推导得到的自适应调节规律要求 xp\boldsymbol{x}_{p}xp​ 与 rrr 线性独立。两者独立的条件是 r(t)r(t)r(t) 为具有一定频率的方波信号或为 qqq 个不同频率的正弦信号组成的分段连续信号,其中 q>n/2q>n / 2q>n/2 或 q>(n−1)/2q>(n-1) / 2q>(n−1)/2。

三、问题求解

由上述推导可知,为采取李雅普诺夫稳定性理论设计该MRACS,需引入前馈增益矩阵 KKK 和反馈增益矩阵 FFF,设计的目标是确定 KKK 和 FFF 的系数。

在引入两个增益矩阵进行自适应控制后,可调系统的状态方程变为:
x˙p=[Ap(t)+bp(t)F]xp+bp(t)Kr(15)\dot{\boldsymbol{x}}_{p}=\left[\boldsymbol{A}_{p}(t)+\boldsymbol{b}_{p}(t) F\right] \boldsymbol{x}_{p}+\boldsymbol{b}_{p}(t) K r \tag{15} x˙p​=[Ap​(t)+bp​(t)F]xp​+bp​(t)Kr(15)
由之前的推导可知,(14)式中的 bmKˉ−1\boldsymbol{b}_{m} \bar{K}^{-1}bm​Kˉ−1 与 bp\boldsymbol{b}_{p}bp​ 的关系如下:
bmKˉ−1=bp=[24](16)\boldsymbol{b}_{m} \bar{K}^{-1}=\boldsymbol{b}_{p}=\left[\begin{array}{l} 2 \\ 4 \end{array}\right] \tag{16} bm​Kˉ−1=bp​=[24​](16)
选取(14)式中的部分自适应参数如下:
P=[3111],Γ1=Γ2=1(17)\boldsymbol{P}=\left[\begin{array}{ll} 3 & 1 \\ 1 & 1 \end{array}\right], \quad \Gamma_{1}=\Gamma_{2}=1 \tag{17} P=[31​11​],Γ1​=Γ2​=1(17)
所以可得最终的自适应规律:
F(t)=∫0t[24][3111]expTdτ+F(0)K(t)=∫0t[24][3111]erdτ+K(0)(18)\begin{aligned} F(t)&=\int_{0}^{t}\left[\begin{array}{ll} 2 & 4 \end{array}\right]\left[\begin{array}{ll} 3 & 1 \\ 1 & 1 \end{array}\right] \boldsymbol{e} \boldsymbol{x}_{p}^{T} d \tau+F(0) \\ K(t)&=\int_{0}^{t}\left[\begin{array}{ll} 2 & 4 \end{array}\right]\left[\begin{array}{ll} 3 & 1 \\ 1 & 1 \end{array}\right] \boldsymbol{e r d} \tau+K(0) \end{aligned} \tag{18} F(t)K(t)​=∫0t​[2​4​][31​11​]expT​dτ+F(0)=∫0t​[2​4​][31​11​]erdτ+K(0)​(18)
下将上述连续自适应规律进行离散化,用于实际的数值仿真实验。设数值积分步长为 hhh,则各时刻的参考模型状态向量及控制对象状态向量如下:
xm(k+1)=xm(k)+h[Am(k)xm(k)+Bm(k)r(k)]xp(k+1)=xp(k)+h[Ap(k)xp(k)+Bp(k)u(k)](19)\begin{aligned} \boldsymbol{x}_{m}(k+1)&=\boldsymbol{x}_{m}(k)+h\left[\boldsymbol{A}_{m}(k) \boldsymbol{x}_{m}(k)+\boldsymbol{B}_{m}(k) r(k)\right] \\ \boldsymbol{x}_{p}(k+1)&=\boldsymbol{x}_{p}(k)+h\left[\boldsymbol{A}_{p}(k) \boldsymbol{x}_{p}(k)+\boldsymbol{B}_{p}(k) u(k)\right] \end{aligned} \tag{19} xm​(k+1)xp​(k+1)​=xm​(k)+h[Am​(k)xm​(k)+Bm​(k)r(k)]=xp​(k)+h[Ap​(k)xp​(k)+Bp​(k)u(k)]​(19)
由于上述推导得到的自适应控制规律要求 xp\boldsymbol{x}_{p}xp​ 与 rrr 线性独立,即要求 r(t)r(t)r(t) 为具有一定频率的方波信号或为 qqq 个不同频率的正弦信号组成的分段连续信号,其中q>n/2q>n / 2q>n/2 或 q>(n−1)/2q>(n-1) / 2q>(n−1)/2。在本次实验中,n=2n=2n=2,对应就要求 q>1q>1q>1,所以本次实验中选取由3个不同频率的正弦信号组成的分段连续信号,具体的输入信号的形式如下:
r(k)=sin⁡(0.01πk)+4sin⁡(0.2πk)+sin⁡(πk)(20)r(k)=\sin (0.01 \pi k)+4 \sin (0.2 \pi k)+\sin (\pi k) \tag{20} r(k)=sin(0.01πk)+4sin(0.2πk)+sin(πk)(20)
我们设计自适应规律时引入的控制信号 uuu 的离散化形式如下:
u(k)=K(k)r(k)+F(k)xp(k)(21)u(k)=K(k) r(k)+F(k) \boldsymbol{x}_{p}(k) \tag{21} u(k)=K(k)r(k)+F(k)xp​(k)(21)
最终,还需将自适应规律离散化:
F(k)=h⋅∑j=0kbpTPe(k)(xp(k))T+F(0)K(k)=h⋅∑j=0kbpTPe(k)r(k)+K(0)(22)\begin{aligned} F(k)&=h \cdot \sum_{j=0}^{k} \boldsymbol{b}_{p}^{T} \boldsymbol{P} \boldsymbol{e}(k)\left(\boldsymbol{x}_{p}(k)\right)^{T}+F(0) \\ K(k)&=h \cdot \sum_{j=0}^{k} \boldsymbol{b}_{p}^{T} \boldsymbol{P} \boldsymbol{e}(k) r(k)+K(0) \end{aligned} \tag{22} F(k)K(k)​=h⋅j=0∑k​bpT​Pe(k)(xp​(k))T+F(0)=h⋅j=0∑k​bpT​Pe(k)r(k)+K(0)​(22)
在推导出全部的自适应规律并对相应规律进行离散化后,通过MATLAB进行了相关的仿真实验。

可以得到2个维度的状态向量的参考模型值与可调系统值的情况如下:

图1. 状态向量的参考模型值与可调系统值

可以看到,可调系统并没有很好的跟踪参考模型,这是由于在该例中不存在最优匹配。

附录:实现MATLAB代码

% 课本习题3.4-用李雅普诺夫稳定性理论设计自适应规律
clear, clc;
close all;h=0.01;L=100/h;     % 数值积分步长和仿真步数
% 可调系统的系数矩阵
Ap = [0 1;-6 -7];
Bp = [2; 4];
% 参考模型的系数矩阵
Am = [0 1;-10 -5];
Bm = [1; 2];
% n为行向量维数、m为列向量维数,Bp是n*m的矩阵
n = size(Bp, 1);
m = size(Bp, 2);P = [3 1;1 1];              % 经计算得到的用于自适应规律的正定对称矩阵% 设定所有参数的初始值
yr0 = zeros(m, 1);
xp0 = zeros(n, 1);
xm0 = zeros(n, 1);
u0 = zeros(m, 1);
e0 = zeros(n, 1);
F0 = zeros(m, n);           % 反馈增益矩阵初始值
K0 = zeros(m, m);           % 前馈增益矩阵初始值% 初始分配参数空间
time = zeros(1, L);         % 用于记录仿真的时刻,对应绘图的横轴
yr = zeros(m, L);           % 输入信号(L个m维向量)
xp = zeros(n, L);           % 可调系统的状态向量(L个n维向量)
xm = zeros(n, L);           % 参考模型的状态向量(L个n维向量)
u = zeros(m, L);            % 控制信号(L个m维向量)
e = zeros(n, L);            % 系统的广义状态误差向量(L个n维向量)for k = 1:Ltime(k) = k*h;% 输入信号yr(k) = 1*sin(0.01*pi*time(k))+4*sin(0.2*pi*time(k))+sin(1*pi*time(k));xp(:,k) = xp0+h*(Ap*xp0+Bp*u0);     % 计算xpxm(:,k) = xm0+h*(Am*xm0+Bm*yr0);    % 计算xme(:,k) = xm(:,k)-xp(:,k);           % e=xm-xp% 代入F和K的自适应控制规律F = F0+h*(Bp'*P*e0*xp0');K = K0+h*(Bp'*P*e0*yr0);% 控制信号u=K*r+F*xp(K是前馈增益矩阵,F是反馈增益矩阵)u(:,k) = K*yr(k)+F*xp(:,k);% 将本轮求解得到的参数赋值给参数初始值,方便下一轮迭代使用yr0 = yr(:,k);u0 = u(:,k);e0 = e(:,k);xp0 = xp(:,k);xm0 = xm(:,k);F0 = F;K0 = K;
endsubplot(2,1,1);
plot(time, xm(1,:), 'Color', 'b', 'LineWidth', 0.9);
hold on
plot(time, xp(1,:), 'Color', 'r', 'LineStyle', '--', 'LineWidth', 1.1);
xlabel('t');
ylabel('x_m_1(t)、x_p_1(t)');
legend('x_m_1(t)','x_p_1(t)');
hold off
subplot(2,1,2);
plot(time, xm(2,:), 'Color', 'b', 'LineWidth', 0.9)
hold on
plot(time, xp(2,:), 'Color', 'r', 'LineStyle', '--', 'LineWidth', 1.1)
xlabel('t');
ylabel('x_m_2(t)、x_p_2(t)');
legend('x_m_2(t)', 'x_p_2(t)');
hold off

参考书目

李言俊, 张科. 自适应控制理论及应用[M]. 西北工业大学出版社, 2005.

自适应控制——仿真实验一 用李雅普诺夫稳定性理论设计自适应规律相关推荐

  1. 自适应控制——仿真实验二 用Narendra方案设计模型参考自适应系统

    自适应控制--仿真实验二 用Narendra方案设计模型参考自适应系统 一.问题描述 二.问题建模 三.问题求解 附录:实现MATLAB代码 参考书目 一.问题描述 设控制对象的传递函数为 W p ( ...

  2. 自适应控制——仿真实验三 用超稳定性理论设计模型参考自适应系统

    自适应控制--仿真实验三 用超稳定性理论设计模型参考自适应系统 一.问题描述 二.问题建模 三.问题求解 参考书目 一.问题描述 设控制对象的传递函数为 W p ( s ) = k 1 T 1 2 s ...

  3. 李雅普诺夫稳定性判别方法

    (6条消息) 现代控制理论(4)--李雅普诺夫稳定性理论_wang7301的博客-CSDN博客_李雅普诺夫稳定性

  4. 2014、2015年国家级虚拟仿真实验教学中心入选名单

    2015年国家级虚拟仿真实验教学中心入选名单 序号 学校名称 中心名称 1 北京大学 考古虚拟仿真实验教学中心 2 清华大学 自动化系统虚拟仿真实验教学中心 3 北京交通大学 经济管理虚拟仿真实验教学 ...

  5. 自适应控制相关的一些MATLAB(Simulink)仿真 基于liapunov稳定性理论的自适应控制

    自适应控制相关的一些MATLAB(Simulink)仿真,包含: 1.基于liapunov稳定性理论的自适应控制 2.基于Narendra方案的自适应控制 3.基于超稳定性(有/无状态变量滤波器)的自 ...

  6. 多智能体系统MASs,编队控制,自适应理论,基于干扰观测器的控制DOBC,Matlab数值仿真实验

    61.多智能体系统MASs,编队控制,自适应理论,基于干扰观测器的控制DOBC,Matlab数值仿真实验 ID:561999679279244881

  7. 微分环节的matlab仿真,典型环节的MATLAB仿真 实验二.doc

    典型环节的MATLAB仿真 实验二 实验六① 典型环节的MATLAB仿真 实验内容 1.按下列各典型环节的传递函数,建立相应的SIMULINK仿真模型,观察并记录其单位阶跃响应波形. ① 比例环节 S ...

  8. 计算机模拟合理用药,药学实训与虚拟仿真实验中心

    药学是研究药物研发.制备.使用和管理等内容的一门科学,药学人才的培养不仅直接关系到人民身体健康,而且也与国家生物医药新兴产业的发展息息相关.药学实训中心是集药学专业人才创新能力培养.教师开展科研.开展 ...

  9. 对示波器测量正弦波幅值和相位仿真实验

    在昨天博文 使用数字示波器DS6104测量交流信号的幅值和相位 中对于使用示波器测量正弦交流信号的幅值和相位进行了分析和实验研究.但是对测量出的幅值和相位结果中的误差随着示波器的时基( time ba ...

  10. 系统仿真基础与计算机实现,计算机综合仿真实验系统的研究与开发

    摘要: 计算机仿真实验系统是实验教学的理想平台.目前,我国高校因扩招而出现实验教学与理论教学比例失衡的问题,且现有自控原理实验设备已不能满足过程控制仿真要求.针对这一现状,本文在对国内外仿真实验室建设 ...

最新文章

  1. hdu4277 DFS+SET
  2. ProtoBuf使用指南(C++)
  3. 快速排序算法_基于位运算的快速排序算法
  4. linux系统执行crontab定时任务 涉及redis-cli报错:/bin/sh: redis-cli:command not found
  5. JavaFX逆运动学库2.0
  6. mysql 测试数据的脚本_Mysql脚本 生成测试数据
  7. Python基础(6)--条件、循环
  8. 通俗易懂的语言解释下股票、基金、证券、债券、信托、期货、国债、外汇?
  9. LINUX下载编译OpenAL Soft
  10. python串口调试助手_python 串口调试工具源码
  11. 中国居民人均财富36.6万元,你达标了吗?
  12. 2018/7/9日~年中总结
  13. 电瓶升级问题:在本节最后一个electric_car.py版本中,给Battery类添加一个名为upgrade_battery()的方法。这个方法检查电瓶容量,如果它不是85,就将它设置为85。
  14. 结构思考力-有逻辑的表达,有结构的思考
  15. HTML中使背景图片自适应浏览器大小
  16. 使用ffmpeg对mp3格式的音频文件类型转换、截取及合并
  17. 抽奖活动的高可用、高并发优化
  18. Spawn service failed. Exiting. 的处理方法
  19. 逻辑回归(Logistic Regression)原理详细总结
  20. spi转串口 linux驱动,RT_Thread WK2124 SPI转串口芯片驱动软件包

热门文章

  1. 计算机360u盘删除,怎么关闭360U盘小助手
  2. WebService的知识总结(一)
  3. Android权限管理--权限类型
  4. 荣耀路由2 虚拟服务器,荣耀路由器2恢复出厂设置的两种方法
  5. VS2012+ArcGIS Engine10.2安装教程
  6. linux or unix vi编辑器常用命令
  7. FishC笔记—18 讲 函数:灵活即强大
  8. Xcode 9以下(xip) 官方直接下载地址(离线下载)
  9. acad.exe 中的 0x25c70fc2 (???.arx) 处最可能的异常: 0xC0000005: 读取位置 0x0000009c 时发生访问冲突
  10. C语言练习:hackerrank十五关