利用Matlab求解Stewart并联机构位置正解,方法为牛顿迭代法
最近在做毕设,有些设计片段想记录下来。
这次为利用Matlab求解Stewart并联机构位置正解,方法为牛顿迭代法。
具体公式可参考《数值计算方法与算法》科学出版社。
方程组可由位置反解公式建立。
给出具体代码:
(1)fun.m建立方程组
function f=fun(x)
S_cooedinate = [ 295.8040, 50, 0 ;-104.6002, 281.1682, 0 ;-191.1933, 231.1820, 0 ;-191.1933, -231.1820, 0;-104.6002, -281.1682, 0 ;%静平台连接点坐标295.8040, -50, 0 ];
M_coordinate = [ 140.1144 , 142.7163, 0; 53.5387, 192.7008, 0;-193.6531, 49.9844, 0 ;-193.6531, -49.9844, 0 ;53.5387, -192.7008, 0 ;140.1144 , -142.7163, 0 ];%动平台连接点在动坐标系的坐标
length=[570 513 355 384 447 399]; %给定杆1-6的长度,这个长度就是动静平台连接点之间的距离。单位mm
syms X Y Z A B G ;
for i=1:6M_TO_S_coordinate(i,1)= cos(G) * cos(B) * M_coordinate(i, 1) + (sin(A) * sin(B) * cos(G) - cos(A) *sin(G)) * M_coordinate(i, 2) + (cos(G) * sin(B) * cos(G) +sin(A) *sin(G)) * M_coordinate(i, 3) + X;M_TO_S_coordinate(i,2)= cos(B) *sin(G) * M_coordinate(i, 1) + (sin(A) * sin(B) * sin(G) +cos(A) * cos(G)) *M_coordinate(i, 2) +(cos(A) *sin(B) *sin(G) - sin(A) * cos(G)) * M_coordinate(i, 3) +Y;
M_TO_S_coordinate(i,3)= -sin(B) * M_coordinate(i, 1) + sin(A) * cos(B) * M_coordinate(i, 2) + cos(A) *cos(B) * M_coordinate(i, 3) + Z;
end %进行坐标变换,静动坐标系的动平台坐标转换为静坐标
for i=1:6F(i,1)=((M_TO_S_coordinate(i,1)- S_cooedinate(i,1))^2+(M_TO_S_coordinate(i,2)- S_cooedinate(i,2))^2+(M_TO_S_coordinate(i,3)- S_cooedinate(i,3))^2)^0.5-length(i);
end %空间两点距离公式算杆长,建立方程组f= F;
(2)dfun.m求雅可比矩阵
function j=dfun(x)
F=fun();
jacobi=[diff( F,'X') diff( F,'Y') diff( F,'Z') diff( F,'A') diff( F,'B') diff( F,'G')];
j=jacobi;
(3)newton.m用牛顿迭代法进行求解
X0=[20;80;390;0.52;0.41;0.1];%给定初值,不能乱给,会迭代发散,求解失败
esp=0.0001;%精度
E=1;%差值
while abs(E)>espf=double(subs(fun(X0),{'X','Y','Z','A','B','G'},{X0(1,1),X0(2,1),X0(3,1),X0(4,1),X0(5,1),X0(6,1)}));%subs进行变量替换,将符号变量替换相应数值jacobi=double(subs(dfun(X0),{'X','Y','Z','A','B','G'},{X0(1,1),X0(2,1),X0(3,1),X0(4,1),X0(5,1),X0(6,1)}));X=X0-jacobi^-1*f;E=X-X0;X0=X;
end
利用Matlab求解Stewart并联机构位置正解,方法为牛顿迭代法相关推荐
- 利用fsolve函数求解Stewart平台运动学正解
function STEWART_fsolve() format long x=fsolve(@myfun,[0;0;20;0;0;0]) %调用函数 endfunction f=myfun(x) s ...
- 【电磁】基于matlab求解瞬变电磁TEM层状介质正演【含Matlab源码 2164期】
⛄一.获取代码方式 获取代码方式1: 完整代码已上传我的资源:[电磁]基于matlab求解瞬变电磁TEM层状介质正演[含Matlab源码 2164期] 点击上面蓝色字体,直接付费下载,即可. 获取代码 ...
- matlab求解全微分函数,利用MATLAB求解微分方程的方法探索
引言 科学问题和工程问题经常需要求取微分方程的解,MATLAB 的强大数值运算和符号运算能力,能够方便地进行各种解析运算,是方便实用.功能强大的数学软件之一. 1线性微分方程求解 1.1线性常微分方程 ...
- 线性规划问题的数学建模matlab,数学建模讲座之三——利用Matlab求解线性规划问题(linprog函数).ppt...
数学建模讲座之三--利用Matlab求解线性规划问题(linprog函数) 利用Matlab求解线性规划问题 线性规划是一种优化方法,Matlab优化工具箱中有现成函数linprog对如下式描述的LP ...
- 利用matlab求解线性规划,数学建模讲座之三利用matlab求解线性规划问题(linprog函数)...
数学建模讲座之三利用matlab求解线性规划问题(linprog函数) 利用利用 Matlab求解线性规划问题求解线性规划问题河北科技河北科技 大学大学*第第 1页页利用 Matlab求解线性规划问题 ...
- 如何利用matlab求解方程
如何利用matlab求解方程 1. 前言 作为三大数学软件之一,matlab在数值计算方法的能力首屈一指.求解方程是工科学习和工程计算中最基础.最常见的问题.掌握利用现代化工具求解方程的方法对于 ...
- 运筹学matlab实验报告,运筹学上机实验报告 利用Matlab求解整数线性规划
四川师范大学数学与软件科学学院运筹学上机实验报告. 学期:__2011_至__2012__ 第___一__ 学期 2011年11月9日 课程名称:__ 运 筹 学 ________ 专业:_信息与计算 ...
- pythonchar中的拟合方法_在python中利用numpy求解多项式以及多项式拟合的方法
构建一个二阶多项式:x^2 - 4x + 3 多项式求解 >>> p = np.poly1d([1,-4,3]) #二阶多项式系数 >>> p(0) #自变量为0时 ...
- matlab 提取极值,利用matlab 进行极值统计的一个例子——gev 方法.pdf
利用matlab 进行极值统计的一个例子--gev 方法 利用 Matlab 进行极值统计的一个例子--GEV 方法 科研菜鸟 /u/sanshiphy 数据和例子均来自于 S. Coles, An ...
- MATLAB求解非线性方程组的五种方法
MATLAB求解非线性方程组的五种方法 求解线性方程分为两种方法–二分法和迭代法 常见的方法一共有5种 二分法 迭代法 牛顿法 割线法 拟牛顿法 Halley法 使用条件 二分法需要知道两个自变量,分 ...
最新文章
- LeetCode刷题记录14——257. Binary Tree Paths(easy)
- 春招来袭!程序员如何拿下硅谷顶级公司200万年薪?
- 14 类编程题解法总结
- python学习笔记(十)——迭代器和生成器(外加import功能)
- 编写Tesseract的Python扩展
- java语言怎样判断文件夹_JAVA语言之如何判断文件,判断文件夹是否存在的代码...
- 微机原理实验8254计算机钢琴,GitHub - SincereXIA/PianoMFC: 西电微机原理课设项目,键盘电子乐器演奏程序设计(电子琴),MFC...
- python counter模块_python collections模块 计数器(counter)
- 计算机陕西高校保研排名,陕西18所大学2021届保研率排行榜
- html游戏贪吃蛇代码,html5贪吃蛇游戏使用63行代码完美实现
- vscode怎么连接mysql_如何在VSCode连接使用MySQL数据库?
- bzoj 1833: [ZJOI2010]count 数字计数(数字0-9的个数)
- 线性表的顺序存储结构--数组(顺序表)、栈、队列
- win10微软图标点击无反应_Win10任务栏系统图标点击无反应的解决方法
- 手把手带你学习Odoo OWL组件开发(1):认识 OWL
- LeetCode精选TOP面试题(中等篇)【出现率降序】
- open函数返回-1_这 68 个 Python 内置函数请收好!
- 从头撸到脚,SpringBoot 就一篇全搞定!
- Windows资源管理器
- 华为nova青春版是html手机吗,华为Nova青春版这款手机作为新青年良品:麒麟935+4G+64GB+18W快充...
热门文章
- 手把手学习Vue3.0:开发工具WebStorm和Vue模板文件介绍
- Redis与数据库数据同步解决方案
- Premiere 2020安装及Premiere缺失字体处理
- 文电通:助力企业入局“无纸化办公”!
- DNS服务器安装(linux)
- java手机连点脚本_自动连点器app下载 自动连点器(屏幕点击器) for Android v1.0 安卓版 下载-脚本之家...
- 【idea打包jar包+运行jar包】亲测详解
- 随访软件的计算机技术,患者随访管理系统
- 一个简单易用的m3u8下载器,支持下载m3u8链接或文件为mp4或ts格式
- java公寓报修管理系统,基于jsp的公寓报修管理系统-JavaEE实现公寓报修管理系统 - java项目源码...