1.问题描述

2. 推导过程



3. matlab代码

最新版代码

直接采用求微分的方式得到角度,角速度等数值解,速度慢,但是代码少,容易看懂(矩阵看起来真难受)。

以前做的一个博客文章用的是矩阵运算求解出线性方程组的方案,速度快,就是代码多一些。

%**********求解四杆机构的运动学参数***************
%1. 固定参数
l1=100 ;%单位:mm
l2=300;
l3=250;
l4=200;
w1=10.17;% rad/s %定义角度单位换算
hd=pi/180;
jd=180/pi; % 定义符号变量和有关的函数
syms lbd psi1 lbd(psi1)=sqrt(l4*l4+l1*l1-2*l4*l1*cos(pi-psi1)); syms theta1 theta2 theta1(psi1)= acos((l3*l3+lbd(psi1)*lbd(psi1)-l2*l2)/(2*l3*lbd(psi1))); theta2(psi1)=asin((l1*sin(pi-psi1))/lbd(psi1));
%以上得到的结果均为弧度制 % psi3(psi1)=theta1+theta2; % w3(psi1)=diff(psi3,psi1)*w1;
w3(psi1)=(diff(theta1,psi1)+diff(theta2,psi1))*w1; i=1;
psi_1=zeros(1,73);
psi3=zeros(1,73);
w_3=zeros(1,73); %循环求值
for n=0:5:360
%sin ,cos 函数是弧度制单位
psi_1(i)= n;
psi1=n*hd; psi3(i)=theta1(psi1)+theta2(psi1); w_3(i)=w3(psi1); %unit:rad/s psi3(i)=psi3(i)*jd; %psi3转为角度制 i=i+1;
end subplot(2,2,1);
plot(psi_1(:,1:73),psi3(:,1:73),'-b');
title('杆3的角度随\psi_1的变化曲线')
xlim([0 360])
xlabel('\psi_1 /\circ')
ylabel('\psi_3 / \circ')
grid on; subplot(2,2,2);
plot(psi_1(:,1:73),w_3(:,1:73),'-r')
title('杆3的角速度曲线');
xlabel('角度')
xlim([0 360])
ylabel('角速度/rad\cdots^{-1}')
grid on; subplot(2,2,[3 4])
[ax,h1,h2]=plotyy(psi_1,psi3,psi_1,w_3);
% 设置label
d1=get(ax(1),'ylabel');%取出左侧轴的ylabel句柄
set(d1,'string','角度值');%设置ylabel的值 d2=get(ax(2),'ylabel');%取出右侧轴的ylabel句柄
set(d2,'string','速度值');%设置ylabel的值 % 设置图例
legend([h1,h2],'角度','角速度');
%设置坐标轴刻度,范围
set(ax,'Xlim',[0 360],'xtick',[0:10:360])

history version

%**********求解四杆机构的运动学参数***************
%1. 固定参数
l1=100 ;%单位:mm
l2=300;
l3=250;
l4=200;
w1=10.17;% rad/s %定义角度单位换算
hd=pi/180;
jd=180/pi; % 定义符号变量和有关的函数
syms lbd psi1 lbd(psi1)=sqrt(l4*l4+l1*l1-2*l4*l1*cos(pi-psi1)); syms theta1 theta2 theta1(psi1)= acos((l3*l3+lbd(psi1)*lbd(psi1)-l2*l2)/(2*l3*lbd(psi1))); theta2(psi1)=asin((l1*sin(pi-psi1))/lbd(psi1));
%以上得到的结果均为弧度制 i=1;
psi_1=zeros(1,74);
psi3=zeros(1,74);
psi2=zeros(1,74); %循环求值
for n=0:5:360
%sin ,cos 函数是弧度制单位
psi_1(i)= n;
psi1=n*hd; psi3(i)=theta1(psi1)+theta2(psi1); psi2(i)=asin((l3*sin(psi3(i))-l1*sin(psi1))/l2);
psi2(i)=psi2(i)*jd; %弧度制转角度制
psi3(i)=psi3(i)*jd;
i=i+1;
end plot(psi_1(:,1:73),psi3(:,1:73),'-b');
title('\psi_3')
xlim([0 360])
xlabel('\psi_1 /\circle')
ylabel('\psi_1&\psi-2 /\circ')
ylim([-360 360])
grid on;
hold on;
plot(psi_1(:,1:73),psi2(:,1:73),'-.r');

结果-速度图&角位移图

【MATLAB习题】四杆机构的运动学参数求解的更多相关文章

  1. opencv通过dll调用matlab函数,图片作为参数

    [blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数                   前文介绍了如何“csharp通过dll调用opencv函数,图片作为参数”.而在实 ...

  2. flink 批量梯度下降算法线性回归参数求解(Linear Regression with BGD(batch gradient descent) )

    1.线性回归 假设线性函数如下: 假设我们有10个样本x1,y1),(x2,y2).....(x10,y10),求解目标就是根据多个样本求解theta0和theta1的最优值. 什么样的θ最好的呢?最 ...

  3. 机器学习(二):感知机+svm习题 感知机手工推导参数更新 svm手推求解二维坐标超平面直线方程

    作业1: 输入: 训练数据集 \(T = {(x1; y1); (x2; y2),..., (xN; yN)}\) 其中,\(x \in R^n\), \(y \in Y = \{+1, -1\}\) ...

  4. 【matlab】设定函数默认参数

    C++/java/python系列的语言,函数可以有默认值,通常类似如下的形式: funtion_name (param1, param2=default_value, ...) 到了matlab下发 ...

  5. matlab 中“newff” 函数的参数设置

    matlab 中"newff" 函数的使用方法技巧|和各参数的意义 先来一个简单的源程序让大家练习一下: % Here input P and targets T define a ...

  6. Matlab中 awgn 函数输入参数带有‘measured’ 时snr的含义

    MATLAB中awgn 函数可以为输入信号x 添加一定大小的噪声. out = awgn(in,snr,'measured');  是一种常见的使用方法,意思是在添加噪声前先测量一下输入信号的功率,再 ...

  7. matlab中nargin函数输入参数数目

    来源:https://ww2.mathworks.cn/help/matlab/ref/nargin.html?searchHighlight=nargin&s_tid=doc_srchtit ...

  8. Matlab摄像头标定得出的参数保存为xml

    最近在做双摄像头的立体匹配,发现OpenCV定标效果不如MatLab的效果,于是用MatLab标定箱做标定,将得到的结果保存为xml,然后,提供给opencv使用.MatLab标定箱做标定得到的结果如 ...

  9. C# 二元一次方程参数求解

    本文记录了关于求直线斜率及纵截距值的简单方法,只是简单的记录下求解思路,最终还需根据具体项目进行优化. 设直线方程式为:y=kx+b 编程思想: 1.代入y1与x1的值,得到:y1=kx1+b 2.代 ...

  10. MATLAB学习(四)线性方程求解,多项式运算,函数局部最优解

    >> A=[2 1 3;1 3 2];B=[5;10] B = 5 10 >> X=lsqnonneg(A,B) X = 0 2.8571 0.7143 >> A\ ...

随机推荐

  1. 【Python】【爬虫】爬虫问题:requests的content和text

    爬虫问题:requests的content和text 通常来说,text获取的是Unicode编码的文本数据,content获取的是byte类型的二进制数据,比如获取图片本身.PDF文件之类的,可以用 ...

  2. opencv_contrib编译:fatal error: opencv2/xfeatures2d/cuda.hpp: No such file or directory

    在Ubuntu上编译opencv3.4.2源码时,遇到下面的错误,错误1:/home/src/software/opencv-3.4.2/modules/stitching/include/openc ...

  3. git path

    github -> deepin-4090-edd25519-key openl -> deepin-4090-rsa-key gitee -> deepin-4090-dsa-ke ...

  4. 有关主席树的一些 trick

    主席树做题记录. 主席树,即可持久化权值线段树. P3248 [HNOI2016] 树 难爆了这题.题目中会多次把模板树的某个子树放到大树上的某个节点下,我们把这一整个子树看作一个大节点,把模板树.大 ...

  5. 题解:AT_abc385_f [ABC385F] Visible Buildings

    小学二年级就会的基本一次函数知识. 抽象一下题意: 求 \(n\) 个点 \((X_i, H_i)\) 中任意两个点组成的直线的截距的最大值(不小于 \(0\),\(X_i\) 递增). 先说结论:先 ...

  6. WebSocket,IsWebSocketRequest与AspNetWebSocketContext

    asp.net新建一个服务端程序,用来处理链接服务端: 1,新建一个处理程序 .ashx using System; using System.Collections.Generic; using S ...

  7. RSA 小规模演算

    原理 秘钥生成 加解密 解密验证 小规模演算

  8. 一些devops、软件工程的个人感悟

    1.devops不是简单的工具,是思想. (1)devops核心在于快速编译构建.自动测试化.自动部署发布 (2)工具只是辅助手段,无论是Jenkins.腾讯蓝盾等等,甚至是手动bat+bash搭建, ...

  9. DeepSeek V3 两周使用总结

    2024 年 12 月 26 日,杭州深度求索人工智能基础技术研究有限公司发布 DeepSeek-V3 大模型.官方宣称:(1)基于自研的 MoE 模型和 671B 参数,在 14.8T token ...

  10. SourceTree SSH第一次登录需要交互确认的问题

    问题 在SourceTree SSH配置完ssh之后向上提交代码的时候发现: The server's host key is not cached in the registry. You have ...