精华内容
下载资源
问答
  • 基于临界比例度整定PID控制器参数的仿真研究 这篇的内容与上两篇是有一定联系的,也可以参考一下之前两篇加强理解: 用matlab的编程和游动鼠标求二阶传递函数的上升时间、峰值时间、超调量和调节时间 PID...

    这篇文章基本是转自一片论文的,只是论文是用simulink仿真实现,而这里的使用代码实现,并且只是注重实现的方法,对理论分析并没有太多的描述。以下是论文链接,可以相互参考一下:
    基于临界比例度法整定PID控制器参数的仿真研究
    这篇的内容与上两篇是有一定联系的,也可以参考一下之前两篇加强理解:

    1. 用matlab的编程法和游动鼠标法求二阶传递函数的上升时间、峰值时间、超调量和调节时间
    2. PID算法模型分析:基于温度控制

    问题:

    某系统的开环传递函数?0 (?)=1/(?(?+2)(?+4)),试采用临界比例度计算系统的P、PI、PID控制器的参数,并绘制整定后的单位阶跃响应曲线。将阶跃响应曲线导入到MATLAB的工作空间中,在命令窗口绘制该系统的阶跃响应曲线。

    临界比例度法:

    已知传递函数,用纯比例调节控制系统,调节比例度,得到系统等幅振荡的曲线后,即可的到此时的临界比例度 δK 和临界振荡周期 TK,其中:
    δK: 即此时比例度。
    TK: 相邻两个波峰之间的时间间隔。
    注意:只有三阶及三阶以上系统才有可能产生临界振荡,才能使用此方法获取以上参数。

    步骤:

    1. 构造函数,经过初步调节将Kp的值设为24,开始按照4的步长增加Kp的值,得到Kp等于48时,出现等幅振荡,并可计算得到 Tk 为2.2256,如下两图:

    获取临界比例度和临界振荡周期的代码
    调整Kp值时波形的变化
    2. 有得到的数据并根据下表方法可以得到相应的参数:

    控制方法KpKiKd
    P控制δK / 2
    PI控制δK / 2.2Kp / (0.833 × TK)
    PID控制δK / 1.7Kp / (0.5 × TK)0.125 × TK × Kp

    并构建函数如下:
    在这里插入图片描述
    运行可得如下三种情况的阶跃响应图像(曲线中标的点只是用来标识曲线的名字,没有其他特殊的含义),可见,虽然三种调节都有超调量,但是PID调节得到的系统性能参数最好,也就是说,PID调节是最理想的:
    参数整定后的曲线

    添加到工作空间,并在命令行窗口绘制阶跃响应图像

    如下图,我的文件是在作业3中,所以右键-添加到路径-选定的文件夹:

    在这里插入图片描述
    然后便可以在命令行中输入文件名运行代码了,我的文件名是pid_0.m,所以输入如下:
    在这里插入图片描述
    如果以相同的方法从工作空间移除后会出现以下错误:
    在这里插入图片描述

    >>> 完 <<<

    展开全文
  • S参数反演

    千次阅读 热门讨论 2020-11-07 20:09:59
    利用S参数反演提取超材料结构的等效参数 等效介质理论模型—利用S参数反演提取超材料结构的等效参数 S参数反演,即利用等效模型的传输矩阵和S参数求解超材料结构的等效折射率n和等效阻抗Z的过程。本文对等效...

    S参数反演-matlab

    等效介质理论模型—利用S参数反演法提取超材料结构的等效参数

    S参数反演法,即利用等效模型的传输矩阵和S参数求解超材料结构的等效折射率n和等效阻抗Z的过程。本文对等效介质理论模型进行了详细介绍,并提供对应代码。

    超材料的传输矩阵

    超材料结构的传输矩阵函数为:
    在这里插入图片描述
    其中,d 为等效光学活性材料的厚度,n 为折射率,Z 表示阻抗。

    S参数和传输矩阵T

    超材料结构的S参数和传输矩阵T满足下列方程:
    在这里插入图片描述
    利用以上两式,可以得到等效折射率n和相对阻抗的表达式
    在这里插入图片描述
    至此,超材料的等效介电常数与等效磁导率可通过阻抗与折射率进行表征,
    其表达式为:
    在这里插入图片描述
    在这里插入图片描述

    对应代码

    clc;
    clear;
    S11r = importdata('real11.txt'); %导出的S11参数实部
    S11i = importdata('imag11.txt'); %导出的S11参数虚部
    S21r = importdata('real21.txt'); %导出的S21参数实部
    S21i = importdata('imag21.txt'); %导出的S21参数虚部
    real11 = S11r.data;
    imag11 = S11i.data;
    real21 = S21r.data;
    imag21 = S21i.data;
    N = 1001;
    d = 5e-3; %超材料结构的厚度
    c = 3e8;
    for i = 1 : N
        f(i) = real11(i,1);
        s11(i) = real11(i,2) + j * imag11(i,2);
        s21(i) = real21(i,2) + j * imag21(i,2);
    end
    for i = 1 : N
        z1(i) = sqrt(((1+s11(i))^2 - s21(i)^2)./((1-s11(i))^2 - s21(i)^2));
        if real(z1(i))>0
            z(i) = z1(i);
        else
            z(i) = -z1(i);
        end
        kd(i) = d * 2 * pi * f(i) * 1e9/c;
        n1(i) = acos(((1-s11(i))^2 + s21(i)^2)/2/s21(i))/kd(i);
        if imag(n1(i))>0
            n(i) = n1(i);
        else
            n(i) = -n1(i);
        end
        e(i) = n(i)/z(i);
        miu(i) = n(i) * z(i);
    end
    figure %绘图
    plot(f,real(z)); hold on; plot(f,imag(z),'r');
    figure
    plot(f,real(n)); hold on; plot(f,imag(n),'r');
    figure
    plot(f,real(e)); hold on; plot(f,imag(e),'r');
    figure
    plot(f,real(miu)); hold on; plot(f,imag(miu),'r');
    
    

    [1] Chen X, Grzegorczyk T M, Wu B I, et al. Robust method to retrieve the constitutive effective parameters of metamaterials[J]. Physical Review E, 2004, 70(1): 016608.
    [2]张克潜, 李德杰. 微波与光电子学中的电磁理论(第二版). 北京电子工业出版社,
    2001, 110–166.

    展开全文
  • 计算VaR的两种常用方法:参数法(正态VaR和对数正态VaR)和非参数法(历史模拟法),主要使用的函数是scipy.stats的求特定分布分位点的函数ppf,以及np.percentile求样本中的分位数。

    参数法

      正态VaR:假设资产组合的收益率服从正态分布,那么VaR也服从正态分布,VaR=-(μ-Z·σ)×P0,算出来的是loss,如果为负则为收益。μ为资产组合的期望收益率,用往年平均收益率替代;σ为组合收益率的波动率;Z=Φ-1( c )为正态分布的分位数(取正数);P0为组合的价值。证明如下:在这里插入图片描述
      对数正态VaR:假设资产组合的对数收益率服从正态分布,那么VaR服从对数正态分布,VaR=(1-eμ-Z·σ)×P0。可简单证明如下:受到冲击后的价格P=P0(eR),VaR=|P0-P|=|P0(1-eR)|,对数收益率R=ln(P/P0)服从正态分布,那么在此置信水平下的极端收益率为μ-z·σ,代入到R中即得VaR公式。

      注意如果要求%VaR,那么公式中就不用乘P。对数正态VaR的值会比正态VaR要小。

      假定某一投资组合在2018年12月28日(最后一个交易日)的投资组合市值为1亿元,组合中配置的5种金融资产配置为:贵州茅台股票15%,交通银行股票20%,嘉实增强信用基金50%,华夏恒生ETF基金5%,博时标普500ETF基金10%。管理层要求计算持有期分别为1天和10天、置信水平为99%情况下的VaR,同时假定整个投资组合收益率是服从正态分布或对数正态分布。

    data=pd.read_excel('C:/Users/lenovo/Desktop/投资组合.xlsx',index_col=0)
    data
    Out[7]: 
                贵州茅台  交通银行  嘉实增强信用基金  华夏恒生ETF  博时标普500ETF
    日期                                                     
    2015-01-05  202.52  7.05     1.071   1.0955      1.1205
    2015-01-06  197.83  6.90     1.073   1.0860      1.1105
    2015-01-07  192.94  6.76     1.074   1.0964      1.1239
    2015-01-08  191.76  6.53     1.074   1.1042      1.1446
    2015-01-09  190.31  6.50     1.075   1.1075      1.1346
               ...   ...       ...      ...         ...
    2018-12-24  568.00  5.61     1.285   1.4505      1.5116
    2018-12-25  565.79  5.63     1.286   1.4488      1.5116
    2018-12-26  560.08  5.68     1.286   1.4475      1.5814
    2018-12-27  563.00  5.72     1.286   1.4393      1.5963
    2018-12-28  590.01  5.79     1.287   1.4358      1.5885
    R=np.log(data/data.shift(1)).dropna()
    w=np.array([0.15,0.2,0.5,0.05,0.1])
    Rmean=R.mean();Rcov=R.cov()
    Rp=np.sum(R.mean()*w)
    volp=np.sqrt(w@Rcov@w.T)
    print('投资组合的μ={:.6f},σ={:.6f}'.format(Rp,volp))
    投资组合的μ=0.000268,σ=0.006427
    def VaR_norm(miu,sigma,x,P,n):#n参数为持有期,x为置信水平
    	import scipy.stats as st
    	z=abs(st.norm.ppf(q=1-x))#标准正态分布中1-x的概率对应的分位点
    	return -(miu-z*sigma)*P*np.sqrt(n)
    def VaR_lognorm(miu,sigma,x,P,n):
    	import scipy.stats as st
    	z=abs(st.norm.ppf(q=1-x))
    	return (1-np.exp(miu-z*sigma))*P*np.sqrt(n)
    print('99%置信水平下1天的normal VaR为{:.2f},lognormal VaR为{:.2f}'.format(\
    VaR_norm(Rp,volp,0.99,1e8,1),VaR_lognorm(Rp,volp,0.99,1e8,1)))
    99%置信水平下1天的normal VaR为1468366.22,lognormal VaR为1457638.30
    print('99%置信水平下10天的normal VaR为{:.2f},lognormal VaR为{:.2f}'.format(\
    VaR_norm(Rp,volp,0.99,1e8,10),VaR_lognorm(Rp,volp,0.99,1e8,10)))
    99%置信水平下10天的normal VaR为4643381.70,lognormal VaR为4609457.03
    

      以第二个结果为例,在99%的置信水平、持有期为10天的情况下,VaR达到了464.34万元,意味着从理论上来说未来的10个交易日内,有99%的把握认为1亿元的投资组合累计最大亏损不会超过464.34万元。

    非参数法(历史模拟法)

      历史模拟法的思路是将所有样本的收益率或收益额进行排序,根据置信水平找出对应分位数的值(数值小的一端),再取绝对值就是VaR。依然以上述案例为例,用历史模拟法计算持有期分别为1天和10天、置信水平为99%情况下的VaR。

      step1:生成投资组合的日收益序列:

    rp=pd.Series((1e8*R)@w,index=R.index)#投资组合的日收益额
    import matplotlib.pyplot as plt
    from pylab import mpl
    mpl.rcParams['font.sans-serif']=['SimHei']
    mpl.rcParams['axes.unicode_minus']=False
    plt.hist(rp,bins=40,edgecolor='k')
    plt.xlabel('投资组合日收益额')
    plt.ylabel('频数')
    plt.title('投资组合日收益额直方图')
    plt.grid()
    

    在这里插入图片描述
      step2:对投资组合的日收益额序列进行正态性检验,计算投资组合的VaR:

    st.normaltest(rp)
    Out[15]: NormaltestResult(statistic=192.37738470012968, pvalue=1.681828434884396e-42)
    #显然p<0.01,拒绝服从正态分布的原假设,因此用参数法计算VaR可能会产生偏差
    def VaR_daily(a,x):
    	#求a数列第(1-x)%分位的数值的绝对值,默认升序排序
    	return abs(np.percentile(a,(1-x)*100))
    print('99%置信水平下1天的VaR为{:.2f},10天的VaR为{:.2f}'.format(\
    VaR_daily(rp,0.99),VaR_daily(rp,0.99)*np.sqrt(10)))
    
    99%置信水平下1天的VaR为2135730.95,10天的VaR为6753774.29
    

      在99%的置信水平下历史模拟法计算出的10天VaR=675.38万元>正态VaR=464.34万元,可见在本案例中历史模拟法具有对尾部极端风险更强的捕捉能力。

      还有一种改进的参数法叫非参数密度估计(Non-parametric Density Estimation),将损失额直方图的每一根立柱的顶部中点进行连线,那么在线下的区域就可以当做该分布的概率密度函数,这样我们就能根据求出任意置信水平下的VaR,可以解决传统历史模拟法下n个样本最多只能有n个置信水平的问题。
    在这里插入图片描述

    展开全文
  • 机械臂D-H参数法分析

    万次阅读 多人点赞 2019-01-03 23:50:50
    文章目录前言连杆D-H参数法介绍坐标变换矩阵方法总结 前言 笔者在看D-H参数法的时候对此方法的适用性产生了好奇,并对手边的一只五自由度旋转舵机机械手进行了坐标系的建模。为了方便理解画了一个示意图,图省事...

    前言

    笔者在看D-H参数法的时候对此方法的适用性产生了好奇,通过个人构思推导得出传统D-H参数表有时不适用的原因,并相出一种简洁的判断方法,列在文章最末,原理十分简单,欢迎指点。

    本人对手边的一只五自由度旋转舵机机械手进行了坐标系的建模。为了方便理解画了一个示意图,图省事所以画成了圆柱形,各个旋转关节不影响理解即可。

    机械臂在底座上有四节连杆。第一节为相对于底座转动的连杆。第二节相对于第一节的连轴处旋转。第三节相对于第二节的连轴处旋转,第四节相对于第三节的连轴处旋转。第四节末端为机械手工作部件,抓取夹,绕第四节末端的轴转动,由于不关心夹子的开合角度,便简化为一个示意的形状。其中第四节的转轴距第四节形心轴向后偏了距离为h。

    为了看得更清楚,在建模软件中调整一下角度,可看出机械臂大致的运动姿态。

    下面进入正题,第一部分介绍推算D-H参数与坐标轴方向的方法;第二部分介绍一下根据D-H参数得到的坐标变换矩阵;第三部分为我在建模时遇到的问题和自己的分析;第四部分为我总结的步骤。

    连杆D-H参数法介绍

    建立连杆坐标系的基本原则如图所示。规定连杆 i i i的坐标系为 i i i,坐标系 i i i z i z_i zi轴与关节轴 i i i重合,坐标系 的原点位于连杆长度 a i a_i ai与关节轴线 i i i的交点处,坐标系 i i i x i x_i xi轴沿着 a i a_i ai由轴 i i i指向轴 i + 1 i+1 i+1,坐标系 i i i y i y_i yi由右手定则确定。

    如图所示,表示了机器人的两个连杆 i − 1 i-1 i1 i i i,图中的四个参数 α i − 1 \alpha_{i-1} αi1 a i − 1 a_{i-1} ai1 d i d_i di θ i \theta_i θi为连杆 i i i的D-H参数。

    根据蔡自兴老师的《机器人学》第三版第42页的Craig法则:可得出四个参数的计算方法。

    a i − 1 a_{i-1} ai1=沿 x i − 1 x_{i-1} xi1轴,从 z i − 1 z_{i-1} zi1移动到 z i z_i zi的距离。
    α i − 1 \alpha_{i-1} αi1=绕 x i − 1 x_{i-1} xi1轴,从 z i − 1 z_{i-1} zi1旋转到 z i z_i zi的转角。
    d i d_i di=沿 z i z_i zi轴,从 x i − 1 x_{i-1} xi1移动到 x i x_i xi的距离。
    θ i \theta_i θi=沿 z i z_i zi轴,从 x i − 1 x_{i-1} xi1旋转到 x i x_i xi的转角。

    D-H参数法的坐标变换矩阵

    建立相邻连杆的坐标系变换的一般形式,然后将这些变换联系起来,就可以求出最后一个连杆相对于基坐标系的位置和姿态,即运动学方程的矩阵表示,如图所示。连杆变换即坐标系 i − 1 i-1 i1向坐标系 i i i的变换。变换过程可以看成是坐标系 i − 1 i-1 i1经过4次子变换得到了坐标系 i i i,建立3个中间坐标系 R R R Q Q Q P P P。坐标系 i − 1 i-1 i1先绕坐标轴 x i − 1 x_{i-1} xi1旋转 α i − 1 \alpha_{i-1} αi1得到坐标系 R R R;坐标系 R R R沿着轴线 i − 1 i-1 i1和轴线 i i i的公垂线方向移动 a i − 1 a_{i-1} ai1,得到坐标系 Q Q Q;坐标系 Q Q Q绕坐标轴 z Q z_Q zQ旋转 θ i \theta_i θi,得到坐标系 P P P;坐标系 P P P沿着坐标轴 z P z_P zP方向移动 d i d_i di,得到坐标系 i i i

    由坐标系变换法则可知,这四个变换可以用四个齐次变换矩阵表示,分别是 R i − 1 T _{R}^{i-1} T Ri1T Q R T _{Q}^R T QRT P Q T _{P}^Q T PQT i P T _{i}^P T iPT,根据坐标变换的链式法则,坐标系 i − 1 i-1 i1到坐标系 i i i的变换矩阵可以写成
    i − 1 i T = R i − 1 T Q R T P Q T i P T = R o t ( x , α i − 1 ) T r a n s ( x , a i − 1 ) R o t ( z , θ i ) T r a n s ( z , d i ) = [ c o s θ i − s i n θ i 0 a i − 1 s i n θ i c o s α i − 1 c o s θ i c o s α i − 1 − s i n α i − 1 − d i s i n α i − 1 s i n θ i s i n α i − 1 c o s θ i s i n α i − 1 c o s α i − 1 d i c o s α i − 1 0 0 0 1 ] _{i-1}^i T=_{R}^{i-1} T_{Q}^R T_{P}^Q T_{i}^P T =Rot(x,\alpha_{i-1})Trans(x,a_{i-1})Rot(z,\theta_{i})Trans(z,d_i) =\begin{bmatrix} cos\theta_i&amp;-sin\theta_i&amp;0&amp;a_{i-1}\\ sin\theta_icos\alpha_{i-1}&amp;cos\theta_icos\alpha_{i-1}&amp;-sin\alpha_{i-1}&amp;-d_isin\alpha_{i-1}\\ sin\theta_isin\alpha_{i-1}&amp;cos\theta_isin\alpha_{i-1}&amp;cos\alpha_{i-1}&amp;d_icos\alpha_{i-1}\\ 0&amp;0&amp;0&amp;1 \end{bmatrix} i1iT=Ri1TQRTPQTiPT=Rot(x,αi1)Trans(x,ai1)Rot(z,θi)Trans(z,di)=cosθisinθicosαi1sinθisinαi10sinθicosθicosαi1cosθisinαi100sinαi1cosαi10ai1disinαi1dicosαi11

    其中, R o t ( x , α i − 1 ) Rot(x,\alpha_{i-1}) Rot(x,αi1)表示坐标系绕 x x x轴旋转 α i − 1 \alpha_{i-1} αi1 T r a n s ( x , a i − 1 ) Trans(x,a_{i-1}) Trans(x,ai1)表示沿着 x x x轴平移 a i − 1 a_{i-1} ai1

    在得到每个连杆变换后,通过链式法则就可以得到执行机构相对于基坐标系的位姿,即机械臂的运动学方程,可由齐次矩阵 0 5 T _0^5T 05T表示。
    5 0 T = 1 0 T 2 1 T 3 2 T 4 3 T 5 4 T = [ n x o x a x P x n y o y a y P y n z o z a z P z 0 0 0 1 ] _5^0T=_1^0T _2^1T _3^2T _4^3T _5^4T=\begin{bmatrix} n_x&amp;o_x&amp;a_x&amp;P_x\\ n_y&amp;o_y&amp;a_y&amp;P_y\\ n_z&amp;o_z&amp;a_z&amp;P_z\\ 0&amp;0&amp;0&amp;1\\ \end{bmatrix} 50T=10T21T32T43T54T=nxnynz0oxoyoz0axayaz0PxPyPz1

    特殊情况加实例分析

    上述方法中,转轴仅绕参考坐标系即上一个关节的 x x x轴与 z z z轴旋转,移动。其中绕 z z z轴的转角为关节舵机的主动转角,若舵机转角为0, θ \theta θ为0,即仅绕 x x x轴产生转动,转动后的新 x x x轴应当与原 x x x轴平行。

    从图中可以看出,这是一个五自由度的机械臂,所有关节均为转动关节。最底下为底座,将其圆心视为全局坐标系的 O O O点,竖直向上方向为全局坐标系的 z z z正方向,向前的方向为 x x x轴正方向。底座的高度为 l 0 l_0 l0

    在底座上有四节连杆。第一节为相对于底座转动的连杆,长度为 l 1 l_1 l1。第二节相对于第一节的连轴处旋转,长度为 l 2 l_2 l2。第三节相对于第二节的连轴处旋转,长度为 l 3 l_3 l3,第四节相对于第三节的连轴处旋转,长度为 l 4 l_4 l4。第四节末端为机械手工作部件,抓取夹,绕第四节末端的轴转动,其中此转轴距第四节形心轴向后偏了距离为 h h h,在此图中状态看为向全局坐标系x轴负方向偏了 h h h

    根据上述规则,将图中机械臂各关节坐标系一一标出。并得到D-H参数表。

    连杆关节角 θ i / ° \theta_i/° θi/°连杆偏移量 d i / m d_i/m di/m扭转角 α i − 1 / ° \alpha_{i-1}/° αi1/°连杆长度 a i − 1 / m a_{i-1}/m ai1/m
    10 l 0 l_0 l000
    20 l 1 l_1 l1 − 90 ° -90° 90°0
    3-90°00 l 2 l_2 l2
    4000 l 3 l_3 l3
    5-90°0 − 90 ° -90° 90°0

    其中前四个关节的D-H参数都依照规则较为简单地求出,但是第五关节比较奇怪。按照描述 a i − 1 a_{i-1} ai1为沿 x i − 1 x_{i-1} xi1轴,从 z i − 1 z_{i-1} zi1移动到 z i z_i zi的距离。 d i d_i di为沿 z i z_i zi轴,从 x i − 1 x_{i-1} xi1移动到 x i x_{i} xi的距离。

    z 4 z_4 z4移动到 z 5 z_5 z5的距离为h,但是在 x 4 x_4 x4上的分量为0; x 4 x_4 x4 x 5 x_5 x5相交,故 d d d也为 0 0 0
    但这很明显是不可能的,此关节的两个空间尺度 l 4 l_4 l4 h h h都没有用上,那这个关节岂不是变成质点了吗?

    于是我尝试了三种思路得到参数
    (1)不管轴方向的分量,强行将此二值代入,认为:

    连杆关节角 θ i / ° \theta_i/° θi/°连杆偏移量 d i / m d_i/m di/m扭转角 α i − 1 / ° \alpha_{i-1}/° αi1/°连杆长度 a i − 1 / m a_{i-1}/m ai1/m
    5 θ 5 \theta_5 θ5 l 4 l_4 l4 − 90 ° -90° 90° h h h

    并得到变换矩阵 5 4 T _5^4T 54T
    5 4 T = [ c o s θ 5 − s i n θ 5 0 h 0 0 1 l 4 − s i n θ 5 − c o s θ 5 0 0 0 0 0 1 ] _5^4T=\begin{bmatrix} cos\theta_5&amp;-sin\theta_5&amp;0&amp;h\\ 0&amp;0&amp;1&amp;l_4\\ -sin\theta_5&amp;-cos\theta_5&amp;0&amp;0\\ 0&amp;0&amp;0&amp;1 \end{bmatrix} 54T=cosθ50sinθ50sinθ50cosθ500100hl401

    按照机械臂的初始状态, θ 5 = − 90 ° \theta_5=-90° θ5=90°,代入得
    5 4 T = [ 0 1 0 h 0 0 1 l 4 1 0 0 0 0 0 0 1 ] _5^4T=\begin{bmatrix}0&amp;1&amp;0&amp;h\\0&amp;0&amp;1&amp;l_4\\1&amp;0&amp;0&amp;0\\0&amp;0&amp;0&amp;1\end{bmatrix} 54T=001010000100hl401,明显不对

    (2)考虑到坐标系 5 5 5的原点相对于坐标系 4 4 4 x x x方向位移为 l 4 l_4 l4 y y y方向为 − h -h h,猜测为

    连杆关节角 θ i / ° \theta_i/° θi/°连杆偏移量 d i / m d_i/m di/m扭转角 α i − 1 / ° \alpha_{i-1}/° αi1/°连杆长度 a i − 1 / m a_{i-1}/m ai1/m
    5 θ 5 \theta_5 θ5-h-90° l 4 l_4 l4

    可得坐标变换矩阵 5 4 T = [ 0 1 0 l 4 0 0 1 − h 1 0 0 0 0 0 0 1 ] _5^4T=\begin{bmatrix}0&amp;1&amp;0&amp;l_4\\0&amp;0&amp;1&amp;-h\\1&amp;0&amp;0&amp;0\\0&amp;0&amp;0&amp;1\end{bmatrix} 54T=001010000100l4h01,坐标系 5 5 5的原点代入求该点在坐标系 4 4 4对应的坐标: [ 0 1 0 l 4 0 0 1 − h 1 0 0 0 0 0 0 1 ] [ 0 0 0 1 ] = [ l 4 − h 0 1 ] \begin{bmatrix}0&amp;1&amp;0&amp;l_4\\0&amp;0&amp;1&amp;-h\\1&amp;0&amp;0&amp;0\\0&amp;0&amp;0&amp;1\end{bmatrix}\begin{bmatrix}0\\0\\0\\1\end{bmatrix}=\begin{bmatrix}l_4\\-h\\0\\1\end{bmatrix} 001010000100l4h010001=l4h01,这次好像对了,再将点(1,2,3)代入试试 [ 0 1 0 l 4 0 0 1 − h 1 0 0 0 0 0 0 1 ] [ 1 2 3 1 ] = [ 2 + l 4 3 − h 1 1 ] \begin{bmatrix}0&amp;1&amp;0&amp;l_4\\0&amp;0&amp;1&amp;-h\\1&amp;0&amp;0&amp;0\\0&amp;0&amp;0&amp;1\end{bmatrix}\begin{bmatrix}1\\2\\3\\1\end{bmatrix}=\begin{bmatrix}2+l_4\\3-h\\1\\1\end{bmatrix} 001010000100l4h011231=2+l43h11,可观察出在坐标系4中应当为 ( 3 + l 4 , − 1 − h , − 2 ) (3+l_4,-1-h,-2) (3+l4,1h,2),所以此矩阵错误。

    (3) 这是为什么呢,我观察了下,现在它是 − 90 ° , -90°, 90°我把它转回去看看。即绕 z 5 z_5 z5轴正转 90 90 90度。

    可以看出 x 5 x_5 x5 x 4 x_4 x4并非平行,相反地, y 5 y_5 y5 y 4 y_4 y4是平行的。说明坐标系 5 5 5为绕 y y y轴转动了 90 90 90度,然后在 x x x y y y方向产生了位移。这个变换矩阵应当自行计算:
    5 4 T = T r a n s ( y , − h ) T r a n s ( x , l 4 ) R o t ( y , 90 ° ) R o t ( z , θ 5 ) = [ 1 0 0 l 4 0 1 0 − h 0 0 1 0 0 0 0 1 ] [ 0 0 1 0 0 1 0 0 − 1 0 0 0 0 0 0 1 ] [ c o s θ 5 − s i n θ 5 0 0 s i n θ 5 c o s θ 5 0 0 0 0 1 0 0 0 0 1 ] _5^4T=Trans(y,-h)Trans(x,l_4)Rot(y,90°)Rot(z,\theta_5) =\begin{bmatrix}1&amp;0&amp;0&amp;l_4\\0&amp;1&amp;0&amp;-h\\0&amp;0&amp;1&amp;0\\0&amp;0&amp;0&amp;1\end{bmatrix}\begin{bmatrix}0&amp;0&amp;1&amp;0\\0&amp;1&amp;0&amp;0\\-1&amp;0&amp;0&amp;0\\0&amp;0&amp;0&amp;1\end{bmatrix}\begin{bmatrix}cos\theta_5&amp;-sin\theta_5&amp;0&amp;0\\sin\theta_5&amp;cos\theta_5&amp;0&amp;0\\0&amp;0&amp;1&amp;0\\0&amp;0&amp;0&amp;1\end{bmatrix} 54T=Trans(y,h)Trans(x,l4)Rot(y,90°)Rot(z,θ5)=100001000010l4h010010010010000001cosθ5sinθ500sinθ5cosθ50000100001

    = [ 0 0 1 l 4 s i n θ 5 c o s θ 5 0 − h − c o s θ 5 s i n θ 5 0 0 0 0 0 1 ] =\begin{bmatrix}0&amp;0&amp;1&amp;l_4\\sin\theta_5&amp;cos\theta_5&amp;0&amp;-h\\-cos\theta_5&amp;sin\theta_5&amp;0&amp;0\\0&amp;0&amp;0&amp;1\end{bmatrix} =0sinθ5cosθ500cosθ5sinθ501000l4h01

    θ = − 90 ° \theta=-90° θ=90°代入得 5 4 T = [ 0 0 1 l 4 − 1 0 0 − h 0 − 1 0 0 0 0 0 1 ] _5^4T=\begin{bmatrix}0&amp;0&amp;1&amp;l_4\\-1&amp;0&amp;0&amp;-h\\0&amp;-1&amp;0&amp;0\\0&amp;0&amp;0&amp;1\end{bmatrix} 54T=010000101000l4h01,再将点 ( 1 , 2 , 3 ) (1,2,3) (1,2,3)代入试试 [ 0 0 1 l 4 − 1 0 0 − h 0 − 1 0 0 0 0 0 1 ] [ 1 2 3 1 ] = [ 3 + l 4 − 1 − h − 2 1 ] \begin{bmatrix}0&amp;0&amp;1&amp;l_4\\-1&amp;0&amp;0&amp;-h\\0&amp;-1&amp;0&amp;0\\0&amp;0&amp;0&amp;1\end{bmatrix}\begin{bmatrix}1\\2\\3\\1\end{bmatrix}=\begin{bmatrix}3+l_4\\-1-h\\-2\\1\end{bmatrix} 010000101000l4h011231=3+l41h21,正确。

    反复验证,此种方法得到的矩阵应该不存在问题。

    方法总结

    于是就出现了问题,难道传统 D − H D-H DH参数法是错的?那肯定不是,之前的学者们肯定遇到了各种特殊情况,并且给出了解决方法,但我觉得书上描述的针对一般性问题的描述过于复杂,在此,我想出了一种比较快速的方法。

    根据前面的描述,若舵机转角为 0 0 0 θ \theta θ 0 0 0,即仅绕 x x x轴产生转动,转动后的新 x x x轴应当与原 x x x轴平行。

    故,看到机械臂关节后的建立坐标转换矩阵的步骤为:

    (1)根据 C r a i g Craig Craig规则,确定各原点以及 x i , y i , z i x_i,y_i,z_i xi,yi,zi 的方向。并根据规则算出此状态时的角度 θ i 0 \theta_{i0} θi0
    (2)将关节 i i i沿转轴 z i z_i zi旋转 − θ i 0 -\theta_{i0} θi0,得到关节 i i i相对于上一个转角为 0 0 0时的坐标系,观察此时的 x x x轴是否与上一个关节的 x x x轴平行,若平行,则满足前述规则,直接求出 D − H D-H DH参数,并代入矩阵

    [ c o s θ i − s i n θ i 0 a i − 1 s i n θ i c o s α i − 1 c o s θ i c o s α i − 1 − s i n α i − 1 − d i s i n α i − 1 s i n θ i s i n α i − 1 c o s θ i s i n α i − 1 c o s α i − 1 d i c o s α i − 1 0 0 0 1 ] \begin{bmatrix}cos\theta_i&amp;-sin\theta_i&amp;0&amp;a_{i-1}\\ sin\theta_icos\alpha_{i-1}&amp;cos\theta_icos\alpha_{i-1}&amp;-sin\alpha_{i-1}&amp;-d_isin\alpha_{i-1}\\ sin\theta_isin\alpha_{i-1}&amp;cos\theta_isin\alpha_{i-1}&amp;cos\alpha_{i-1}&amp;d_icos\alpha_{i-1}\\ 0&amp;0&amp;0&amp;1\\ \end{bmatrix} cosθisinθicosαi1sinθisinαi10sinθicosθicosαi1cosθisinαi100sinαi1cosαi10ai1disinαi1dicosαi11

    (3)若此时的 x x x轴与上一个关节的 x x x轴不平行,则必定有绕 y y y轴的转动,此时需要观察,另行推算出坐标变换矩阵。一般优先考虑转角,后考虑位移。一般情况下机械臂不会有很奇怪的角度,通过观察可得到沿 x x x y y y轴的转角。若同时具有 x x x y y y轴的转角并且角度不是 90 90 90的倍数,也可根据坐标轴之间的夹角求出转角。

    另:在上面那个机械臂的例子中 x 3 x_3 x3 x 4 x_4 x4也不是平行的,但考虑到此状态的 θ = − 90 ° \theta=-90° θ=90°,将 θ 3 \theta_3 θ3正转 90 ° 90° 90°后, x 3 x_3 x3 x 4 x_4 x4平行。

    2019-01-03 上海

    展开全文
  • 下面如果我们想要知道修改PID的三个参数kp,ki,kd会带来什么效果,只需要在程序中修改即可。为了方便起见,我们建立一个PID的数组,kp,ki,kd每次都取数组的一个值,然后设定一个大循环开始循环仿真。再利用subplot...
  • BigDecimal 多参自定义除 public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode) public static void main(String[] args){ BigDecimal b1 = new BigDecimal(10.005); BigDecimal b2 = ...
  • 上一节我们说到了各种坐标系问题,今天我们先来看看什么是测绘中的七参数和四参数? 1、四参数 两个不同的二维平面直角坐标系之间转换通常使用四参数模型,四参数适合小范围测区(5 km以内)的空间坐标转换。 在该...
  • 如此来说,对于一个有n个连杆的机械臂,要描述每个连杆的位姿(位置+姿态)应该要6个参数才对,那么要描述整个机械臂就需要6n个参数,可为什么DH参数法里面每根连杆只用了四个就描述完全了? 这是因为我...
  • 参数优化:网格搜索

    千次阅读 2020-06-07 21:20:15
    使用Python完成网格搜索在机器学习和深度学习的小案例!
  • MyBatis面试题(2020最新版)

    万次阅读 多人点赞 2019-09-24 16:40:33
    整理好的MyBatis面试题库,史上最全的MyBatis面试题,...MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plai...
  • Matlab仿真PID控制——衰减曲线整定参数

    万次阅读 多人点赞 2019-05-11 17:56:26
    衰减曲线原理 1、过渡过程的衰减曲线 本方法实际是临界比例度一种变形,本方法操作简便,凑试时间较短。我们知道控制系统在用纯比例作用时,在比例度逐步减少的过程中,就会出现图1所示的过渡过程。 ...
  • 参数曲面计算向量

    万次阅读 多人点赞 2015-12-12 17:16:17
    参数曲面计算向量
  • 二、张正友标定 2.1 张正友标定概述 2.2 张正友标定原理 2.2.1 坐标系 2.2.2 内参矩阵计算 2.2.3 外参矩阵计算 2.2.4极大似然估计 2.2.5畸变矫正 2.3 张正友标定算法步骤 三、用张正友标定进行...
  • 参数法和模拟法计算VaR

    千次阅读 2012-01-16 15:24:00
    回顾VaR的定义,为未来收益的累计分布函数,那么 所以,VaR本质上为未来收益的分位点。要计算它,最重要的是... 第一个方向被称为参数法;后一个方向成为模拟法,在实际使用中,又可分为历史模拟法和蒙特卡洛模拟法...
  • 什么参数估计?

    千次阅读 2020-10-20 20:06:51
    参数估计(parameter estimation) 参数估计属于统计推断的范畴,是根据从总体中抽取的样本估计总体分布中包含的未知参数的方法。 统计推断是数理统计研究的核心问题,是指根据样本对总体分布或分布的数字特征等作出...
  • 试采用稳定边界(临界比例度)计算系统P、PI、PID控制器的参数,并绘制整定后系统的单位阶跃响应曲线。 临界比例法参数调试 Simulink界面设置如下: 当时间为1s时,给系统输入一个阶跃信号,幅度为1,通过示波...
  • Holt两参数指数平滑的R实现

    千次阅读 2019-06-25 13:44:48
    对于具有长期趋势的,但是没有季节效应的时间序列,就比较适合利用Holt两参数指数平滑来建模预测。 1.模型简介 Holton两参数指数平滑适用于对含有线性趋势的序列进行修匀。他的基本结构为: 2.建模步骤 (1)...
  • PID控制器参数的工程整定,主要有临界比例度(又称稳定边界)、反应曲线和4:1衰减法。其共同点都是通过实验,然后按照工程经验公式对控制器参数进行整定。然而,无论采用哪一种方法整定所得到的控制参数,都...
  • [Java基础]-- 有参构造方法和无参构造方法

    万次阅读 多人点赞 2016-03-03 15:06:44
    java构造方法:有参构造方法和无参构造方法   一、无参构造方法 ...如果编写一个javaBean时没有添加无参构造方法,那么编译器会自动...顾名思义就是在无参构造方法里面添加了一定的形式参数      
  • 参数方法,半参数方法,非参数方法

    千次阅读 2018-09-13 17:28:53
    amp;amp;tid=2163476&amp;amp;page=1 参数方法,假定概率分布,只来估计少量参数。 半参数方法,对数据分组,每组采用一种概率分布的假设,最后使用混合概率分布。 非参数方...
  • 梯度,共轭梯度,牛顿,拟牛顿,蒙特卡洛、Steepest Descent(SD)、L-BFGS等参数优化方法。 参数优化目标 在机器学习中,在定义好损失函数好,希望通过参数优化,使得损失函数最小。 2 梯度下降(最...
  • DH参数介绍

    万次阅读 多人点赞 2018-05-25 09:39:07
    通常,每一个变换需要6个独立参数来描述坐标系i相对坐标系i-1的关系,3个用来描述位置另外3个用来描述方向。 在1995年,Jacques Denavit 和 Richard Hartenberg 提出了一种系统化的方法来解决这个...
  • 梯度下降更新参数

    千次阅读 2018-04-11 15:00:06
    我们使用梯度下降参数进行更新学习连接
  • DH参数法建立机器人的运动学正解

    万次阅读 多人点赞 2016-04-21 23:32:21
    DH参数法建立机器人的运动学正解  运用DH参数法时坐标系建立的两个约定:  (1)x_i与z_(i-1)垂直  (2)x_i与z_(i-1)相交  坐标系i与坐标系i-1的其次变换矩阵为:  a为两z轴的距离,d为两x轴的距离。 ...
  • 梯度下降算法每次迭代,都会受到学习速率α的影响。如果α较小,则达到收敛所需要迭代的次数就会非常高;如果α较大,则每次迭代可能不会减小代价函数的结果,甚至会超过局部最小值导致无法收敛。...
  • PID参数整定(临界比例度) 步骤(1) 将积分时间常数Ti =∞ ,微分时间常数Td = 0,在闭合的调节系统中将比例度取适当值; 步骤(2)将比例度从大到小地逐渐调节,观察震荡过程。等观察到等幅震荡时,记下临界...
  • 随机梯度下降介绍及其参数讲解

    万次阅读 2020-09-28 17:19:30
    随机梯度下降 算法介绍 简单来说,梯度下降就是从山顶找一条最短的路走到山脚最低的地方。但是因为选择方向的原因,我们找到的的最低点可能不是真正的最低点。如图所示,黑线标注的路线所指的方向并不是真正...
  • 梯度法参数更新与Dropout

    千次阅读 2018-10-25 21:15:43
    机器学习目标函数,一般都是凸函数,什么叫凸函数?限于篇幅,我们不做很深的展开,在这儿我们做一个形象的比喻,凸函数求解问题,可以把目标损失函数想象成一口锅,来找到这个锅的锅底。非常直观的...
  • 一、针孔成像模型涉及到的坐标系由于相机的参数总数相对于某种光学模型而言的,这里用到的比较广泛的光学模型就是小孔成像的模型,下面针对小孔成像的光学模型涉及到的坐标系一一介绍。1、世界坐标系世界坐标系即为...
  • 机器学习 使用三分找最优解参数

    千次阅读 2019-09-09 19:44:13
    这个需要你自己进行实现 ''' def func(x,y): return ''' 下面是四个常量 分别对应了两个参数的上下界 ''' XL = 0 XR = 10000 YL = 0 YR = 10000 ''' x,y 用于保存最终的计算结果,也就是模型的参数,默认初始值是(0...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 662,895
精华内容 265,158
关键字:

参数法什么意思