糖葫芦 发表于 2006-1-2 10:29

[求助]:如何给符号变量赋值?(一个二阶环响应流程例子)!

<P>本例子是实现一个简单的RC二阶环相位阶跃响应时间图,程序中有一个laplace变换,之后还有一个反laplace变换,程序划线部分是问题所在:theta2关于t的函数的一个数组,我想给t赋一组数值,可是不对,出以下错误:<br>??? Error using ==&gt; reshape<br>To RESHAPE the number of elements must not change.</P>
<P>Error in ==&gt; D:\tools\MATLAB6p5\toolbox\symbolic\@sym\double.m<br>On line 45==&gt; D = reshape(eval(X),m,n);</P>
<P>Error in ==&gt; D:\tools\MATLAB6p5\toolbox\symbolic\@sym\subs.m<br>On line 164==&gt;             NEWf = double(sym(maple('map','F',char(sym()))));</P>
<P>Error in ==&gt; D:\tools\MATLAB6p5\work\ip_07_11_eXXXXX.m<br>On line 13==&gt; theta2=subs(theta2,t,0.1:dt:10);</P>
<P>小弟水平有限,不知道如何赋值,请高人指点!谢谢了<br>程序流程如下:<br><br>echo on;<br>syms t s;<br>w_n=100;%无阻尼振荡频率<br>L=0.5;    %阻尼系数<br>dt=0.1;<br>theta1=ones(1,100);%输入相位(时域)<br>theta1_s=laplace(theta1,t,s); %输入相位(S域)<br>H_s=w_n^2/(s^2+2*L*w_n*s+w_n^2); %闭环传递函数<br>theta2_s=H_s*theta1_s; %输出相位(S域)<br>echo off;<br>echo on;<br>theta2=ilaplace(theta2_s,s,t);输出相位(时域)<br><U>theta2=subs(theta2,t,0.1:dt:10);</U><br>y=theta2./theta1;%系统响应<br>echo off;<br>plot(t,y)<br>title('RC二阶环相位阶跃响应时间图')<br><br></P>
[此贴子已经被aspen于2006-1-7 14:10:33编辑过]

糖葫芦 发表于 2006-1-3 00:38

划线之前的theta2是一个关于t的函数的1行100列的一串数组,我现在想分别给这100个关于t的数组赋值从0.1到10(步长为0.1)的值,应该如何赋值啊??谢谢大家了!

happy 发表于 2006-1-3 11:34

回复:(糖葫芦)[计算机编程][求助]:如何给符号变量赋...

subs用错了<BR><BR>theta2=subs(theta2,t,{0.1:dt:10});<BR>这时theta2是100*100的矩阵<BR>对角线上的元素就是你要的

糖葫芦 发表于 2006-1-3 22:12

先谢谢楼上兄弟,可还是不行阿,麻烦大家在给看看,谢谢了
页: [1]
查看完整版本: [求助]:如何给符号变量赋值?(一个二阶环响应流程例子)!