代码为实现仿生四足机器人技术(罗庆生等)中关于CPG网络控制模型的部分的绘图。

本人新手 代码不保证正确性

方程:

两种方法通用一个函数:

代码中变量含义:

a=

  B=

  u=

   Wsw=

  W=

 th=

  Q=

 A=a

x=[x1;y1;x2;y2......]

代码中的

通过书中的公式 使用

 (占空比)来得出;相位关系可参照波士顿动力真的无可企及吗?一步步剖析四足机器人技术(一)中相关内容

function dydt = f( t,x )

%F 此处显示有关此函数的摘要

% 此处显示详细说明

a=10000;

B=0.75;

u=0.4;

Wsw=5*pi;

A=100;

QLF=0;%1

QRH=0.25;%3 0.25

QRF=1;%2

QLH=1;%4

W1=(((1-B)/B)*Wsw)/(exp(-1*A*x(2))+1)+(Wsw/(exp(A*x(2))+1));

W2=(((1-B)/B)*Wsw)/(exp(-1*A*x(4))+1)+(Wsw/(exp(A*x(4))+1));

W3=(((1-B)/B)*Wsw)/(exp(-1*A*x(6))+1)+(Wsw/(exp(A*x(6))+1));

W4=(((1-B)/B)*Wsw)/(exp(-1*A*x(8))+1)+(Wsw/(exp(A*x(8))+1));

r1=x(1)^2+x(2)^2;

r2=x(3)^2+x(4)^2;

r3=x(5)^2+x(6)^2;

r4=x(7)^2+x(8)^2;

if QLH~=0

QRF=B-QRH;

QLH=B;

else

if QLH==0

QRF=QRH;

QLH=QLF;

end

end

%1行

% QLF=0;%1

% QRH=0.25;%3

%

% QRF=0;%2

% QLH=0;%4

% th11=0;

th11=2*pi*(QLF-QLF);

R11 = [cos(th11), -sin(th11);

sin(th11), cos(th11)];

%th21=-pi;

th21=2*pi*(QLF-QRF);

R21 = [cos(th21), -sin(th21);

sin(th21), cos(th21)];

%th31=-pi/2;

th31=2*pi*(QLF-QRH);

R31 = [cos(th31), -sin(th31);

sin(th31), cos(th31)];

% th41=-3*pi/2;

th41=2*pi*(QLF-QLH);

R41 = [cos(th41), -sin(th41);

sin(th41), cos(th41)];

%2行

% th12=pi;

th12=2*pi*(QRF-QLF);

R12 = [cos(th12), -sin(th12);

sin(th12), cos(th12)];

% th22=0;

th22=2*pi*(QRF-QRF);

R22 = [cos(th22), -sin(th22);

sin(th22), cos(th22)];

% th32=pi/2;

th32=2*pi*(QRF-QRH);

R32 = [cos(th32), -sin(th32);

sin(th32), cos(th32)];

% th42=-pi/2;

th42=2*pi*(QRF-QLH);

R42 = [cos(th42), -sin(th42);

sin(th42), cos(th42)];

%3行

% th13=pi/2;

th13=2*pi*(QRH-QLF);

R13 = [cos(th13), -sin(th13);

sin(th13), cos(th13)];

% th23=-pi/2;

th23=2*pi*(QRH-QRF);

R23 = [cos(th23), -sin(th23);

sin(th23), cos(th23)];

% th33=0;

th33=2*pi*(QRH-QRH);

R33 = [cos(th33), -sin(th33);

sin(th33), cos(th33)];

% th43=-pi;

th43=2*pi*(QRH-QLH);

R43 = [cos(th43), -sin(th43);

sin(th43), cos(th43)];

%4行

% th14=3*pi/2;

th14=2*pi*(QLH-QLF);

R14 = [cos(th14), -sin(th14);

sin(th14), cos(th14)];

% th24=pi/2;

th24=2*pi*(QLH-QRF);

R24 = [cos(th24), -sin(th24);

sin(th24), cos(th24)];

% th34=pi;

th34=2*pi*(QLH-QRH);

R34 = [cos(th34), -sin(th34);

sin(th34), cos(th34)];

% th44=0;

th44=2*pi*(QLH-QLH);

R44 = [cos(th44), -sin(th44);

sin(th44), cos(th44)];

RR=[R11,R21,R31,R41;

R12,R22,R32,R42

R13,R23,R33,R43

R14,R24,R34,R44];

FF=[a*(u-r1)*x(1)-W1*x(2);

a*(u-r1)*x(2)+W1*x(1);

a*(u-r2)*x(3)-W2*x(4);

a*(u-r2)*x(4)+W2*x(3);

a*(u-r3)*x(5)-W3*x(6);

a*(u-r3)*x(6)+W3*x(5);

a*(u-r4)*x(7)-W4*x(8);

a*(u-r4)*x(8)+W4*x(7);

];

RR(abs(RR)-0<0.00001)=0;

temp=RR*x;

dydt=FF+RR*x;

matlab自带函数实现

使用ode45函数绘图

[t,y] = ode45(@f,[0 5],[0.1;0;0;0;0;0;0;0]);

%这里是膝关节处理

for i=1:length(y)

if y(i,2)<=0

y(i,2)=-1*sign(-1)*0.7067*y(i,2);

else

y(i,2)=0;

end

if y(i,4)<=0

y(i,4)=-1*sign(-1)*0.7067*y(i,4);

else

y(i,4)=0;

end

if y(i,6)<=0

y(i,6)=-1*sign(-1)*0.7067*y(i,6);

else

y(i,6)=0;

end

if y(i,8)<=0

y(i,8)=-1*sign(-1)*0.7067*y(i,8);

else

y(i,8)=0;

end

end

subplot(4,1,1)

plot(t,y(:,1),t,y(:,2));

subplot(4,1,2)

plot(t,y(:,3),t,y(:,4));

subplot(4,1,3)

plot(t,y(:,5),t,y(:,6));

subplot(4,1,4)

plot(t,y(:,7),t,y(:,8));

grid;

matlab手动欧拉法

out=[]%输出变量

count=1;

temp=f([],[0.1;0;0;0;0;0;0;0]);%后面参数为初值

y=zeros(8,1);

y=y+temp*0.0001;%0.0001为步长

for i=0:0.0001:5

temp=f([],y);

y=y+temp*0.0001;

%处理膝关节

if y(2)<=0

out(count,2)=-1*sign(-1)*0.7067*y(2);

else

out(count,2)=0;

end

if y(4)<=0

out(count,4)=-1*sign(-1)*0.7067*y(4);

else

out(count,4)=0;

end

if y(6)<=0

out(count,6)=-1*sign(-1)*0.7067*y(6);

else

out(count,6)=0;

end

if y(8)<=0

out(count,8)=-1*sign(-1)*0.7067*y(8);

else

out(count,8)=0;

end

out(count,1)=y(1);

%out(count,2)=y(2);

out(count,3)=y(3);

% out(count,4)=y(4);

out(count,5)=y(5);

% out(count,6)=y(6);

out(count,7)=y(7);

% out(count,8)=y(8);

count=count+1;

end

t=0:0.0001:5;

%绘图

subplot(4,1,1)

plot(t,out(:,1),t,out(:,2));

title('LF')

subplot(4,1,2)

plot(t,out(:,3),t,out(:,4));

title('RF')

subplot(4,1,3)

plot(t,out(:,5),t,out(:,6));

title('RH')

subplot(4,1,4)

plot(t,out(:,7),t,out(:,8));

title('LH')

grid;

效果:

ode45:

手动欧拉法

simulink:

梳妆谐振器的matlab实现,基于HOPF振荡器的CPG单元模型matlab实现相关推荐

  1. 基于HOPF振荡器的CPG单元模型matlab实现

    代码为实现仿生四足机器人技术(罗庆生等)中关于CPG网络控制模型的部分的绘图. 本人新手 代码不保证正确性 方程: 两种方法通用一个函数: 代码中变量含义: a=  B=  u=    Wsw=  W ...

  2. 差分方程matlab实验报告,实验二微分方程与差分方程模型Matlab求解

    实验二微分方程与差分方程模型Matlab求解 实验二: 微分方程与差分方程模型Matlab求解 一.实验目的 [1] 掌握解析.数值解法,并学会用图形观察解的形态和进行解的定性分析: [2] 熟悉MA ...

  3. rfm模型的matlab实现,基于客户价值的客户分类模型.docx

    基于客户价值的客户分类模型 华中科技大学博士学位论文基于客户价值的客户分类模型研究姓名:刘朝华申请学位级别:博士专业:管理科学与工程指导教师:蔡淑中科技大学博士学位论文摘要随着经济全球化以及网络技术的 ...

  4. matlab软件及基础实验第8单元,《MATLAB统计分析与应用:40个案例分析》程序与数据(内含彩蛋)...

    [实例简介]Matlab教材及随书光盘,超实用的好书,强烈推荐! MATLAB统计分析与应用 40个案例分析.pdf <MATLAB统计分析与应用:40个案例分析>程序与数据.rar 第1 ...

  5. MATLAB应用实战系列( 七十五) -图像处理应用 MATLAB实现基于分水岭算法的图像分割 (附matlab代码)

    一.简介 二.源代码 clear, close all; clc; %1.读取图像并求取图像的边界.rgb = imread('tree.jpeg');%读取原图像 I = rgb2gray(rgb) ...

  6. 【配电网重构】基于粒子群求解配电网重构模型matlab源码

    一.故障信息的数学表示 在上图中K表示断路器,每一个断路器上均有一个FTU装置,可以反馈断路器开关是否过流,用表示上传的故障信息,反映的是各分段开关处是否流过故障电流有故障电流为1,否则为0).即: ...

  7. SiTime 硅晶振代替晶体谐振器的8大理由

    每个电子系统都需要一个计时装置. 晶体 (XTAL) 谐振器通常是首选解决方案. 然而,与 XTAL 相比,将谐振器与振荡器 IC 配对成一个完整的集成计时器件的振荡器具有多项优势. MEMS 计时技 ...

  8. 晶体谐振器和晶体振荡器的优缺点分析

    谐振器(英文Resonators)是指产生谐振频率的电子元件,它是典型的无源器件,需要外围电路驱动其工作,产生时钟输出.晶体谐振器常用的分为石英晶体谐振器和陶瓷谐振器.产生频率的作用,具有稳定,抗干扰 ...

  9. 基于遗传算法的微电网经济运行优化matlab程序

    基于遗传算法的微电网经济运行优化matlab程序 摘 要: 微电网作为智能电网的一部分,是分布式电源接入电网的一种有效手段,微电网经济运行是其中一个重要研究方面.考察微电网经济性,通常是从最小运行成本 ...

最新文章

  1. SVN中trunk、branch、tag区别
  2. ODBC访问EXCEL
  3. 深入解析阿里Android热修复技术原理
  4. body区域怎么传一个数组_用户输入的虎狼之词,怎么校验之后不见了?
  5. MySQL高级 - 案例 - 系统性能优化 - 读写分离概述
  6. 使用thinkPHP做注册程序的实例
  7. oracle数据库中的系统自带表情_Oracle数据库自带表空间的详细说明
  8. PHP 中和 HTTP 相关的函数及使用
  9. 解决命令提示符已被系统管理员停用的问题
  10. 云计算laas、paas、saas介绍和分类
  11. android系统蓝牙自动连接
  12. 计算机科学出版费,计算机专业著作出版多钱
  13. 云优化,集大成的可扩展平台是硬道理
  14. 【Premiere】入门自学 1
  15. IT十年人生过客-十七-软通我来了
  16. 公众号视频查找接口,支持自定义接口,支持水印
  17. 怎样根据不同的睡姿选择合适的枕头?
  18. java 接口向上转型_JAVA-向上转型与向下转型在接口中的应用
  19. 专杀工具源码 V1.5
  20. 一款车载GPS定位产品后端服务器架构的填坑之路(一)

热门文章

  1. 大学计算机社团学什么好,大学一般有哪些社团 最值得报名的社团有哪些
  2. 大数据开发工程师目录
  3. 如何使用kindle
  4. mac系统如何新建文件
  5. python 自动记录时间_python记录程序运行时间的几种方法
  6. Listener refused the connection with the following error
  7. python中turtle画笑脸_如何用python画笑脸
  8. 青春三宝:书籍、时间和健康
  9. FFmpeg源码分析:音频滤镜介绍(上)
  10. 改变世界的五位程序员