永发信息网

matlab中S函数的编程问题

答案:1  悬赏:80  手机版
解决时间 2021-03-21 08:19
程序如下:
function sys=mdlOutputs(t,x,u,n)
sys(1)=6;
for m=1:100
n(m)=m*0.00001;
end
sys(1)=-6;
想用for循环做一个延时,生成一个脉冲序列,高电平为6低电平为-6,可输出波形总是输出-6,没有变化。还有为什么两个全写成sys就提示前面的sys不被使用。请高手指教
高手,我首先感谢你的热心帮忙!并已生成了幅值是6的脉冲序列!可是我还要再问你一个问题,以前没说清楚,这个脉冲是随时按照下面的式子改变占空比的。a=p1*311sin(100*pi*(k+1))+p2*u(k)+p3*i(k)+p4.
得到的a是6保持的时间,p1=1.56*10^(-6),p2=-1.295*10^(-6),p3=-7.847*10^(-6),p4=61.5*10^(-6)都是常数,u(k),i(k)是S函数的两个输入,311sin(100*pi*(k+1))是下一采样时刻的正弦值。脉冲的周期是T=0.000125s.能不能再改改您的回答。谢谢了!我把剩余的分数28分全给你了。能再帮帮我吗,我是个新手,您估计也早看出了,matlab的基本东西都不会,可是这个任务真的太急了。谢谢谢谢了!!!
最佳答案
function [sys,x0,str,ts]=mdlInitializeSizes
sizes = simsizes;
sizes.NumContStates = 0;
sizes.NumDiscStates = 4;
sizes.NumOutputs = 1;
sizes.NumInputs = 2;
sizes.DirFeedthrough = 0;
sizes.NumSampleTimes = 0;
sys = simsizes(sizes);
x0 = [0 6 1 0];%x(1)时间0开始;x(2)幅值;x(3)切换标志位;x(4)周期标志位;
str = [];
ts = [];

function sys=mdlUpdate(t,x,u)
T=0.000125;%周期设置
k=x(4);
s=x(2);
i=x(3);
if mod(i,2)==1
p1=1.56*10^(-6);
p2=-1.295*10^(-6);
p3=-7.847*10^(-6);
p4=61.5*10^(-6);
m=u(1);
n=u(2);
a=p1*311*sin(100*pi*(k+1))+p2*m+p3*n+p4;
t3=T*k+a;
end
if mod(i,2)==0
t3=T*k;
end
t1=x(1);
t2=t;
if (t1<=t3) & (t2>t3)%寻找切换时间点
s=-s;
i=i+1;
if mod(i,2)==0
k=k+1;
end
end
sys=[t2 s i k];

function sys=mdlOutputs(t,x,u)
sys=[x(2)];

因为时间关系,没有仔细斟酌,程序不是很简洁,但是可以用。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
水瓶星座
摩托车的功率和扭矩的指标要怎么看好坏?
求洋葱的吉他谱 要适合新手的
林港派出所广教社区警务室这个地址在什么地方
绝地逃生这个游戏画面感怎么样
乐高机器人 求问四轮与两轮区别
初中 语文 课文 《三峡》原文及翻译
三十年来,我国成功地发射了各种用途的航天器
体检说屈光不正是什么意思?
我要去吉林辽源 一定请辽源本地人帮帮忙找个
怎么生男孩?怎么生儿子,怎么生小子啊???
福祥手机我想知道这个在什么地方
dnf惊喜礼物怎么领取 惊喜礼物领取方法介绍
"对于我来说"英语应该怎么说
盒子内刚好竖着放下四个圆柱形的罐头,每个罐
推荐资讯
意芯酒馆在什么地方啊,我要过去处理事情
心闲足疗养生在哪里啊,我有事要去这个地方
寒冷期,温暖期,冰期,大冰期,间冰期
诱抗素和三十烷醇哪个好
腿疼和脚疼用英语怎么说?
陆风x7遥控钥匙为什么没反应,
苹果5s经常死机自动重启是什么情况
豪沃国三跟国四是什么东西
香格里拉钱是什么样的?
自动挡汽车为什么散热器有两根油管呢
租的房子风水作用多大
澳杰皮鞋这个地址在什么地方,我要处理点事
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?