作者:我跟孔子一个姓 | 来源:互联网 | 2023-09-24 13:30
近几天没事,开始学习一下Matlab S函数求解二阶微分方程,具体方程表达式如下:
D(q)q¨+C(q,q˙)q˙=τD\left( q \right)\ddot q + C(q,\dot q)\dot q = \tauD(q)q¨+C(q,q˙)q˙=τ (2.1)
τ=Kde˙+Kpe\tau = {K_d}\dot e + {K_p}eτ=Kde˙+Kpe (2.2)
其中,e˙=q˙d−q˙\dot e = {\dot q_d} - \dot qe˙=q˙d−q˙,e=qd−qe = {q_d} - qe=qd−q。qqq实际输出结果,qdq_dqd期望输出的结果。
仿真参数设置如下:
p=[2.90,0.76,0.87,3.04,0.87]Tp=[2.90, \space 0.76, \space 0.87, \space 3.04, \space 0.87]^Tp=[2.90, 0.76, 0.87, 3.04, 0.87]T,q0=[0.0,0.0]Tq_0 = [0.0,\space 0.0]^Tq0=[0.0, 0.0]T,q˙0=[0.0,0.0]T\dot q_0 = [0.0,\space 0.0]^Tq˙0=[0.0, 0.0]T,qd(0)=[1.0,1.0]Tq_d(0) = [1.0,\space 1.0]^Tqd(0)=[1.0, 1.0]T,Kp=diag([100,100])K_p = diag([100, \space 100])Kp=diag([100, 100]),Kd=diag([100,100])K_d = diag([100, \space 100])Kd=diag([100, 100]),D(q)=[p1+p2+2p3cosq2,p2+p3cosq2;p2+p3cosq2,p2]D\left( q \right) = [p_1+p_2+2p_3cosq_2,\space p_2+p_3cosq_2;\space p_2+p_3cosq_2,\space p_2]D(q)=[p1+p2+2p3cosq2, p2+p3cosq2; p2+p3cosq2, p2],C(q,q˙)=[−p3q˙2sinq2,−p3(q˙1+q˙2)sinq2;p3q˙1sinq2,0]C(q,\dot q)=[-p_3\dot q_2 sin q_2,\space -p_3(\dot q_1 + \dot q_2) sin q_2; \space p_3\dot q_1 sin q_2,\space 0]C(q,q˙)=[−p3q˙2sinq2, −p3(q˙1+q˙2)sinq2; p3q˙1sinq2, 0]
编程分析,首先等式(2.1)左右都含有带求解未知数q,所以把等式左右两边都写成S函数求解。等式(2.2)S函数编写分析:左边τ\tauτ当成输出,是个二维向量。右边有两个输入变量q˙,q\dot q,qq˙,q,其中q˙d,qd\dot q_d,q_dq˙d,qd是常数已知。每个变量又都是二维向量,所以S函数的输入数量 4,输出数量 2,并且输出和输入是有关系的直接反馈参数设置1,其他参数默认。
编写等式(2.2)分析,等式可以改写成:D(q)q¨=τ−C(q,q˙)q˙D\left( q \right)\ddot q = \tau - C(q,\dot q)\dot qD(q)q¨=τ−C(q,q˙)q˙,这个一个矩阵求解:可以写成两种形式:q¨=inv(D(q))∗(τ−C(q,q˙)q˙)\ddot q = inv(D\left( q \right))*\left( \tau - C(q,\dot q)\dot q \right)q¨=inv(D(q))∗(τ−C(q,q˙)q˙)或者q¨=(D(q))\(τ−C(q,q˙)q˙)\ddot q = (D\left( q \right)) \backslash \left( \tau - C(q,\dot q)\dot q \right)q¨=(D(q))\(τ−C(q,q˙)q˙)。第二种求解方法比较快并且精度高,推荐第二种方法求解。由于是个二阶微分方程,且每个变量是二维所以S函数的连续状态变量数是 4,输出分别是变量q,q˙q,\dot qq,q˙,所以输出变量数也是4,此处的4个输出会作为等式(2.1)的输入,数量必须相同。输入变量是τ\tauτ,所以输入变量数是 2。由于输出函数sys=mdlOutputs(t,x,u)中,sys = x,x是状态变量,输出和输入没有直接关系,所以直接反馈参数理论上应该设置0,但实际上设置1结果也是正确的,由于能力有限暂时不清楚原因。
由于CSND插入MATLAB代码失败所以,把文件压缩上传到CSDN共大家参考。
https://download.csdn.net/download/cswh876908060/12151665
如有问题或者需要代写,代做,指导,请联系QQ:876908060