function [sys,x0,str,ts] = ybdj_dq(t,x,u,flag)
% ls=0.0597; lr=0.062; lm=0.056; rs=0.374; rr=0.267; tr=0.232; cgm=0.153;
% J=0.025 ;np=2; rt=0.592;
switch flag,
case 0,%%初始化
[sys,x0,str,ts]=mdlInitializeSizes;
case 1,%% 给定t,x,u 计算连续状态的导数
sys=mdlDerivatives(t,x,u);
case 2, %% 更新离散状态,采样时间,最大时间步长
sys=mdlUpdate(t,x,u);
case 3,%% 给定t,x,u 计算s函数输出
sys=mdlOutputs(t,x,u);
case 4,%% 计算下一个采样时间(只用于变采样时间模块)
sys=mdlGetTimeOfNextVarHit(t,x,u);
case 9,%%终止仿真
sys=mdlTerminate(t,x,u);
otherwise
error(['Unhandled flag = ',num2str(flag)]);
end
%%
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes; %% simsize是MATLAB S-functions to中使用的一个辅助函数,提供有关s函数的特定信息。
sizes.NumContStates = 4;%%用的静止坐标系模型 状态变量为isa isb ira irb w 一共5个
sizes.NumDiscStates = 0;%%离散状态变量个数,这里为0
sizes.NumOutputs = 5;%%输出量,根据异步电机alfa-beta模型,为4 分别为 电磁转矩 转速 alfa电流 beta电流
sizes.NumInputs = 3;%% 4个 分别为三相电压、负载转矩
sizes.DirFeedthrough = 1;
sizes.NumSampleTimes = 1; % at least one sample time is needed
sys = simsizes(sizes); % 设 置 完 后 赋 给 sys 输 出 %%%%初始化上述结构以符合s函数的规范后,应再次调用simsize,将结构转换为可由Simulink处理的向量。例如:sys = simsize (size);
x0 = [1e-6;0;0;0;]; %状态变量初值
str = [];
ts = [0 0];
%%
function sys=mdlDerivatives(t,x,u)
ls=0.2941; lr=0.2898; lm=0.2838; rs=1.85; rr=2.658;
tr=0.109; cgm=0.055;
J=0.1284 ;np=2; rt=4.3991;
usd=u(1);
usq=u(2);
tl=u(3);
w1=x(4)+lm*x(3)/(tr*x(1));
A=[-1/tr, lm/tr, 0;
lm/(cgm*ls*lr*tr), -rt/(cgm*ls), w1;
-lm*x(4)/(cgm*ls*lr), -w1, -rt/(cgm*ls);];
B=[0, 0;
1/(cgm*ls), 0;
0, 1/(cgm*ls)];
x=[x(1);x(2);x(3)];
U=[usd;usq];%%其中ura、urb等于0。
dx=A*x+B*U;%%异步电机电压方程,变形之后
sys=dx;%%送给sys函数,sys函数在这里是mdlDerivatives这个函数,就是连续变量求导的函数
te=np*lm*x(1)*x(3)/lr;
sys(4)=(te-u(3))*np/J;
%%
function sys=mdlOutputs(t,x,u)
np=2; lm=0.2838; J=0.1284; lr=0.2898; tr=0.109;
te=np*lm*x(1)*x(3)/lr;
w1=x(4)+lm*x(3)/(tr*x(1));
sys=[te;x(4);x(2);x(3);w1];
%%
function sys=mdlUpdate(t,x,u)
sys=[];
function sys=mdlGetTimeOfNextVarHit(t,x,u);
sampleTime = 1;
sys = t+sanpleTime;
%%
function sys=mdlTerminate(t,x,u)
sys = [];
%%
wqioeuacer
- 粉丝: 62
- 资源: 5
最新资源
- 音乐网站(JSP+SERVLET).rar
- 抢购软件:快速复制信息
- oracle错误代码和信息速查手册chm版最新版本
- MATLAB【逆变器二次调频模型】 微电网分布式电源逆变器DROOP控制二次调频模型,加入二次控制实现二次调频控制,及二次调压控制,程序可实现上图功能,工况有所改变 需要matlab2021A版
- 基于python的网页自动化工具项目全套技术资料100%好用.zip
- Oracle数据库命令速查手册doc版最新版本
- 程序名称:转向设计计算程序 开发平台:基于matlab平台 计算内容:阿克曼转角,转弯半径,转向阻力矩,回正力矩,转向主参数,转向传动比,力矩波动,转向梯形,EPS匹配,HPS匹配,齿轮齿条传动比,循
- 基于二阶自抗扰ADRC的轨迹跟踪控制,对车辆的不确定性和外界干扰具有一定抗干扰性,基于carsim和simulink仿真 跟踪轨迹为双移线,效果良好,有对应复现资料,是学习自抗扰技术快速入门很好的资料
- TianleSoftwareOracle学习手册中文pdf格式最新版本
- MATLAB代码:基于分布式ADMM算法的考虑碳排放交易的电力系统优化调度研究 关键词:分布式调度 ADMM算法 交替方向乘子法 碳排放 最优潮流 仿真平台:MATLAB+CPLEX GUROBI
- Oracle安装配置使用WORD文档doc格式最新版本
- 西门子840D HMI ADVANCED FOR PC 也可用于810D,840DSL中文版 1、软件可安装到台式机或笔记本上,可以连接到机床的NCU进行NC与PLC的数据备份与恢复,备份和恢复的数
- OraclePLSQL简单安装指南WORD文档doc格式最新版本
- 网页数据采集软件项目全套技术资料100%好用.zip
- Oracle高级SQL培训与讲解WORD文档doc格式最新版本
- 超智能体写的人工智能深度学习pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈