首页 > 其他分享 >Matlab:四杆机构函数

Matlab:四杆机构函数

时间:2023-03-11 21:14:26浏览次数:45  
标签:函数 title text ylabel xlabel 四杆 n1 theta Matlab

function [theta,omega,alpha]=crank_rocker(theta1,omega1,alpha1,l1,l2,l3,l4)
% 1. 计算从动件的角位移
L=sqrt(l4*l4+l1*l1-2*l1*l4*cos(theta1));
phi=asin((l1./L)*sin(theta1));
beta=acos((-l2*l2+l3*l3+L*L)/(2*l3*L));
if beta<0
    beta=beta+pi;
end
theta3=pi-phi-beta; % theta3 表示杆3转过角度
theta2=asin((l3*sin(theta3)-l1*sin(theta1))/l2);
% theta2 表示杆2转过角度
theta=[theta2;theta3] ;
% 2. 计算从动件的角速度
A=[-l2*sin(theta2), l3*sin(theta3); % 机构从动件的位置参数矩阵
    l2*cos(theta2), -l3*cos(theta3)];
B=[l1*sin(theta1); -l1*cos(theta1)]; % 机构原动件的位置参数列阵
omega=A\(omega1*B); % 机构从动件的速度列阵
omega2=omega(1);
omega3=omega(2);
% 3. 计算从动件的角加速度
A=[-l2*sin(theta2), l3*sin(theta3); l2*cos(theta2), -l3*cos(theta3)];
At=[-omega2*l2*cos(theta2), omega3*l3*cos(theta3); -omega2*l2*sin(theta2), omega3*l3*sin(theta3)];
B=[l1*sin(theta1); -l1*cos(theta1)];
% 机构原动件的位置参数列阵
Bt=[omega1*l1*cos(theta1); omega1*l1*sin(theta1)]; % Bt=dB/dt
alpha=A\(-At*omega+alpha1*B+omega1*Bt); % 机构从动件的加速度列阵
figure(6)
plot(0:0.001:(tend*2),data_axe,'r')
grid on
title('E点X方向加速度'); 
xlabel('时间(s)') 
ylabel('加速度(m/s^2)')

figure(7)
plot(0:0.001:(tend*2),data_aye,'r')
grid on
title('E点Y方向价速度'); 
xlabel('时间(s)') 
ylabel('加速度(m/s^2)')
plot(n1,theta2*du,n1,theta3*du,'k'); 
title('角位移线图'); 
xlabel('曲柄转角 \theta_1 / \circ');
ylabel('角位移 / \circ'); 
grid on; 
text(140,170,'\theta_3'); 
text(140,30,'\theta_2');

plot(n1,omega2,n1,omega3,'k');
title('角速度线图'); 
xlabel('曲柄转角 \theta_1 / \circ');
ylabel('角速度 / rad\cdots^{-1}');
grid on;
text(250,130,'\omega_2');
text(130,165,'\omega_3');

plot(n1,alpha2,n1,alpha3,'k');
title('角加速度线图');
xlabel('曲柄转角 \theta_1 / \circ');
ylabel('角加速度 / rad\cdots^{-2}');
grid on;
text(230,2e4,'\alpha_2');
text(30,7e4,'\alpha_3');

 

标签:函数,title,text,ylabel,xlabel,四杆,n1,theta,Matlab
From: https://www.cnblogs.com/s206/p/17206962.html

相关文章

  • 基于神经网络的传递函数控制器matlab实现,神经网络自己编程实现不使用matlab的工具箱
    1.算法描述       神经控制器在在实时控制系统中起着“大脑”的作用。神经网络具有自学习和自适应等智能特点,因而非常适用于控制器设计。对于复杂非线性系统,神经控......
  • 字符串函数
    字符串函数一:strlen()函数strlen()用于统计字符串的长度使用缩短字符串长度的函数#include<stdio.h>#include<string.h> //内含字符串函数原型voidfit(char......
  • m通过平均功率分配法和注水功率分配法分别计算MIMO信道容量matlab仿真
    1.算法描述       根据不同的传输信道类型,可以在无线系统中使用相应的分集方式。目前,主要的分集方式包括时间分集(不同的时隙和信道编码)、频率分集(不同的信道、扩频......
  • m基于深度学习的LTE信号检测算法matlab仿真
    1.算法描述       随着射频设计者快速投入到支持长期演进(LTE)手机无线标准的新产品的开发过程中,理解LTE的测试需求变得更加重要,因为该技术已经越来越普遍。本文......
  • m基于深度学习的LTE信号检测算法matlab仿真
    1.算法描述随着射频设计者快速投入到支持长期演进(LTE)手机无线标准的新产品的开发过程中,理解LTE的测试需求变得更加重要,因为该技术已经越来越普遍。本文介绍了LTE的概念......
  • 量子图形加密算法的MATLAB代码实现
    一、概述目前主流的量子图形加密算法有量子像素编码算法(QuantumImagePixelEncoding,QIPE)、量子像素置乱算法(QuantumImagePixelScrambling,QIPS)等。一个简......
  • 内存操作函数详解
    这是一篇介绍内存操作函数的博客,包含memcpy、memmove、memcmp、memset的具体介绍及模拟实现,也与相似的字符串操作函数进行了比较。一、MSDN中的注解1、memcpy在缓冲区......
  • 【Python】main函数 if name=='main' 详解
    引言Python代码print('hellowword')代码执行顺序我们可以看到Python仅仅用了一行代码即可完成其他编程语言多行的输出Hello,World其他的编程语言像C/C++/C#/JA......
  • SQL函数——时间函数
    1、使用NOW()、CURDATE()、CURTIME()获取当前时间在这里我有一个问题想问问大家,你们平时都是怎么样子获取时间的呢?是不是通过手表、手机、电脑等设备了解到的,那么你们......
  • 2023.03.11.函数重载,引用等
    程序生成的过程:1.预处理:头文件的展开宏的替换预处理指令解析去掉注释2.编译:预处理后文件生成汇编文件.asm(汇编代码)词法解析,语法解析语义分析优化3.汇编:汇编文件进一......