一、题目

二 代码

注意事项:

1. 选哪些作为符号变量:

syms qk(t)  % 非syms qk  t

2. 如何表示矢量相乘:

Q=[F].*[R]

Q=fomula(Q)

Q=Q(1)+Q(2)

原代码,包括三个文件:1.主程序 2. sym2latex函数 3. 将变量编程字符串函数

1.主程序:

clc;clear;close all;
% 广义坐标
syms x(t) cita1(t) cita2(t)
% 题干信息
syms k1 k2 kt M m L g f(t)
j=1/12*m*L^2
f_=[-f,0]
rm=[x,0]
r1=[x+L/2*sin(cita1) , L/2*cos(cita1)]
r2=[x+L*sin(cita1)-L/2*sin(cita2) , L*cos(cita1)+L/2*cos(cita2)]
rf=[x+L*sin(cita1)-L*sin(cita2) , 0]dx=diff(x,t,1)
dcita1=diff(cita1,t,1)
dcita2=diff(cita2,t,1)
drm=diff(rm,t,1)
dr1=diff(r1,t,1)
dr2=diff(r2,t,1)
drf=diff(rf,t,1)tM=1/2*M*drm.*drm
tM=formula(tM)
tM=tM(1)+tM(2)
tM_l=sym2latex(tM)tm1=1/2*m*dr1.*dr1
tm1=formula(tm1)
tm1=tm1(1)+tm1(2)+ 1/2*j*dcita1^2
tm1_l=sym2latex(tm1)tm2=1/2*m*dr2.*dr2
tm2=formula(tm2)
tm2=tm2(1)+tm2(2) + 1/2*j*dcita2^2
tm2_l=sym2latex(tm2)V = 1/2*k1*x^2 + 1/2*k2*x^2 +1/2*kt*cita1^2+m*g*L/2*(1-cos(cita1)) + m*g*(2*L-L*cos(cita1)-L/2*cos(cita2))
V=simplify(V)
V_l=sym2latex(V)LG=tM + tm1 +tm2 -V
LG=simplify(LG)
LG_l=sym2latex(LG)dwnc=f_.*drf
dwnc=formula(dwnc)
dwnc=dwnc(1)+dwnc(2)
dwnc_l=sym2latex(dwnc)% tm2_x=diff(tm2,x)
% tm2_x_l=sym2latex(tm2_x)
% tm2_dx=diff(tm2,dx)
% tm2_dx_l=sym2latex(tm2_dx)
% tm2_cita1=diff(tm2,cita1)
% tm2_cita1_l=sym2latex(tm2_cita1)
% tm2_dcita1=diff(tm2,dcita1)
% tm2_dcita1_l=sym2latex(tm2_dcita1)
% tm2_cita2=diff(tm2,cita2)
% tm2_cita2_l=sym2latex(tm2_cita2)
% tm2_dcita2=diff(tm2,dcita2)
% tm2_dcita2_l=sym2latex(tm2_dcita2)%% 拉格朗日法
LG_dx=diff(LG,dx,1)
dLG_dx=diff(LG_dx,t,1)
LG_dcita1=diff(LG,dcita1,1)
dLG_dcita1=diff(LG_dcita1,t,1)
LG_dcita2=diff(LG,dcita2,1)
dLG_dcita2=diff(LG_dcita2,t,1)LG_x=diff(LG,x,1)
LG_cita1=diff(LG,cita1,1)
LG_cita2=diff(LG,cita2,1)Q1NC= -f
Q2NC= -f*L*cos(cita1)
Q3NC= f*L*cos(cita2)
% 方程一eq1=Q1NC==simplify(dLG_dx-LG_x)
eq2=Q2NC==simplify(dLG_dcita1-LG_cita1)
eq3=Q3NC==simplify(dLG_dcita2-LG_cita2)
eq1_l=sym2latex(eq1)
eq2_l=sym2latex(eq2)
eq3_l=sym2latex(eq3)

2. sym2latex函数

% function  signal_zuoye1_1
% %% 功率信号的卷积
% clc
% syms   t T tau
% syms w positive
% x1(t)=cos(w*t) + cos(2*w*t);
% x2(t)=sin(3*w*t);
% y(t)=2/T*int(x1(tau)*x2(t-tau),tau,-T/2,T/2);
% y_l=latex(y)
% %第一种方法,将y_l复制到mathyype
% %第二种 matlab text到图片上
% figure;
% t1 = text(0, .6, ['$', 'y =', y_l,'$'], 'interpreter', 'latex'); % 注意此处的表达
% %第三种 函数化,参考https://zhuanlan.zhihu.com/p/159137051
% syms2latex(y)
%
% end
%
%  function LaTeX = sym2latex(poly)
%SYM2LATEX  将多项式转化为LaTeX样式输出LaTeX = latex(poly);name=inputname(1);
% % 设置图幅并不显示所有无关的菜单栏等
figure;
fig = gcf;
fig.Name = name;
fig.NumberTitle= 'off';
% fig.MenuBar = 'None';
fig.Position = [300, 300, 1100, 300];
fig.Color = 'w';
%
% 不显示轴
ax = gca;
ax.XTick = [];
ax.YTick = [];
ax.XAxis.Visible = 'off';
ax.YAxis.Visible = 'off';% 添加text函数t1 = text(0, .6, ['$', name,' =', LaTeX,' $'], 'interpreter', 'latex'); % 注意此处的表达
t1.FontSize = 22;
t1.Color = 'k';
t1.FontWeight = 'Bold';end

3. 字符串函数

function name=getVarName(x)
%返回输入变量的变量名
name=inputname(1);
end 

MATLAB 拉格朗日方程 求三自由度机械相关推荐

  1. 基于matlab的mk2三自由度机械臂轨迹规划及控制器仿真设计

    基于matlab的mk2三自由度机械臂轨迹规划及控制器仿真设计(报告+ppt) 摘 要:本文的研究对象为EEZYbotARM MK2三自由度机械臂,分析了其机械结构,建立D-H参数表,同时在MATLA ...

  2. 用matlab2018解方程,【2018年整理】MATLAB解方程的三个实例

    <[2018年整理]MATLAB解方程的三个实例>由会员分享,可在线阅读,更多相关<[2018年整理]MATLAB解方程的三个实例(4页珍藏版)>请在金锄头文库上搜索. 1.M ...

  3. 使用MATLAB求解方程求根——学习笔记

    使用MATLAB求解方程求根--学习笔记 碎碎念:终于参加完了某比赛,连续大约摸了两天的鱼,就在昨天由于自己的操作失误,亲手将电脑给烧了,这就是上天在暗示我是时候加油为接下来的两场比赛和一个考试努力啦 ...

  4. matlab实现三自由度机械臂旋转

    matlab实现三自由度的机械臂旋转 1 内容与要求 根据表一机械臂长度,以及图一机械臂配置为机械臂开发一个控制器,使其能够执行特定的任务.更具体地说,让机械臂的末端执行器移动到特定的点.项目要求: ...

  5. 三自由度机械臂连续轨迹控制Simulink仿真

    博客搬家到自己搭建的 主页(wonghaotian.com) 啦q(≧▽≦q),大家快来逛逛鸭! 提供完整文件下载(Click to SAVE) DEMO 控制要求 机械臂初始时刻姿态自行确定,经过5 ...

  6. 【详细讲解 附全部代码】【openmv控制三自由度机械臂抓取物品】硬件+软件

    前言: 这份代码很难得的是纯自己写的,虽然openmv梯子都搭成这样了也没什么大技术含量,只有一丢丢细小的逻辑.. 整体代码放在最后了,有需要的自取吧 实现功能 机械臂抓取一定范围内任意位置的物品,将 ...

  7. matlab用解析法求二自由度阻尼系统的自由振动(先求系统状态方程

    %spring2.m-用解析法求二自由度阻尼系统的自由振动(先求系统状态方程组) m1=1;m2=9;k1=4;k2=2;  c1=input('c1=');c2=input('c2=');  %输入 ...

  8. MATLAB Robotics toolbox工具建立三自由度机械臂 借鉴了各个博客主

    clear; clc; %建立机器人模型 %定义连杆的D-H参数 %       theta    d        a        alpha     offset L1=Link([0     ...

  9. 工业机器人控制策略概述-三自由度机械手腕设计机构设计

    工业机器人的分布控制系统采用上.下两级控制器实现系统的全部控制功能.上一级控制器负责整个系统管理以及坐标变换.轨迹插补和系统自诊断等功能:下一级控制器由多个微控制器(MCU)组成,每一个MCU控制一个 ...

最新文章

  1. 回京火车上编码是一种怎样的体验?
  2. Asp.net高级程序设计之服务器控件(4)
  3. javascript实用技巧--数组.
  4. Django进阶Model篇—数据库操作(ORM)
  5. WM_Paint 消息疑问解析
  6. 远程Linux主机安装Oh My Zsh
  7. httpservletrequest 设置请求头_请求和常用对象
  8. js上传视频,预览视频
  9. PHP中面向对象分析设计的经验总结
  10. phpstudy 2016 版本的安装缺少VC9的运行库如何下载,解决!
  11. 工业交换机芯片选择需要注意什么事项呢?
  12. 购买代购的产品算违法吗——看空姐代购被判刑有感
  13. 爱德泰科普 | 了解单模光纤跳线和多模光纤跳线,看着一篇就够了
  14. 【BP数据预测】基于matlab天牛须算法优化BP神经网络数据预测【含Matlab源码 1316期】
  15. 倍福--电子凸轮表绘制
  16. 什么是公考、联考、国考、省考、选调生?
  17. 霍尔效应传感器特殊用法
  18. 西工大里的河南烩面的五一故事(数模、作业、课题组、考试)
  19. 在这冷漠的世界里光光哭哭
  20. 【开源电机驱动】电机建模

热门文章

  1. 控制霍尔编码器电机(有刷)的一个思路
  2. 有人离职时经理的反应是?
  3. 通过单细胞RNA-seq揭示TNBC中的亚克隆异质性和侵袭性疾病状态
  4. c语言斐波那契数列递归数组,c语言斐波那契数列递归法
  5. 【Proteus】PWM脉冲调制信号
  6. 传说中的死机短信,不知是真是假
  7. 用计算机计算四下教案,四年级数学教案——“认识计算器 ”教学设计
  8. js 修改对象的键名
  9. UGnx二次开发的拉伸曲线
  10. Android实现蓝牙耳机连接