Dear Tim,
<br/><br/>Thank you for yor advise.
<br/><br/>However, u is the step signal, such as 50% ==>60% ==> 50%.
<br/>u and y are sampled with constant interval, such as one second.
<br/><br/><br/><br/>I made following Scilabe code, using time_id:
<br/><br/>//
<br/>z=poly(0,'z');
<br/>h=(0.065/(z-0.934))*(1/z^10)// <== 10 Sampling period dead time
<br/>u=zeros(1,100);
<br/>for i=10:1:100
<br/> u(1,i)=2.0;
<br/>end
<br/>t=1:1:100;
<br/>rep=flts(u,tf2ss(h));
<br/>plot(t,rep,t,u)// <== We can see the step type process input with amplitude=2 and its process response with 10 sampling period dead time.
<br/>k=find(rep<>0,1) //here the threshold has to be improved in case of noisy signal
<br/>//H=time_id(1,"step",rep(k:$))
<br/>H=time_id(2,u,rep)
<br/>rep=flts(u,tf2ss(H));
<br/>plot(t,rep,'.r')// <== We can see the process response by identified model.
<br/>H
<br/><br/><br/>h =
<br/>
<br/> 0.065
<br/> -----------
<br/> 10 11
<br/> - 0.934z + z
<br/><br/><br/>H =
<br/>
<br/> 0.0265880
<br/> -------------
<br/> - 0.9779092 + z
<br/><br/><br/>h is the discreate transfer function to provide operation data.
<br/>H is the identified transfer function obtained from the opeartion data using time_id.
<br/><br/>I have two issues.
<br/>1. H is not similar to h even the data doesn't include any noise. How I can obtain transfer function nearly same as h?
<br/>2. I would like to have continuous transfer function. How I should convert the discreate transfer function to continuous transfer function.
<br/><br/><br/>I am lokking for a solution for these two issues.
<br/>May I ask your advise again?
<br/><br/><br/>Thanks.
<br/><br/><br/>----- 元のメッセージ -----
<br/>差出人: "Tim Wescott [via Scilab / Xcos - Mailing Lists Archives]" <<a href="/user/SendEmail.jtp?type=node&node=4034653&i=0" target="_top" rel="nofollow" link="external">[hidden email]</a>>
<br/>宛先: "Fukashiimo" <<a href="/user/SendEmail.jtp?type=node&node=4034653&i=1" target="_top" rel="nofollow" link="external">[hidden email]</a>>
<br/>送信済み: 2016年9月26日(月曜日) 04:07:52
<br/>件名: Re: System Identification for First order delay and dead time
<br/><br/>Heh. I just realized a better way to do this:
<br/><br/>I assume that you've sampled u and y at a constant rate, and that you
<br/>have captured some reasonable amount of the response. This will be
<br/>perfect if u is periodic.
<br/><br/>If u is periodic, then for some integer number of periods, take U =
<br/>fft(u) and Y = fft(y). If u isn't periodic, then take FFT's of u and y
<br/>after windowing them both with identical windows.
<br/><br/>Now calculate the frequencies for each bin of the above fft's.
<br/><br/>Define H(w) = ( K ./ (%i * tau * w + 1) ) .* exp(-%i * w * T).
<br/><br/>Calculate Ymodel = U .* H(w)
<br/><br/>Now, thanks to the magic of Parseval's Theorem,
<br/>norm(Y - Ymodel) is the same as, or just a constant multiplier away from
<br/>being, norm(y - ymodel) -- but you never actually have to compute
<br/>ymodel.
<br/><br/>So optimize on tau and T as described before. You should only have to
<br/>take your FFTs once at the beginning -- the rest will be repeatedly
<br/>calculating H(w) for the various values of tau and T (and K, if you want
<br/>to be lazy and just toss it into optim, although it'll be much faster to
<br/>determine it using least-squares fit).
<br/><br/>On Sun, 2016-09-25 at 01:07 -0700, Fukashiimo wrote:
<br/><div class='shrinkable-quote'><br/>> Thank you for your suggestion. However, I am not sure how I should
<br/>> formulate my Laplace domain equation. Could you please advise me more
<br/>> specifically?
<br/>>
<br/>> Thanks.
<br/>>
<br/>>
<br/>> 2016/09/25 午前9:33 "Tim Wescott [via Scilab / Xcos - Mailing Lists
<br/>> Archives]" <[hidden email]>:
<br/>> I suggest that you roll your own cost function, and use
<br/>> optim.
<br/>>
<br/>> Where possible, with optim, if part of the problem is
<br/>> nonlinear and part
<br/>> is linear, it's good to use a plain old linear least-squares
<br/>> fit for the
<br/>> plain old linear part. In your case, that's K. Tau and Td
<br/>> will have to
<br/>> be determined by optim.
<br/>>
<br/>> The cost function should generate a vector for ymodel with K =
<br/>> 1, then
<br/>> find the best fit for K with
<br/>>
<br/>> K = y / ymodel;
<br/>>
<br/>> then return a cost
<br/>>
<br/>> cost = norm(y - K * ymodel);
<br/>>
<br/>> wrap that all up in NDCost and then optim, and away you'll
<br/>> go.
<br/>>
<br/>> On 2016-09-24 06:59, Fukashiimo wrote:
<br/>>
<br/>> > Hello,
<br/>> >
<br/>> > I am looking for a Scilab software which is similar to
<br/>> Matlab System ID
<br/>> > tool
<br/>> > box.
<br/>> >
<br/>> > I would like to obtain values of parameters, Tau, K and Td
<br/>> for
<br/>> > following
<br/>> > first order delay + Dead time model from time series data.
<br/>> > ymodel = (K/(Tau*s+1))*exp(-Td*s)*u
<br/>> > ymodel: process output, u: process input
<br/>> > SISO continuous time
<br/>> >
<br/>> > Object function: Min ( (y-ymodel)^2)
<br/>> >
<br/>> > Could you please tell me which package I should use to solve
<br/>> this
<br/>> > issue?
<br/>> >
<br/>> > Best Regards,
<br/>> >
<br/>> >
<br/>> >
<br/>> > --
<br/>> > View this message in context:
<br/>> >
<br/>> <a href="http://mailinglists.scilab.org/System-Identification-for-First-order-delay-and-dead-time-tp4034608.html" target="_top" rel="nofollow" link="external">http://mailinglists.scilab.org/System-Identification-for-First-order-delay-and-dead-time-tp4034608.html</a>
<br/>> > Sent from the Scilab users - Mailing Lists Archives mailing
<br/>> list
<br/>> > archive at Nabble.com.
<br/>> > _______________________________________________
<br/>> > users mailing list
<br/>> > [hidden email]
<br/>> > <a href="http://lists.scilab.org/mailman/listinfo/users" target="_top" rel="nofollow" link="external">http://lists.scilab.org/mailman/listinfo/users</a>
<br/>> _______________________________________________
<br/>> users mailing list
<br/>> [hidden email]
<br/>> <a href="http://lists.scilab.org/mailman/listinfo/users" target="_top" rel="nofollow" link="external">http://lists.scilab.org/mailman/listinfo/users</a>
<br/>>
<br/>>
<br/>>
<br/>> ______________________________________________________________
<br/>> If you reply to this email, your message will be added to the
<br/>> discussion below:
<br/>> <a href="http://mailinglists.scilab.org/System-Identification-for-First-order-delay-and-dead-time-tp4034608p4034619.html" target="_top" rel="nofollow" link="external">http://mailinglists.scilab.org/System-Identification-for-First-order-delay-and-dead-time-tp4034608p4034619.html</a>
<br/>> To unsubscribe from System Identification for First order
<br/>> delay and dead time, click here.
<br/>> NAML
<br/>>
<br/>>
<br/>> ______________________________________________________________________
<br/>> View this message in context: Re: System Identification for First
<br/>> order delay and dead time
<br/>> Sent from the Scilab users - Mailing Lists Archives mailing list
<br/>> archive at Nabble.com.
<br/>> _______________________________________________
<br/>> users mailing list
<br/>> [hidden email]
<br/>> <a href="http://lists.scilab.org/mailman/listinfo/users" target="_top" rel="nofollow" link="external">http://lists.scilab.org/mailman/listinfo/users</a>
</div>--
<br/><br/>Tim Wescott
<br/>www.wescottdesign.com
<br/>Control & Communications systems, circuit & software design.
<br/>Phone: 503.631.7815
<br/>Cell: 503.349.8432
<br/><br/><br/>_______________________________________________
<br/>users mailing list
<br/>[hidden email]
<br/><a href="http://lists.scilab.org/mailman/listinfo/users" target="_top" rel="nofollow" link="external">http://lists.scilab.org/mailman/listinfo/users</a>
<br/><br/><br/><br/><br/><br/>If you reply to this email, your message will be added to the discussion below: <a href="http://mailinglists.scilab.org/System-Identification-for-First-order-delay-and-dead-time-tp4034608p4034622.html" target="_top" rel="nofollow" link="external">http://mailinglists.scilab.org/System-Identification-for-First-order-delay-and-dead-time-tp4034608p4034622.html</a>
<br/>To unsubscribe from System Identification for First order delay and dead time, click here .
<br/>NAML
<br/>
<br/><hr align="left" width="300" />
View this message in context: <a href="http://mailinglists.scilab.org/System-Identification-for-First-order-delay-and-dead-time-tp4034608p4034653.html">Re: System Identification for First order delay and dead time</a><br/>
Sent from the <a href="http://mailinglists.scilab.org/Scilab-users-Mailing-Lists-Archives-f2602246.html">Scilab users - Mailing Lists Archives mailing list archive</a> at Nabble.com.<br/>